]> git.baikalelectronics.ru Git - kernel.git/commit
SUNRPC: RPC callbacks may be split across several TCP segments
authorTrond Myklebust <trond.myklebust@primarydata.com>
Mon, 10 Feb 2014 16:18:39 +0000 (11:18 -0500)
committerTrond Myklebust <trond.myklebust@primarydata.com>
Tue, 11 Feb 2014 19:01:20 +0000 (14:01 -0500)
commitb200578b9ef8836205b5d3e9211875ca0ee62acc
tree1e1b3d1c95e712dcce68be4d011620b46a6271c7
parente5657a7342464526a9f72dccca26787341c43a36
SUNRPC: RPC callbacks may be split across several TCP segments

Since TCP is a stream protocol, our callback read code needs to take into
account the fact that RPC callbacks are not always confined to a single
TCP segment.
This patch adds support for multiple TCP segments by ensuring that we
only remove the rpc_rqst structure from the 'free backchannel requests'
list once the data has been completely received. We rely on the fact
that TCP data is ordered for the duration of the connection.

Reported-by: shaobingqing <shaobingqing@bwstor.com.cn>
Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
include/linux/sunrpc/bc_xprt.h
net/sunrpc/backchannel_rqst.c
net/sunrpc/xprtsock.c