diff options
author | Trond Myklebust <trond.myklebust@primarydata.com> | 2015-01-03 14:47:43 -0500 |
---|---|---|
committer | Trond Myklebust <trond.myklebust@primarydata.com> | 2015-01-24 18:46:50 -0500 |
commit | 89f0ff386cb1ebca0da7940d05bf609bc86f3972 (patch) | |
tree | 4f111c8d321d8d6bf8da9f7010b214bfd5df6ac0 /fs/nfs/nfs4xdr.c | |
parent | c4a7ca774949960064dac11b326908f28407e8c3 (diff) |
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>
Diffstat (limited to 'fs/nfs/nfs4xdr.c')
-rw-r--r-- | fs/nfs/nfs4xdr.c | 10 |
1 files changed, 3 insertions, 7 deletions
diff --git a/fs/nfs/nfs4xdr.c b/fs/nfs/nfs4xdr.c index e3018e7a316c..41253393171f 100644 --- a/fs/nfs/nfs4xdr.c +++ b/fs/nfs/nfs4xdr.c | |||
@@ -1804,9 +1804,8 @@ static void encode_create_session(struct xdr_stream *xdr, | |||
1804 | struct compound_hdr *hdr) | 1804 | struct compound_hdr *hdr) |
1805 | { | 1805 | { |
1806 | __be32 *p; | 1806 | __be32 *p; |
1807 | char machine_name[NFS4_MAX_MACHINE_NAME_LEN]; | ||
1808 | uint32_t len; | ||
1809 | struct nfs_client *clp = args->client; | 1807 | struct nfs_client *clp = args->client; |
1808 | struct rpc_clnt *clnt = clp->cl_rpcclient; | ||
1810 | struct nfs_net *nn = net_generic(clp->cl_net, nfs_net_id); | 1809 | struct nfs_net *nn = net_generic(clp->cl_net, nfs_net_id); |
1811 | u32 max_resp_sz_cached; | 1810 | u32 max_resp_sz_cached; |
1812 | 1811 | ||
@@ -1817,11 +1816,8 @@ static void encode_create_session(struct xdr_stream *xdr, | |||
1817 | max_resp_sz_cached = (NFS4_dec_open_sz + RPC_REPHDRSIZE + | 1816 | max_resp_sz_cached = (NFS4_dec_open_sz + RPC_REPHDRSIZE + |
1818 | RPC_MAX_AUTH_SIZE + 2) * XDR_UNIT; | 1817 | RPC_MAX_AUTH_SIZE + 2) * XDR_UNIT; |
1819 | 1818 | ||
1820 | len = scnprintf(machine_name, sizeof(machine_name), "%s", | ||
1821 | clp->cl_ipaddr); | ||
1822 | |||
1823 | encode_op_hdr(xdr, OP_CREATE_SESSION, decode_create_session_maxsz, hdr); | 1819 | encode_op_hdr(xdr, OP_CREATE_SESSION, decode_create_session_maxsz, hdr); |
1824 | p = reserve_space(xdr, 16 + 2*28 + 20 + len + 12); | 1820 | p = reserve_space(xdr, 16 + 2*28 + 20 + clnt->cl_nodelen + 12); |
1825 | p = xdr_encode_hyper(p, clp->cl_clientid); | 1821 | p = xdr_encode_hyper(p, clp->cl_clientid); |
1826 | *p++ = cpu_to_be32(clp->cl_seqid); /*Sequence id */ | 1822 | *p++ = cpu_to_be32(clp->cl_seqid); /*Sequence id */ |
1827 | *p++ = cpu_to_be32(args->flags); /*flags */ | 1823 | *p++ = cpu_to_be32(args->flags); /*flags */ |
@@ -1850,7 +1846,7 @@ static void encode_create_session(struct xdr_stream *xdr, | |||
1850 | 1846 | ||
1851 | /* authsys_parms rfc1831 */ | 1847 | /* authsys_parms rfc1831 */ |
1852 | *p++ = cpu_to_be32(nn->boot_time.tv_nsec); /* stamp */ | 1848 | *p++ = cpu_to_be32(nn->boot_time.tv_nsec); /* stamp */ |
1853 | p = xdr_encode_opaque(p, machine_name, len); | 1849 | p = xdr_encode_array(p, clnt->cl_nodename, clnt->cl_nodelen); |
1854 | *p++ = cpu_to_be32(0); /* UID */ | 1850 | *p++ = cpu_to_be32(0); /* UID */ |
1855 | *p++ = cpu_to_be32(0); /* GID */ | 1851 | *p++ = cpu_to_be32(0); /* GID */ |
1856 | *p = cpu_to_be32(0); /* No more gids */ | 1852 | *p = cpu_to_be32(0); /* No more gids */ |