diff options
author | Jakob Unterwurzacher | 2020-07-12 15:08:17 +0200 |
---|---|---|
committer | Jakob Unterwurzacher | 2020-07-12 15:08:17 +0200 |
commit | f11432d02ab8fce306ba85e735b7c3db085f9da6 (patch) | |
tree | 3bda21f8ecea1d45bf7b5576e038167b57aa77d7 /internal/fusefrontend/node.go | |
parent | 4d99b02279dce3ef7d37ca219d1305b81f716741 (diff) |
v2api: Getattr: use file handle if passed
Diffstat (limited to 'internal/fusefrontend/node.go')
-rw-r--r-- | internal/fusefrontend/node.go | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/internal/fusefrontend/node.go b/internal/fusefrontend/node.go index 69d9b22..a6272b5 100644 --- a/internal/fusefrontend/node.go +++ b/internal/fusefrontend/node.go @@ -87,6 +87,11 @@ func (n *Node) Lookup(ctx context.Context, name string, out *fuse.EntryOut) (ch // // GetAttr is symlink-safe through use of openBackingDir() and Fstatat(). func (n *Node) Getattr(ctx context.Context, f fs.FileHandle, out *fuse.AttrOut) (errno syscall.Errno) { + // If the kernel gives us a file handle, use it. + if f != nil { + return f.(fs.FileGetattrer).Getattr(ctx, out) + } + dirfd, cName, errno := n.prepareAtSyscall("") if errno != 0 { return |