Skip to content

Commit

Permalink
SUNRPC: parametrize local rpcbind clients creation with net ns
Browse files Browse the repository at this point in the history
These client are per network namespace and thus can be created for different
network namespaces.

Signed-off-by: Stanislav Kinsbursky <skinsbursky@parallels.com>
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
  • Loading branch information
Stanislav Kinsbursky authored and Trond Myklebust committed Feb 1, 2012
1 parent 977ac31 commit f7a30c1
Show file tree
Hide file tree
Showing 3 changed files with 7 additions and 8 deletions.
4 changes: 2 additions & 2 deletions include/linux/sunrpc/clnt.h
Original file line number Diff line number Diff line change
Expand Up @@ -136,8 +136,8 @@ void rpc_shutdown_client(struct rpc_clnt *);
void rpc_release_client(struct rpc_clnt *);
void rpc_task_release_client(struct rpc_task *);

int rpcb_create_local(void);
void rpcb_put_local(void);
int rpcb_create_local(struct net *);
void rpcb_put_local(struct net *);
int rpcb_register(struct net *, u32, u32, int, unsigned short);
int rpcb_v4_register(struct net *net, const u32 program,
const u32 version,
Expand Down
7 changes: 3 additions & 4 deletions net/sunrpc/rpcb_clnt.c
Original file line number Diff line number Diff line change
Expand Up @@ -175,9 +175,9 @@ static int rpcb_get_local(struct net *net)
return cnt;
}

void rpcb_put_local(void)
void rpcb_put_local(struct net *net)
{
struct sunrpc_net *sn = net_generic(&init_net, sunrpc_net_id);
struct sunrpc_net *sn = net_generic(net, sunrpc_net_id);
struct rpc_clnt *clnt = sn->rpcb_local_clnt;
struct rpc_clnt *clnt4 = sn->rpcb_local_clnt4;
int shutdown;
Expand Down Expand Up @@ -323,11 +323,10 @@ static int rpcb_create_local_net(struct net *net)
* Returns zero on success, otherwise a negative errno value
* is returned.
*/
int rpcb_create_local(void)
int rpcb_create_local(struct net *net)
{
static DEFINE_MUTEX(rpcb_create_local_mutex);
int result = 0;
struct net *net = &init_net;

if (rpcb_get_local(net))
return result;
Expand Down
4 changes: 2 additions & 2 deletions net/sunrpc/svc.c
Original file line number Diff line number Diff line change
Expand Up @@ -372,7 +372,7 @@ static int svc_rpcb_setup(struct svc_serv *serv)
{
int err;

err = rpcb_create_local();
err = rpcb_create_local(&init_net);
if (err)
return err;

Expand All @@ -384,7 +384,7 @@ static int svc_rpcb_setup(struct svc_serv *serv)
void svc_rpcb_cleanup(struct svc_serv *serv)
{
svc_unregister(serv);
rpcb_put_local();
rpcb_put_local(&init_net);
}
EXPORT_SYMBOL_GPL(svc_rpcb_cleanup);

Expand Down

0 comments on commit f7a30c1

Please sign in to comment.