diff options
Diffstat (limited to 'weed/filesys/wfs.go')
| -rw-r--r-- | weed/filesys/wfs.go | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/weed/filesys/wfs.go b/weed/filesys/wfs.go index 127c160c4..c9a7ac0a1 100644 --- a/weed/filesys/wfs.go +++ b/weed/filesys/wfs.go @@ -179,6 +179,28 @@ func (wfs *WFS) AcquireHandle(file *File, uid, gid uint32) (fileHandle *FileHand return } +func (wfs *WFS) Fsync(file *File, header fuse.Header) error { + + inodeId := file.Id() + + wfs.handlesLock.Lock() + existingHandle, found := wfs.handles[inodeId] + wfs.handlesLock.Unlock() + + if found && existingHandle != nil && existingHandle.f.isOpen > 0 { + + existingHandle.Add(1) + defer existingHandle.Done() + + existingHandle.Lock() + defer existingHandle.Unlock() + + return existingHandle.doFlush(context.Background(), header) + } + + return nil +} + func (wfs *WFS) ReleaseHandle(fullpath util.FullPath, handleId fuse.HandleID) { wfs.handlesLock.Lock() defer wfs.handlesLock.Unlock() |
