object-store: move and rename odb_pack_keep()
The function `odb_pack_keep()` creates a file at the passed-in path. If this fails, then the function re-tries by first creating any potentially missing leading directories and then trying to create the file once again. As such, this function doesn't host any kind of logic that is specific to the object store, but is rather a generic helper function. Rename the function to `safe_create_file_with_leading_directories()` and move it into "path.c". While at it, refactor it so that it loses its dependency on `the_repository`. Signed-off-by: Patrick Steinhardt <ps@pks.im> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
committed by
Junio C Hamano
parent
56ef85e82f
commit
0b8ed25b66
@@ -1565,7 +1565,7 @@ static void write_special_file(const char *suffix, const char *msg,
|
||||
else
|
||||
filename = odb_pack_name(the_repository, &name_buf, hash, suffix);
|
||||
|
||||
fd = odb_pack_keep(filename);
|
||||
fd = safe_create_file_with_leading_directories(the_repository, filename);
|
||||
if (fd < 0) {
|
||||
if (errno != EEXIST)
|
||||
die_errno(_("cannot write %s file '%s'"),
|
||||
|
||||
Reference in New Issue
Block a user