]> git.baikalelectronics.ru Git - kernel.git/commit
SUNRPC: Don't hold the transport lock across socket copy operations
authorTrond Myklebust <trond.myklebust@primarydata.com>
Sun, 13 Aug 2017 14:03:59 +0000 (10:03 -0400)
committerTrond Myklebust <trond.myklebust@primarydata.com>
Wed, 16 Aug 2017 19:10:15 +0000 (15:10 -0400)
commit8176c0648ebfdc415764576fabd6296c0125bf70
treec1d450aa081919168535f06755247f022a09a517
parent0aa49b32fde7e01abf3a1273a40e3aacfd9cda47
SUNRPC: Don't hold the transport lock across socket copy operations

Instead add a mechanism to ensure that the request doesn't disappear
from underneath us while copying from the socket. We do this by
preventing xprt_release() from freeing the XDR buffers until the
flag RPC_TASK_MSG_RECV has been cleared from the request.

Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
Reviewed-by: Chuck Lever <chuck.lever@oracle.com>
include/linux/sunrpc/sched.h
include/linux/sunrpc/xprt.h
net/sunrpc/xprt.c
net/sunrpc/xprtsock.c