nfsd: add structure definitions for xattr requests / responses
authorFrank van der Linden <fllinden@amazon.com>
Tue, 23 Jun 2020 22:39:25 +0000 (22:39 +0000)
committerChuck Lever <chuck.lever@oracle.com>
Mon, 13 Jul 2020 21:27:03 +0000 (17:27 -0400)
Add the structures used in extended attribute request / response handling.

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

index db63d39b1507cb13358cc576eeaa323a77dfcc30..66499fb6b5670553b536d2bdd15a360ce06d426b 100644 (file)
@@ -224,6 +224,32 @@ struct nfsd4_putfh {
        bool            no_verify;          /* represents foreigh fh */
 };
 
+struct nfsd4_getxattr {
+       char            *getxa_name;            /* request */
+       u32             getxa_len;              /* request */
+       void            *getxa_buf;
+};
+
+struct nfsd4_setxattr {
+       u32             setxa_flags;            /* request */
+       char            *setxa_name;            /* request */
+       char            *setxa_buf;             /* request */
+       u32             setxa_len;              /* request */
+       struct nfsd4_change_info  setxa_cinfo;  /* response */
+};
+
+struct nfsd4_removexattr {
+       char            *rmxa_name;             /* request */
+       struct nfsd4_change_info  rmxa_cinfo;   /* response */
+};
+
+struct nfsd4_listxattrs {
+       u64             lsxa_cookie;            /* request */
+       u32             lsxa_maxcount;          /* request */
+       char            *lsxa_buf;              /* unfiltered buffer (reply) */
+       u32             lsxa_len;               /* unfiltered len (reply) */
+};
+
 struct nfsd4_open {
        u32             op_claim_type;      /* request */
        struct xdr_netobj op_fname;         /* request - everything but CLAIM_PREV */
@@ -649,6 +675,11 @@ struct nfsd4_op {
                struct nfsd4_offload_status     offload_status;
                struct nfsd4_copy_notify        copy_notify;
                struct nfsd4_seek               seek;
+
+               struct nfsd4_getxattr           getxattr;
+               struct nfsd4_setxattr           setxattr;
+               struct nfsd4_listxattrs         listxattrs;
+               struct nfsd4_removexattr        removexattr;
        } u;
        struct nfs4_replay *                    replay;
 };