diff options
| author | Chris Lu <chris.lu@gmail.com> | 2021-04-17 10:48:22 -0700 |
|---|---|---|
| committer | Chris Lu <chris.lu@gmail.com> | 2021-04-18 13:07:28 -0700 |
| commit | 6cbd786db9b96833248444c42992c239f2424d95 (patch) | |
| tree | d9ff8c06b5664858d14e16cfdf04b7eca95aabe0 /weed/filesys/dir_rename.go | |
| parent | d41e6826d3a0a51750e3f9c14b33a6aa9953bb09 (diff) | |
| download | seaweedfs-6cbd786db9b96833248444c42992c239f2424d95.tar.xz seaweedfs-6cbd786db9b96833248444c42992c239f2424d95.zip | |
correctly runs git clone
Diffstat (limited to 'weed/filesys/dir_rename.go')
| -rw-r--r-- | weed/filesys/dir_rename.go | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/weed/filesys/dir_rename.go b/weed/filesys/dir_rename.go index 7bc705102..b07710d17 100644 --- a/weed/filesys/dir_rename.go +++ b/weed/filesys/dir_rename.go @@ -64,11 +64,22 @@ func (dir *Dir) Rename(ctx context.Context, req *fuse.RenameRequest, newDirector return fuse.EIO } + oldFsNode := NodeWithId(oldPath.AsInode()) + newFsNode := NodeWithId(newPath.AsInode()) + dir.wfs.Server.InvalidateInternalNode(oldFsNode, newFsNode, func(internalNode fs.Node) { + if file, ok := internalNode.(*File); ok { + glog.V(4).Infof("internal node %s", file.Name) + file.Name = req.NewName + file.id = uint64(newFsNode) + } + }) + // change file handle dir.wfs.handlesLock.Lock() defer dir.wfs.handlesLock.Unlock() inodeId := oldPath.AsInode() existingHandle, found := dir.wfs.handles[inodeId] + glog.V(4).Infof("has open filehandle %s: %v", oldPath, found) if !found || existingHandle == nil { return nil } |
