Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753350AbZAFBNr (ORCPT ); Mon, 5 Jan 2009 20:13:47 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1751303AbZAFBNW (ORCPT ); Mon, 5 Jan 2009 20:13:22 -0500 Received: from e1.ny.us.ibm.com ([32.97.182.141]:50142 "EHLO e1.ny.us.ibm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751199AbZAFBNU (ORCPT ); Mon, 5 Jan 2009 20:13:20 -0500 Message-Id: <20090106011314.961946803@us.ibm.com> References: <20090106011314.534653345@us.ibm.com> User-Agent: quilt/0.46-1 Date: Mon, 05 Jan 2009 17:13:16 -0800 From: Matt Helsley To: Linux Containers Cc: "J. Bruce Fields" , Cedric Le Goater , Linux Kernel Mailing List , linux-nfs@vger.kernel.org, Trond Myklebust , Chuck Lever , "Eric W. Biederman" , Matt Helsley , Linux Containers Subject: [RFC][PATCH 2/4] sunrpc: Use utsnamespaces Content-Disposition: inline; filename=reenable-uts-ns-for-most-rpc-clients.patch Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1881 Lines: 52 We can often specify the UTS namespace to use when starting an RPC client. However sometimes no UTS namespace is available (specifically during system shutdown as the last NFS mount in a container is unmounted) so fall back to the initial UTS namespace. Signed-off-by: Matt Helsley Cc: Cedric Le Goater Cc: Linux Kernel Mailing List Cc: linux-nfs@vger.kernel.org Cc: Trond Myklebust Cc: Chuck Lever Cc: Eric W. Biederman Cc: Linux Containers --- net/sunrpc/clnt.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) Index: linux-2.6.28/net/sunrpc/clnt.c =================================================================== --- linux-2.6.28.orig/net/sunrpc/clnt.c +++ linux-2.6.28/net/sunrpc/clnt.c @@ -128,6 +128,7 @@ static struct rpc_clnt * rpc_new_client( struct rpc_version *version; struct rpc_clnt *clnt = NULL; struct rpc_auth *auth; + struct new_utsname *uts_ns = init_utsname(); int err; size_t len; @@ -213,10 +214,12 @@ static struct rpc_clnt * rpc_new_client( } /* save the nodename */ - clnt->cl_nodelen = strlen(init_utsname()->nodename); + if (current->nsproxy != NULL) + uts_ns = utsname(); + clnt->cl_nodelen = strlen(uts_ns->nodename); if (clnt->cl_nodelen > UNX_MAXNODENAME) clnt->cl_nodelen = UNX_MAXNODENAME; - memcpy(clnt->cl_nodename, init_utsname()->nodename, clnt->cl_nodelen); + memcpy(clnt->cl_nodename, uts_ns->nodename, clnt->cl_nodelen); rpc_register_client(clnt); return clnt; -- -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/