mirror of
				https://git.proxmox.com/git/libgit2
				synced 2025-11-04 14:08:17 +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