• Chuck Lever's avatar
    SUNRPC: Move fault injection call sites · 7638e0bf
    Chuck Lever authored
    I've hit some crashes that occur in the xprt_rdma_inject_disconnect
    path. It appears that, for some provides, rdma_disconnect() can
    take so long that the transport can disconnect and release its
    hardware resources while rdma_disconnect() is still running,
    resulting in a UAF in the provider.
    
    The transport's fault injection method may depend on the stability
    of transport data structures. That means it needs to be invoked
    only from contexts that hold the transport write lock.
    
    Fixes: 4a068258 ("SUNRPC: Transport fault injection")
    Signed-off-by: default avatarChuck Lever <chuck.lever@oracle.com>
    Signed-off-by: default avatarTrond Myklebust <trond.myklebust@hammerspace.com>
    7638e0bf
transport.c 21.8 KB