Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 89f0ff38 authored by Trond Myklebust's avatar Trond Myklebust
Browse files

NFSv4.1: Replace usage of nfs_client->cl_addr in encode_create_session



Replace the current code with something that is a little closer to what
net/sunrpc/auth_unix.c uses.

Signed-off-by: default avatarTrond Myklebust <trond.myklebust@primarydata.com>
parent c4a7ca77
Loading
Loading
Loading
Loading
+3 −7
Original line number Diff line number Diff line
@@ -1804,9 +1804,8 @@ static void encode_create_session(struct xdr_stream *xdr,
				  struct compound_hdr *hdr)
{
	__be32 *p;
	char machine_name[NFS4_MAX_MACHINE_NAME_LEN];
	uint32_t len;
	struct nfs_client *clp = args->client;
	struct rpc_clnt *clnt = clp->cl_rpcclient;
	struct nfs_net *nn = net_generic(clp->cl_net, nfs_net_id);
	u32 max_resp_sz_cached;

@@ -1817,11 +1816,8 @@ static void encode_create_session(struct xdr_stream *xdr,
	max_resp_sz_cached = (NFS4_dec_open_sz + RPC_REPHDRSIZE +
			      RPC_MAX_AUTH_SIZE + 2) * XDR_UNIT;

	len = scnprintf(machine_name, sizeof(machine_name), "%s",
			clp->cl_ipaddr);

	encode_op_hdr(xdr, OP_CREATE_SESSION, decode_create_session_maxsz, hdr);
	p = reserve_space(xdr, 16 + 2*28 + 20 + len + 12);
	p = reserve_space(xdr, 16 + 2*28 + 20 + clnt->cl_nodelen + 12);
	p = xdr_encode_hyper(p, clp->cl_clientid);
	*p++ = cpu_to_be32(clp->cl_seqid);			/*Sequence id */
	*p++ = cpu_to_be32(args->flags);			/*flags */
@@ -1850,7 +1846,7 @@ static void encode_create_session(struct xdr_stream *xdr,

	/* authsys_parms rfc1831 */
	*p++ = cpu_to_be32(nn->boot_time.tv_nsec);	/* stamp */
	p = xdr_encode_opaque(p, machine_name, len);
	p = xdr_encode_array(p, clnt->cl_nodename, clnt->cl_nodelen);
	*p++ = cpu_to_be32(0);				/* UID */
	*p++ = cpu_to_be32(0);				/* GID */
	*p = cpu_to_be32(0);				/* No more gids */