mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-24 20:54:10 +08:00
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: Trond Myklebust <trond.myklebust@primarydata.com>
This commit is contained in:
parent
c4a7ca7749
commit
89f0ff386c
@ -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 */
|
||||
|
Loading…
Reference in New Issue
Block a user