X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=lockfile.c;h=2a2fea3cb6bd1de059e7c0f8c2008c5fe8376b93;hb=8435a9cb2662ca4326e96ea78d58b9376fb21f7e;hp=2346e0e9ef0dbd247daf9d77c373029b491068c4;hpb=210a0be504829bad5a2821488d3c25cc406fed4a;p=git.git diff --git a/lockfile.c b/lockfile.c index 2346e0e9e..2a2fea3cb 100644 --- a/lockfile.c +++ b/lockfile.c @@ -22,7 +22,7 @@ static void remove_lock_file_on_signal(int signo) raise(signo); } -int hold_lock_file_for_update(struct lock_file *lk, const char *path) +static int lock_file(struct lock_file *lk, const char *path) { int fd; sprintf(lk->filename, "%s.lock", path); @@ -41,6 +41,14 @@ int hold_lock_file_for_update(struct lock_file *lk, const char *path) return fd; } +int hold_lock_file_for_update(struct lock_file *lk, const char *path, int die_on_error) +{ + int fd = lock_file(lk, path); + if (fd < 0 && die_on_error) + die("unable to create '%s': %s", path, strerror(errno)); + return fd; +} + int commit_lock_file(struct lock_file *lk) { char result_file[PATH_MAX];