Re: [PATCH] SUNRPC: return negative value in case rpcbind clientcreation error

From: bfields@xxxxxxxxxxxx
Date: Mon Jul 30 2012 - 19:23:13 EST


On Mon, Jul 30, 2012 at 11:12:05PM +0000, Myklebust, Trond wrote:
> On Fri, 2012-07-20 at 15:57 +0400, Stanislav Kinsbursky wrote:
> > Without this patch kernel will panic on LockD start, because lockd_up() checks
> > lockd_up_net() result for negative value.
> > >From my pow it's better to return negative value from rpcbind routines instead
> > of replacing all such checks like in lockd_up().
> >
> > Signed-off-by: Stanislav Kinsbursky <skinsbursky@xxxxxxxxxxxxx>
> > ---
> > net/sunrpc/rpcb_clnt.c | 4 ++--
> > 1 files changed, 2 insertions(+), 2 deletions(-)
> >
> > diff --git a/net/sunrpc/rpcb_clnt.c b/net/sunrpc/rpcb_clnt.c
> > index 92509ff..a70acae 100644
> > --- a/net/sunrpc/rpcb_clnt.c
> > +++ b/net/sunrpc/rpcb_clnt.c
> > @@ -251,7 +251,7 @@ static int rpcb_create_local_unix(struct net *net)
> > if (IS_ERR(clnt)) {
> > dprintk("RPC: failed to create AF_LOCAL rpcbind "
> > "client (errno %ld).\n", PTR_ERR(clnt));
> > - result = -PTR_ERR(clnt);
> > + result = PTR_ERR(clnt);
> > goto out;
> > }
> >
> > @@ -298,7 +298,7 @@ static int rpcb_create_local_net(struct net *net)
> > if (IS_ERR(clnt)) {
> > dprintk("RPC: failed to create local rpcbind "
> > "client (errno %ld).\n", PTR_ERR(clnt));
> > - result = -PTR_ERR(clnt);
> > + result = PTR_ERR(clnt);
> > goto out;
> > }
>
> Who is supposed to carry this patch? Is it Bruce or is it me?

Works either way. Either way--it looks like the bug was introduced with

c526611dd631b2802b6b0221ffb306c5fa25c86c "SUNRPC: Use a cached RPC
client and transport for rpcbind upcalls" and
7402ab19cdd5943c7dd4f3399afe3abda8077ef5 "SUNRPC: Use AF_LOCAL for
rpcbind upcalls"

and should go to stable as well.

(Looks like I said that before but accidentally dropped everyone off the
cc.)

--b.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/