diff options
| author | Jarek Kowalski | 2026-01-18 10:48:51 -0800 |
|---|---|---|
| committer | GitHub | 2026-01-18 19:48:51 +0100 |
| commit | 6013d56f0c09100190107613ce8c5c4c929216dd (patch) | |
| tree | 33eff2f7c85aeb50be96652773fd76512d9ab386 /internal/fusefrontend_reverse/node_xattr.go | |
| parent | c9cf6f1f8a5b90c9cb70ed19f8c8426dc2655c9d (diff) | |
* added -noxattr flag which ignores all xattr operations
Diffstat (limited to 'internal/fusefrontend_reverse/node_xattr.go')
| -rw-r--r-- | internal/fusefrontend_reverse/node_xattr.go | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/internal/fusefrontend_reverse/node_xattr.go b/internal/fusefrontend_reverse/node_xattr.go index f4e3bda..f22764a 100644 --- a/internal/fusefrontend_reverse/node_xattr.go +++ b/internal/fusefrontend_reverse/node_xattr.go @@ -25,6 +25,10 @@ func isAcl(attr string) bool { // This function is symlink-safe through Fgetxattr. func (n *Node) Getxattr(ctx context.Context, attr string, dest []byte) (uint32, syscall.Errno) { rn := n.rootNode() + // If -noxattr is enabled, return ENOATTR for all getxattr calls + if rn.args.NoXattr { + return 0, noSuchAttributeError + } var data []byte // ACLs are passed through without encryption if isAcl(attr) { @@ -56,11 +60,15 @@ func (n *Node) Getxattr(ctx context.Context, attr string, dest []byte) (uint32, // // This function is symlink-safe through Flistxattr. func (n *Node) Listxattr(ctx context.Context, dest []byte) (uint32, syscall.Errno) { + rn := n.rootNode() + // If -noxattr is enabled, return zero results for listxattr + if rn.args.NoXattr { + return 0, 0 + } pNames, errno := n.listXAttr() if errno != 0 { return 0, errno } - rn := n.rootNode() var buf bytes.Buffer for _, pName := range pNames { // ACLs are passed through without encryption |
