Improve use of lockfile API
[gitweb.git] / fast-import.c
index 82e916133982800420e77d1824a2714dd120550e..3609c24288dedb5b5e1b46d77ebfce6c305a434e 100644 (file)
@@ -1546,10 +1546,18 @@ static void dump_marks(void)
        }
 
        dump_marks_helper(f, 0, marks);
-       fclose(f);
-       if (commit_lock_file(&mark_lock))
+       if (ferror(f) || fclose(f))
                failure |= error("Unable to write marks file %s: %s",
                        mark_file, strerror(errno));
+       /*
+        * Since the lock file was fdopen()'ed and then fclose()'ed above,
+        * assign -1 to the lock file descriptor so that commit_lock_file()
+        * won't try to close() it.
+        */
+       mark_lock.fd = -1;
+       if (commit_lock_file(&mark_lock))
+               failure |= error("Unable to write commit file %s: %s",
+                       mark_file, strerror(errno));
 }
 
 static int read_next_command(void)