diff options
Diffstat (limited to 'net')
-rw-r--r-- | net/sunrpc/xprtsock.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/net/sunrpc/xprtsock.c b/net/sunrpc/xprtsock.c index 30e7ac243a90..8bd3b0f73ac0 100644 --- a/net/sunrpc/xprtsock.c +++ b/net/sunrpc/xprtsock.c | |||
@@ -1073,6 +1073,7 @@ static void xs_tcp_data_ready(struct sock *sk, int bytes) | |||
1073 | { | 1073 | { |
1074 | struct rpc_xprt *xprt; | 1074 | struct rpc_xprt *xprt; |
1075 | read_descriptor_t rd_desc; | 1075 | read_descriptor_t rd_desc; |
1076 | int read; | ||
1076 | 1077 | ||
1077 | dprintk("RPC: xs_tcp_data_ready...\n"); | 1078 | dprintk("RPC: xs_tcp_data_ready...\n"); |
1078 | 1079 | ||
@@ -1084,8 +1085,10 @@ static void xs_tcp_data_ready(struct sock *sk, int bytes) | |||
1084 | 1085 | ||
1085 | /* We use rd_desc to pass struct xprt to xs_tcp_data_recv */ | 1086 | /* We use rd_desc to pass struct xprt to xs_tcp_data_recv */ |
1086 | rd_desc.arg.data = xprt; | 1087 | rd_desc.arg.data = xprt; |
1087 | rd_desc.count = 65536; | 1088 | do { |
1088 | tcp_read_sock(sk, &rd_desc, xs_tcp_data_recv); | 1089 | rd_desc.count = 65536; |
1090 | read = tcp_read_sock(sk, &rd_desc, xs_tcp_data_recv); | ||
1091 | } while (read > 0); | ||
1089 | out: | 1092 | out: |
1090 | read_unlock(&sk->sk_callback_lock); | 1093 | read_unlock(&sk->sk_callback_lock); |
1091 | } | 1094 | } |