• Chuck Lever's avatar
    SUNRPC: Make RPC portmapper use per-transport storage · 4a68179d
    Chuck Lever authored
    Move connection and bind state that was maintained in the rpc_clnt
    structure to the rpc_xprt structure.  This will allow the creation of
    a clean API for plugging in different types of bind mechanisms.
    
    This brings improvements such as the elimination of a single spin lock to
    control serialization for all in-kernel RPC binding.  A set of per-xprt
    bitops is used to serialize tasks during RPC binding, just like it now
    works for making RPC transport connections.
    
    Test-plan:
    Destructive testing (unplugging the network temporarily).  Connectathon
    with UDP and TCP.  NFSv2/3 and NFSv4 mounting should be carefully checked.
    Probably need to rig a server where certain services aren't running, or
    that returns an error for some typical operation.
    Signed-off-by: default avatarChuck Lever <chuck.lever@oracle.com>
    Signed-off-by: default avatarTrond Myklebust <Trond.Myklebust@netapp.com>
    4a68179d
clnt.c 32 KB