mirror of
https://github.com/seaweedfs/seaweedfs.git
synced 2024-01-19 02:48:24 +00:00
rename also applies to open file handle
This commit is contained in:
parent
edfa73782f
commit
a7f669044e
|
@ -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…
Reference in a new issue