replace direct calls to unlink(2) with unlink_or_warn
This helps to notice when something's going wrong, especially on systems which lock open files. I used the following criteria when selecting the code for replacement: - it was already printing a warning for the unlink failures - it is in a function which already printing something or is called from such a function - it is in a static function, returning void and the function is only called from a builtin main function (cmd_) - it is in a function which handles emergency exit (signal handlers) - it is in a function which is obvously cleaning up the lockfiles Signed-off-by: Alex Riesen <raa.lkml@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:

committed by
Junio C Hamano

parent
fc71db39e0
commit
691f1a28bf
15
refs.c
15
refs.c
@ -1002,12 +1002,10 @@ int delete_ref(const char *refname, const unsigned char *sha1, int delopt)
|
||||
} else {
|
||||
path = git_path("%s", refname);
|
||||
}
|
||||
err = unlink(path);
|
||||
if (err && errno != ENOENT) {
|
||||
err = unlink_or_warn(path);
|
||||
if (err && errno != ENOENT)
|
||||
ret = 1;
|
||||
error("unlink(%s) failed: %s",
|
||||
path, strerror(errno));
|
||||
}
|
||||
|
||||
if (!(delopt & REF_NODEREF))
|
||||
lock->lk->filename[i] = '.';
|
||||
}
|
||||
@ -1017,10 +1015,7 @@ int delete_ref(const char *refname, const unsigned char *sha1, int delopt)
|
||||
*/
|
||||
ret |= repack_without_ref(refname);
|
||||
|
||||
err = unlink(git_path("logs/%s", lock->ref_name));
|
||||
if (err && errno != ENOENT)
|
||||
warning("unlink(%s) failed: %s",
|
||||
git_path("logs/%s", lock->ref_name), strerror(errno));
|
||||
unlink_or_warn(git_path("logs/%s", lock->ref_name));
|
||||
invalidate_cached_refs();
|
||||
unlock_ref(lock);
|
||||
return ret;
|
||||
@ -1381,7 +1376,7 @@ int create_symref(const char *ref_target, const char *refs_heads_master,
|
||||
if (adjust_shared_perm(git_HEAD)) {
|
||||
error("Unable to fix permissions on %s", lockpath);
|
||||
error_unlink_return:
|
||||
unlink(lockpath);
|
||||
unlink_or_warn(lockpath);
|
||||
error_free_return:
|
||||
free(git_HEAD);
|
||||
return -1;
|
||||
|
Reference in New Issue
Block a user