]> 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)
commitc4c010f7e9960251ccb28a165580b94c5277b590
treec1d450aa081919168535f06755247f022a09a517
parentd15a2fed4d665a00c44806fd82c9f6b24e77fc51
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