NFSv4: Use the correct net namespace in nfs4_update_server
We need to use the same net namespace that was used to resolve
the hostname and sockaddr arguments.
Fixes: 32e62b7c3e
(NFS: Add nfs4_update_server)
Cc: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
This commit is contained in:
parent
e9776d0f4a
commit
292f503cad
3 changed files with 12 additions and 10 deletions
|
@ -1135,6 +1135,7 @@ static int nfs_probe_destination(struct nfs_server *server)
|
|||
* @hostname: new end-point's hostname
|
||||
* @sap: new end-point's socket address
|
||||
* @salen: size of "sap"
|
||||
* @net: net namespace
|
||||
*
|
||||
* The nfs_server must be quiescent before this function is invoked.
|
||||
* Either its session is drained (NFSv4.1+), or its transport is
|
||||
|
@ -1143,13 +1144,13 @@ static int nfs_probe_destination(struct nfs_server *server)
|
|||
* Returns zero on success, or a negative errno value.
|
||||
*/
|
||||
int nfs4_update_server(struct nfs_server *server, const char *hostname,
|
||||
struct sockaddr *sap, size_t salen)
|
||||
struct sockaddr *sap, size_t salen, struct net *net)
|
||||
{
|
||||
struct nfs_client *clp = server->nfs_client;
|
||||
struct rpc_clnt *clnt = server->client;
|
||||
struct xprt_create xargs = {
|
||||
.ident = clp->cl_proto,
|
||||
.net = &init_net,
|
||||
.net = net,
|
||||
.dstaddr = sap,
|
||||
.addrlen = salen,
|
||||
.servername = hostname,
|
||||
|
@ -1189,7 +1190,7 @@ int nfs4_update_server(struct nfs_server *server, const char *hostname,
|
|||
error = nfs4_set_client(server, hostname, sap, salen, buf,
|
||||
clp->cl_rpcclient->cl_auth->au_flavor,
|
||||
clp->cl_proto, clnt->cl_timeout,
|
||||
clp->cl_minorversion, clp->cl_net);
|
||||
clp->cl_minorversion, net);
|
||||
nfs_put_client(clp);
|
||||
if (error != 0) {
|
||||
nfs_server_insert_lists(server);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue