]> git.baikalelectronics.ru Git - kernel.git/commit
SUNRPC: Move fault injection call sites
authorChuck Lever <chuck.lever@oracle.com>
Wed, 31 Mar 2021 17:22:14 +0000 (13:22 -0400)
committerTrond Myklebust <trond.myklebust@hammerspace.com>
Wed, 14 Apr 2021 13:36:29 +0000 (09:36 -0400)
commitdd5813d040fc539a43d17a40cf7078f19866a542
treef6d27bd4d626ce87d322275f7968e31810bf322c
parent5921a5bc1e8fd575fc80fa4c1965b1863a481ceb
SUNRPC: Move fault injection call sites

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: f479129d7350 ("SUNRPC: Transport fault injection")
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
net/sunrpc/clnt.c
net/sunrpc/xprt.c
net/sunrpc/xprtrdma/transport.c