diff options
Diffstat (limited to 'weed/mount/weedfs_filehandle.go')
| -rw-r--r-- | weed/mount/weedfs_filehandle.go | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/weed/mount/weedfs_filehandle.go b/weed/mount/weedfs_filehandle.go new file mode 100644 index 000000000..18bfe07f2 --- /dev/null +++ b/weed/mount/weedfs_filehandle.go @@ -0,0 +1,24 @@ +package mount + +import ( + "github.com/chrislusf/seaweedfs/weed/pb/filer_pb" + "github.com/hanwen/go-fuse/v2/fuse" +) + +func (wfs *WFS) AcquireHandle(inode uint64, uid, gid uint32) (fileHandle *FileHandle, status fuse.Status) { + var entry *filer_pb.Entry + _, _, entry, status = wfs.maybeReadEntry(inode) + if status == fuse.OK { + fileHandle = wfs.fhmap.AcquireFileHandle(wfs, inode, entry) + fileHandle.entry = entry + } + return +} + +func (wfs *WFS) ReleaseHandle(handleId FileHandleId) { + wfs.fhmap.ReleaseByHandle(handleId) +} + +func (wfs *WFS) GetHandle(handleId FileHandleId) *FileHandle { + return wfs.fhmap.GetFileHandle(handleId) +} |
