aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--weed/filer/filer.go5
-rw-r--r--weed/pb/filer_pb/filer_client.go5
2 files changed, 6 insertions, 4 deletions
diff --git a/weed/filer/filer.go b/weed/filer/filer.go
index 7189b9064..d3d2de948 100644
--- a/weed/filer/filer.go
+++ b/weed/filer/filer.go
@@ -454,8 +454,9 @@ func (f *Filer) DeleteEmptyParentDirectories(ctx context.Context, dirPath util.F
return
}
- // Safety check: if stopAtPath is provided, dirPath must be under it
- if stopAtPath != "" && !strings.HasPrefix(string(dirPath)+"/", string(stopAtPath)+"/") {
+ // Safety check: if stopAtPath is provided, dirPath must be under it (root "/" allows everything)
+ stopStr := string(stopAtPath)
+ if stopAtPath != "" && stopStr != "/" && !strings.HasPrefix(string(dirPath)+"/", stopStr+"/") {
glog.V(1).InfofCtx(ctx, "DeleteEmptyParentDirectories: %s is not under %s, skipping", dirPath, stopAtPath)
return
}
diff --git a/weed/pb/filer_pb/filer_client.go b/weed/pb/filer_pb/filer_client.go
index a4e875033..17953c67d 100644
--- a/weed/pb/filer_pb/filer_client.go
+++ b/weed/pb/filer_pb/filer_client.go
@@ -327,8 +327,9 @@ func DoDeleteEmptyParentDirectories(ctx context.Context, client SeaweedFilerClie
checked[dirPathStr] = true
}
- // Safety check: if stopAtPath is provided, dirPath must be under it
- if stopAtPath != "" && !strings.HasPrefix(dirPathStr+"/", string(stopAtPath)+"/") {
+ // Safety check: if stopAtPath is provided, dirPath must be under it (root "/" allows everything)
+ stopStr := string(stopAtPath)
+ if stopAtPath != "" && stopStr != "/" && !strings.HasPrefix(dirPathStr+"/", stopStr+"/") {
glog.V(1).InfofCtx(ctx, "DoDeleteEmptyParentDirectories: %s is not under %s, skipping", dirPath, stopAtPath)
return
}