diff --git a/contrib/pg_upgrade/file.c b/contrib/pg_upgrade/file.c
index 473b029d0ae537f5a713eb4bb6e5c69f8af36e26..983a2b2d9887da37e3540703f729679f0e4faf9c 100644
--- a/contrib/pg_upgrade/file.c
+++ b/contrib/pg_upgrade/file.c
@@ -75,7 +75,7 @@ copyAndUpdateFile(migratorContext *ctx, pageCnvCtx *pageConverter,
 
 			if ((dstfd = open(dst, O_RDWR | O_CREAT | O_EXCL, S_IRUSR | S_IWUSR)) < 0)
 			{
-				fclose(src_fd);
+				close(src_fd);
 				return "can't create destination file";
 			}