Skip to content

Commit b0c1b1b

Browse files
committed
NFSD: Restructure nfsd4_encode_create_session()
Convert nfsd4_encode_create_session() to use the conventional XDR encoding utilities. Reviewed-by: Jeff Layton <jlayton@kernel.org> Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
1 parent 150990f commit b0c1b1b

2 files changed

Lines changed: 13 additions & 9 deletions

File tree

fs/nfsd/nfs4xdr.c

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4826,16 +4826,19 @@ nfsd4_encode_create_session(struct nfsd4_compoundres *resp, __be32 nfserr,
48264826
{
48274827
struct nfsd4_create_session *sess = &u->create_session;
48284828
struct xdr_stream *xdr = resp->xdr;
4829-
__be32 *p;
4830-
4831-
p = xdr_reserve_space(xdr, 24);
4832-
if (!p)
4833-
return nfserr_resource;
4834-
p = xdr_encode_opaque_fixed(p, sess->sessionid.data,
4835-
NFS4_MAX_SESSIONID_LEN);
4836-
*p++ = cpu_to_be32(sess->seqid);
4837-
*p++ = cpu_to_be32(sess->flags);
48384829

4830+
/* csr_sessionid */
4831+
nfserr = nfsd4_encode_sessionid4(xdr, &sess->sessionid);
4832+
if (nfserr != nfs_ok)
4833+
return nfserr;
4834+
/* csr_sequence */
4835+
nfserr = nfsd4_encode_sequenceid4(xdr, sess->seqid);
4836+
if (nfserr != nfs_ok)
4837+
return nfserr;
4838+
/* csr_flags */
4839+
nfserr = nfsd4_encode_uint32_t(xdr, sess->flags);
4840+
if (nfserr != nfs_ok)
4841+
return nfserr;
48394842
/* csr_fore_chan_attrs */
48404843
nfserr = nfsd4_encode_channel_attrs4(xdr, &sess->fore_channel);
48414844
if (nfserr != nfs_ok)

fs/nfsd/xdr4.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,7 @@ nfsd4_encode_uint32_t(struct xdr_stream *xdr, u32 val)
9696
#define nfsd4_encode_count4(x, v) nfsd4_encode_uint32_t(x, v)
9797
#define nfsd4_encode_mode4(x, v) nfsd4_encode_uint32_t(x, v)
9898
#define nfsd4_encode_nfs_lease4(x, v) nfsd4_encode_uint32_t(x, v)
99+
#define nfsd4_encode_sequenceid4(x, v) nfsd4_encode_uint32_t(x, v)
99100

100101
/**
101102
* nfsd4_encode_uint64_t - Encode an XDR uint64_t type result

0 commit comments

Comments
 (0)