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
@ -111,9 +111,9 @@ static void start_object_request(struct walker *walker,
|
||||
struct walker_data *data = walker->data;
|
||||
|
||||
snprintf(prevfile, sizeof(prevfile), "%s.prev", obj_req->filename);
|
||||
unlink(prevfile);
|
||||
unlink_or_warn(prevfile);
|
||||
rename(obj_req->tmpfile, prevfile);
|
||||
unlink(obj_req->tmpfile);
|
||||
unlink_or_warn(obj_req->tmpfile);
|
||||
|
||||
if (obj_req->local != -1)
|
||||
error("fd leakage in start: %d", obj_req->local);
|
||||
@ -177,7 +177,7 @@ static void start_object_request(struct walker *walker,
|
||||
} while (prev_read > 0);
|
||||
close(prevlocal);
|
||||
}
|
||||
unlink(prevfile);
|
||||
unlink_or_warn(prevfile);
|
||||
|
||||
/* Reset inflate/SHA1 if there was an error reading the previous temp
|
||||
file; also rewind to the beginning of the local file. */
|
||||
@ -238,18 +238,18 @@ static void finish_object_request(struct object_request *obj_req)
|
||||
} else if (obj_req->curl_result != CURLE_OK) {
|
||||
if (stat(obj_req->tmpfile, &st) == 0)
|
||||
if (st.st_size == 0)
|
||||
unlink(obj_req->tmpfile);
|
||||
unlink_or_warn(obj_req->tmpfile);
|
||||
return;
|
||||
}
|
||||
|
||||
git_inflate_end(&obj_req->stream);
|
||||
git_SHA1_Final(obj_req->real_sha1, &obj_req->c);
|
||||
if (obj_req->zret != Z_STREAM_END) {
|
||||
unlink(obj_req->tmpfile);
|
||||
unlink_or_warn(obj_req->tmpfile);
|
||||
return;
|
||||
}
|
||||
if (hashcmp(obj_req->sha1, obj_req->real_sha1)) {
|
||||
unlink(obj_req->tmpfile);
|
||||
unlink_or_warn(obj_req->tmpfile);
|
||||
return;
|
||||
}
|
||||
obj_req->rename =
|
||||
@ -809,7 +809,7 @@ static void abort_object_request(struct object_request *obj_req)
|
||||
close(obj_req->local);
|
||||
obj_req->local = -1;
|
||||
}
|
||||
unlink(obj_req->tmpfile);
|
||||
unlink_or_warn(obj_req->tmpfile);
|
||||
if (obj_req->slot) {
|
||||
release_active_slot(obj_req->slot);
|
||||
obj_req->slot = NULL;
|
||||
|
Reference in New Issue
Block a user