diff options
Diffstat (limited to 'weed/mount/weedfs_rename.go')
| -rw-r--r-- | weed/mount/weedfs_rename.go | 12 |
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) |
