aboutsummaryrefslogtreecommitdiff
path: root/weed/mount/weedfs_filehandle.go
diff options
context:
space:
mode:
Diffstat (limited to 'weed/mount/weedfs_filehandle.go')
-rw-r--r--weed/mount/weedfs_filehandle.go24
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)
+}