From: Alex Riesen Date: Wed, 5 Oct 2005 14:58:11 +0000 (+0200) Subject: [PATCH] hold_index_file_for_update should not unlink failed to open .lock files atexit X-Git-Tag: v0.99.8b~1^2~5 X-Git-Url: https://git.verplant.org/?a=commitdiff_plain;h=d6e548d61fa95b98e98b3c1e592a4d73aa308969;p=git.git [PATCH] hold_index_file_for_update should not unlink failed to open .lock files atexit Set up atexit only if the .lock-file was opened successfully. Signed-off-by: Alex Riesen Signed-off-by: Junio C Hamano --- diff --git a/index.c b/index.c index bdde65f7..ad0eafed 100644 --- a/index.c +++ b/index.c @@ -22,14 +22,16 @@ static void remove_lock_file_on_signal(int signo) int hold_index_file_for_update(struct cache_file *cf, const char *path) { + int fd; sprintf(cf->lockfile, "%s.lock", path); - cf->next = cache_file_list; - cache_file_list = cf; - if (!cf->next) { + fd = open(cf->lockfile, O_RDWR | O_CREAT | O_EXCL, 0666); + if (fd >=0 && !cf->next) { + cf->next = cache_file_list; + cache_file_list = cf; signal(SIGINT, remove_lock_file_on_signal); atexit(remove_lock_file); } - return open(cf->lockfile, O_RDWR | O_CREAT | O_EXCL, 0666); + return fd; } int commit_index_file(struct cache_file *cf)