[2/3] Supply network namespace to rpcbind.
diff mbox

Message ID 4D94319F.8040005@parallels.com
State New, archived
Headers show

Commit Message

Rob Landley March 31, 2011, 7:47 a.m. UTC
None

Comments

Serge E. Hallyn April 5, 2011, 3:01 a.m. UTC | #1
Quoting Rob Landley (rlandley@parallels.com):
> From: Rob Landley <rlandley@parallels.com>
> 
> The sunrpc code already has some support for network namespaces,
> but rpcb_create() is still using init_net.  Its arguments include
> a sockaddr and a port, but not a struct net *.  Add one, and
> pass in the value from rpc_xprt when calling it.
> 
> Signed-off-by: Rob Landley <rlandley@parallels.com>

Acked-by: Serge Hallyn <serge.hallyn@ubuntu.com>

> ---
> 
>  net/sunrpc/rpcb_clnt.c |    7 ++++---
>  1 file changed, 4 insertions(+), 3 deletions(-)
> 
> diff --git a/net/sunrpc/rpcb_clnt.c b/net/sunrpc/rpcb_clnt.c
> index c652e4c..25bb8f9 100644
> --- a/net/sunrpc/rpcb_clnt.c
> +++ b/net/sunrpc/rpcb_clnt.c
> @@ -223,10 +223,11 @@ out:
>  }
>  
>  static struct rpc_clnt *rpcb_create(char *hostname, struct sockaddr *srvaddr,
> -				    size_t salen, int proto, u32 version)
> +				    size_t salen, int proto, struct net *net,
> +				    u32 version)
>  {
>  	struct rpc_create_args args = {
> -		.net		= &init_net,
> +		.net		= net,
>  		.protocol	= proto,
>  		.address	= srvaddr,
>  		.addrsize	= salen,
> @@ -591,7 +592,7 @@ void rpcb_getport_async(struct rpc_task *task)
>  		task->tk_pid, __func__, bind_version);
>  
>  	rpcb_clnt = rpcb_create(clnt->cl_server, sap, salen, xprt->prot,
> -				bind_version);
> +				xprt->xprt_net, bind_version);
>  	if (IS_ERR(rpcb_clnt)) {
>  		status = PTR_ERR(rpcb_clnt);
>  		dprintk("RPC: %5u %s: rpcb_create failed, error %ld\n",
> _______________________________________________
> Containers mailing list
> Containers@lists.linux-foundation.org
> https://lists.linux-foundation.org/mailman/listinfo/containers
--
To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Kirill A. Shutemov April 6, 2011, 12:57 a.m. UTC | #2
On Thu, Mar 31, 2011 at 02:47:43AM -0500, Rob Landley wrote:
> From: Rob Landley <rlandley@parallels.com>
> 
> The sunrpc code already has some support for network namespaces,
> but rpcb_create() is still using init_net.  Its arguments include
> a sockaddr and a port, but not a struct net *.  Add one, and
> pass in the value from rpc_xprt when calling it.
> 
> Signed-off-by: Rob Landley <rlandley@parallels.com>

Acked-by: Kirill A. Shutemov <kas@openvz.org>

BTW, it seems conflicts with my rpc_pipefs patchset. I'll rebase my
patchset, if your patches will be merged first.

> ---
> 
>  net/sunrpc/rpcb_clnt.c |    7 ++++---
>  1 file changed, 4 insertions(+), 3 deletions(-)
> 
> diff --git a/net/sunrpc/rpcb_clnt.c b/net/sunrpc/rpcb_clnt.c
> index c652e4c..25bb8f9 100644
> --- a/net/sunrpc/rpcb_clnt.c
> +++ b/net/sunrpc/rpcb_clnt.c
> @@ -223,10 +223,11 @@ out:
>  }
>  
>  static struct rpc_clnt *rpcb_create(char *hostname, struct sockaddr *srvaddr,
> -				    size_t salen, int proto, u32 version)
> +				    size_t salen, int proto, struct net *net,
> +				    u32 version)
>  {
>  	struct rpc_create_args args = {
> -		.net		= &init_net,
> +		.net		= net,
>  		.protocol	= proto,
>  		.address	= srvaddr,
>  		.addrsize	= salen,
> @@ -591,7 +592,7 @@ void rpcb_getport_async(struct rpc_task *task)
>  		task->tk_pid, __func__, bind_version);
>  
>  	rpcb_clnt = rpcb_create(clnt->cl_server, sap, salen, xprt->prot,
> -				bind_version);
> +				xprt->xprt_net, bind_version);
>  	if (IS_ERR(rpcb_clnt)) {
>  		status = PTR_ERR(rpcb_clnt);
>  		dprintk("RPC: %5u %s: rpcb_create failed, error %ld\n",
> _______________________________________________
> Containers mailing list
> Containers@lists.linux-foundation.org
> https://lists.linux-foundation.org/mailman/listinfo/containers
Rob Landley April 6, 2011, 11:48 a.m. UTC | #3
On 04/05/2011 07:57 PM, Kirill A. Shutemov wrote:
> On Thu, Mar 31, 2011 at 02:47:43AM -0500, Rob Landley wrote:
>> From: Rob Landley <rlandley@parallels.com>
>>
>> The sunrpc code already has some support for network namespaces,
>> but rpcb_create() is still using init_net.  Its arguments include
>> a sockaddr and a port, but not a struct net *.  Add one, and
>> pass in the value from rpc_xprt when calling it.
>>
>> Signed-off-by: Rob Landley <rlandley@parallels.com>
> 
> Acked-by: Kirill A. Shutemov <kas@openvz.org>
> 
> BTW, it seems conflicts with my rpc_pipefs patchset. I'll rebase my
> patchset, if your patches will be merged first.

And vice versa, lemme know which order you want them in.

Thanks,

Rob
--
To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Patch
diff mbox

diff --git a/net/sunrpc/rpcb_clnt.c b/net/sunrpc/rpcb_clnt.c
index c652e4c..25bb8f9 100644
--- a/net/sunrpc/rpcb_clnt.c
+++ b/net/sunrpc/rpcb_clnt.c
@@ -223,10 +223,11 @@  out:
 }
 
 static struct rpc_clnt *rpcb_create(char *hostname, struct sockaddr *srvaddr,
-				    size_t salen, int proto, u32 version)
+				    size_t salen, int proto, struct net *net,
+				    u32 version)
 {
 	struct rpc_create_args args = {
-		.net		= &init_net,
+		.net		= net,
 		.protocol	= proto,
 		.address	= srvaddr,
 		.addrsize	= salen,
@@ -591,7 +592,7 @@  void rpcb_getport_async(struct rpc_task *task)
 		task->tk_pid, __func__, bind_version);
 
 	rpcb_clnt = rpcb_create(clnt->cl_server, sap, salen, xprt->prot,
-				bind_version);
+				xprt->xprt_net, bind_version);
 	if (IS_ERR(rpcb_clnt)) {
 		status = PTR_ERR(rpcb_clnt);
 		dprintk("RPC: %5u %s: rpcb_create failed, error %ld\n",