Browse Source

fusefrontend: honor ForceOwner for LOOKUP and CREATE operations

master
Charles Duffy 9 months ago committed by Jakob Unterwurzacher
parent
commit
8ec872e330
  1. 4
      internal/fusefrontend/node.go
  2. 6
      internal/fusefrontend/node_open_create.go

4
internal/fusefrontend/node.go

@ -41,6 +41,10 @@ func (n *Node) Lookup(ctx context.Context, name string, out *fuse.EntryOut) (ch
n.translateSize(dirfd, cName, &out.Attr)
rn := n.rootNode()
if rn.args.ForceOwner != nil {
out.Owner = *rn.args.ForceOwner
}
if rn.args.SharedStorage {
// If we already have a child node that matches what we found on disk*
// (as reflected in `ch`), return it here.

6
internal/fusefrontend/node_open_create.go

@ -103,6 +103,12 @@ func (n *Node) Create(ctx context.Context, name string, flags uint32, mode uint3
if errno != 0 {
return
}
inode = n.newChild(ctx, st, out)
if rn.args.ForceOwner != nil {
out.Owner = *rn.args.ForceOwner
}
return inode, fh, fuseFlags, errno
}

Loading…
Cancel
Save