mirror of
https://git.proxmox.com/git/libgit2
synced 2025-05-08 03:15:46 +00:00
Merge pull request #2164 from libgit2/cmn/refs-delete-iteration
refdb: catch a directory disappearing
This commit is contained in:
commit
a62ad3c353
@ -853,6 +853,9 @@ int git_path_direach(
|
||||
|
||||
if ((dir = opendir(path->ptr)) == NULL) {
|
||||
giterr_set(GITERR_OS, "Failed to open directory '%s'", path->ptr);
|
||||
if (errno == ENOENT)
|
||||
return GIT_ENOTFOUND;
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
@ -272,9 +272,17 @@ static int _dirent_loose_load(void *payload, git_buf *full_path)
|
||||
if (git__suffixcmp(full_path->ptr, ".lock") == 0)
|
||||
return 0;
|
||||
|
||||
if (git_path_isdir(full_path->ptr))
|
||||
return git_path_direach(
|
||||
if (git_path_isdir(full_path->ptr)) {
|
||||
int error = git_path_direach(
|
||||
full_path, backend->direach_flags, _dirent_loose_load, backend);
|
||||
/* Race with the filesystem, ignore it */
|
||||
if (error == GIT_ENOTFOUND) {
|
||||
giterr_clear();
|
||||
return 0;
|
||||
}
|
||||
|
||||
return error;
|
||||
}
|
||||
|
||||
file_path = full_path->ptr + strlen(backend->path);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user