Commit 4a0df574114f331a2428278c5f72aae7a49fa214

Edward Thomson 2017-06-10T18:46:35

git_futils_rmdir: only allow `EBUSY` when asked Only ignore `EBUSY` from `rmdir` when the `GIT_RMDIR_SKIP_NONEMPTY` bit is set.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
diff --git a/src/fileops.c b/src/fileops.c
index f9552a5..2f86ba1 100644
--- a/src/fileops.c
+++ b/src/fileops.c
@@ -766,6 +766,9 @@ static int futils__rmdir_empty_parent(void *opaque, const char *path)
 
 		if (en == ENOENT || en == ENOTDIR) {
 			/* do nothing */
+		} else if ((data->flags & GIT_RMDIR_SKIP_NONEMPTY) == 0 &&
+			en == EBUSY) {
+			error = git_path_set_error(errno, path, "rmdir");
 		} else if (en == ENOTEMPTY || en == EEXIST || en == EBUSY) {
 			error = GIT_ITEROVER;
 		} else {