NFSD: Add nfsd4_encode_count4()
authorChuck Lever <chuck.lever@oracle.com>
Mon, 25 Sep 2023 13:27:38 +0000 (09:27 -0400)
committerChuck Lever <chuck.lever@oracle.com>
Mon, 16 Oct 2023 16:44:27 +0000 (12:44 -0400)
This is a synonym for nfsd4_encode_uint32_t() that matches the
name of the XDR type. It will get at least one more use in a
subsequent patch.

Reviewed-by: Jeff Layton <jlayton@kernel.org>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
fs/nfsd/nfs4xdr.c
fs/nfsd/xdr4.h

index 1bb03fc0407f220838c865a80ad39733962d3360..50041380429acaa2d31f60e155772031aec8d543 100644 (file)
@@ -4619,12 +4619,17 @@ nfsd4_encode_write(struct nfsd4_compoundres *resp, __be32 nfserr,
                   union nfsd4_op_u *u)
 {
        struct nfsd4_write *write = &u->write;
+       struct xdr_stream *xdr = resp->xdr;
 
-       if (xdr_stream_encode_u32(resp->xdr, write->wr_bytes_written) < 0)
-               return nfserr_resource;
-       if (xdr_stream_encode_u32(resp->xdr, write->wr_how_written) < 0)
+       /* count */
+       nfserr = nfsd4_encode_count4(xdr, write->wr_bytes_written);
+       if (nfserr)
+               return nfserr;
+       /* committed */
+       if (xdr_stream_encode_u32(xdr, write->wr_how_written) != XDR_UNIT)
                return nfserr_resource;
-       return nfsd4_encode_verifier4(resp->xdr, &write->wr_verifier);
+       /* writeverf */
+       return nfsd4_encode_verifier4(xdr, &write->wr_verifier);
 }
 
 static __be32
index 52322acc1e9f9b3a55e160d1d31da4b55b933f2f..43b9c53b7795ed5c9f53ddb58cd5fab7becfed3b 100644 (file)
@@ -93,6 +93,7 @@ nfsd4_encode_uint32_t(struct xdr_stream *xdr, u32 val)
 #define nfsd4_encode_aceflag4(x, v)    nfsd4_encode_uint32_t(x, v)
 #define nfsd4_encode_acemask4(x, v)    nfsd4_encode_uint32_t(x, v)
 #define nfsd4_encode_acetype4(x, v)    nfsd4_encode_uint32_t(x, v)
+#define nfsd4_encode_count4(x, v)      nfsd4_encode_uint32_t(x, v)
 #define nfsd4_encode_mode4(x, v)       nfsd4_encode_uint32_t(x, v)
 #define nfsd4_encode_nfs_lease4(x, v)  nfsd4_encode_uint32_t(x, v)