Merge branch 'ar/unlink-err' into maint

* ar/unlink-err:
  print unlink(2) errno in copy_or_link_directory
  replace direct calls to unlink(2) with unlink_or_warn
  Introduce an unlink(2) wrapper which gives warning if unlink failed
This commit is contained in:
Junio C Hamano
2009-05-25 19:01:50 -07:00
26 changed files with 68 additions and 50 deletions

15
refs.c
View File

@ -1004,12 +1004,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] = '.';
}
@ -1019,10 +1017,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;
@ -1383,7 +1378,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;