summaryrefslogtreecommitdiff
path: root/refs.c
diff options
context:
space:
mode:
authorAlex Riesen <raa.lkml@gmail.com>2009-04-29 21:22:56 (GMT)
committerJunio C Hamano <gitster@pobox.com>2009-04-30 01:37:41 (GMT)
commit691f1a28bf57618d8b44a193b1d28013c858aba6 (patch)
tree7d404656089320d486f658d3f4c061cd13dff556 /refs.c
parentfc71db39e0d75e8a403f36f3fecf4450886cd165 (diff)
downloadgit-691f1a28bf57618d8b44a193b1d28013c858aba6.zip
git-691f1a28bf57618d8b44a193b1d28013c858aba6.tar.gz
git-691f1a28bf57618d8b44a193b1d28013c858aba6.tar.bz2
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>
Diffstat (limited to 'refs.c')
-rw-r--r--refs.c15
1 files changed, 5 insertions, 10 deletions
diff --git a/refs.c b/refs.c
index e65a3b4..2b1f0f0 100644
--- a/refs.c
+++ b/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;