Browse Source

rename also applies to open file handle

random_access_file
Chris Lu 4 years ago
parent
commit
a7f669044e
  1. 9
      weed/filesys/dir_rename.go

9
weed/filesys/dir_rename.go

@ -64,9 +64,16 @@ func (dir *Dir) Rename(ctx context.Context, req *fuse.RenameRequest, newDirector
// fmt.Printf("rename path: %v => %v\n", oldPath, newPath) // fmt.Printf("rename path: %v => %v\n", oldPath, newPath)
dir.wfs.fsNodeCache.Move(oldPath, newPath) dir.wfs.fsNodeCache.Move(oldPath, newPath)
// change file handle
dir.wfs.handlesLock.Lock() dir.wfs.handlesLock.Lock()
defer dir.wfs.handlesLock.Unlock() defer dir.wfs.handlesLock.Unlock()
delete(dir.wfs.handles, oldPath.AsInode())
inodeId := oldPath.AsInode()
existingHandle, found := dir.wfs.handles[inodeId]
if !found || existingHandle == nil {
return err
}
delete(dir.wfs.handles, inodeId)
dir.wfs.handles[newPath.AsInode()] = existingHandle
return err return err
} }
Loading…
Cancel
Save