]> git.proxmox.com Git - mirror_ubuntu-jammy-kernel.git/commitdiff
nfsd: add fattr support for user extended attributes
authorFrank van der Linden <fllinden@amazon.com>
Tue, 23 Jun 2020 22:39:27 +0000 (22:39 +0000)
committerChuck Lever <chuck.lever@oracle.com>
Mon, 13 Jul 2020 21:27:03 +0000 (17:27 -0400)
Check if user extended attributes are supported for an inode,
and return the answer when being queried for file attributes.

An exported filesystem can now signal its RFC8276 user extended
attributes capability.

Signed-off-by: Frank van der Linden <fllinden@amazon.com>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
fs/nfsd/nfs4xdr.c

index 8bacc0ceae19a79692b43874de3a6ebde76ddb28..259d5ad0e3f47758ab564c28f12b473806e7f52c 100644 (file)
@@ -3213,6 +3213,15 @@ out_acl:
        }
 #endif
 
+       if (bmval2 & FATTR4_WORD2_XATTR_SUPPORT) {
+               p = xdr_reserve_space(xdr, 4);
+               if (!p)
+                       goto out_resource;
+               err = xattr_supported_namespace(d_inode(dentry),
+                                               XATTR_USER_PREFIX);
+               *p++ = cpu_to_be32(err == 0);
+       }
+
        attrlen = htonl(xdr->buf->len - attrlen_offset - 4);
        write_bytes_to_xdr_buf(xdr->buf, attrlen_offset, &attrlen, 4);
        status = nfs_ok;