lock_file(): exit early if lockfile cannot be opened
authorMichael Haggerty <mhagger@alum.mit.edu>
Wed, 1 Oct 2014 10:28:18 +0000 (12:28 +0200)
committerJunio C Hamano <gitster@pobox.com>
Wed, 1 Oct 2014 20:45:12 +0000 (13:45 -0700)
This is a bit easier to read than the old version, which nested part
of the non-error code in an "if" block.

Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu>
Reviewed-by: Ronnie Sahlberg <sahlberg@google.com>
Reviewed-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
lockfile.c

index 23847fc9f2d0f678a34b343902d304a8d022840a..a8f32e5495d8b064e921e73fa4268f11d19b1c2b 100644 (file)
@@ -197,19 +197,18 @@ static int lock_file(struct lock_file *lk, const char *path, int flags)
                resolve_symlink(lk->filename, max_path_len);
        strcat(lk->filename, LOCK_SUFFIX);
        lk->fd = open(lk->filename, O_RDWR | O_CREAT | O_EXCL, 0666);
-       if (0 <= lk->fd) {
-               lk->owner = getpid();
-               if (adjust_shared_perm(lk->filename)) {
-                       int save_errno = errno;
-                       error("cannot fix permission bits on %s",
-                             lk->filename);
-                       rollback_lock_file(lk);
-                       errno = save_errno;
-                       return -1;
-               }
-       }
-       else
+       if (lk->fd < 0) {
                lk->filename[0] = 0;
+               return -1;
+       }
+       lk->owner = getpid();
+       if (adjust_shared_perm(lk->filename)) {
+               int save_errno = errno;
+               error("cannot fix permission bits on %s", lk->filename);
+               rollback_lock_file(lk);
+               errno = save_errno;
+               return -1;
+       }
        return lk->fd;
 }