aboutsummaryrefslogtreecommitdiff
path: root/weed/mount/weedfs_rename.go
diff options
context:
space:
mode:
Diffstat (limited to 'weed/mount/weedfs_rename.go')
-rw-r--r--weed/mount/weedfs_rename.go12
1 files changed, 7 insertions, 5 deletions
diff --git a/weed/mount/weedfs_rename.go b/weed/mount/weedfs_rename.go
index 18ab427a2..e567b12e1 100644
--- a/weed/mount/weedfs_rename.go
+++ b/weed/mount/weedfs_rename.go
@@ -161,11 +161,13 @@ func (wfs *WFS) Rename(cancel <-chan struct{}, in *fuse.RenameIn, oldName string
}
newPath := newDir.Child(newName)
- if wfs.FilerConf != nil {
- rule := wfs.FilerConf.MatchStorageRule(string(oldPath))
- if rule.Worm {
- return fuse.EPERM
- }
+ oldEntry, status := wfs.maybeLoadEntry(oldPath)
+ if status != fuse.OK {
+ return status
+ }
+
+ if wormEnforced, _ := wfs.wormEnforcedForEntry(oldPath, oldEntry); wormEnforced {
+ return fuse.EPERM
}
glog.V(4).Infof("dir Rename %s => %s", oldPath, newPath)