SUNRPC: Fix autobind on cloned rpc clients
authorTrond Myklebust <Trond.Myklebust@netapp.com>
Fri, 3 Oct 2008 20:48:34 +0000 (16:48 -0400)
committerTrond Myklebust <Trond.Myklebust@netapp.com>
Tue, 7 Oct 2008 22:18:53 +0000 (18:18 -0400)
commit9a4bd29fe8f6d3f015fe1c8e5450eb62cfebfcc9
treec3175a0a07ecf41f8eae1204ef5f5421c4b023f5
parentd1ce02e1689dff9d413138f60a79b4e3affb4708
SUNRPC: Fix autobind on cloned rpc clients

Despite the fact that cloned rpc clients won't have the cl_autobind flag
set, they may still find themselves calling rpcb_getport_async(). For this
to happen, it suffices for a _parent_ rpc_clnt to use autobinding, in which
case any clone may find itself triggering the !xprt_bound() case in
call_bind().

The correct fix for this is to walk back up the tree of cloned rpc clients,
in order to find the parent that 'owns' the transport, either because it
has clnt->cl_autobind set, or because it originally created the
transport...

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
net/sunrpc/rpcb_clnt.c