aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--net/sunrpc/svcsock.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/net/sunrpc/svcsock.c b/net/sunrpc/svcsock.c
index b7d435c3f19e..7a3e4bfd895d 100644
--- a/net/sunrpc/svcsock.c
+++ b/net/sunrpc/svcsock.c
@@ -965,7 +965,6 @@ static int svc_tcp_recv_record(struct svc_sock *svsk, struct svc_rqst *rqstp)
965 goto err_again; /* record not complete */ 965 goto err_again; /* record not complete */
966 } 966 }
967 len = svsk->sk_reclen; 967 len = svsk->sk_reclen;
968 set_bit(XPT_DATA, &svsk->sk_xprt.xpt_flags);
969 968
970 return len; 969 return len;
971 error: 970 error:
@@ -1115,6 +1114,10 @@ out:
1115 /* Reset TCP read info */ 1114 /* Reset TCP read info */
1116 svsk->sk_reclen = 0; 1115 svsk->sk_reclen = 0;
1117 svsk->sk_tcplen = 0; 1116 svsk->sk_tcplen = 0;
1117 /* If we have more data, signal svc_xprt_enqueue() to try again */
1118 if (svc_recv_available(svsk) > sizeof(rpc_fraghdr))
1119 set_bit(XPT_DATA, &svsk->sk_xprt.xpt_flags);
1120
1118 1121
1119 svc_xprt_copy_addrs(rqstp, &svsk->sk_xprt); 1122 svc_xprt_copy_addrs(rqstp, &svsk->sk_xprt);
1120 if (serv->sv_stats) 1123 if (serv->sv_stats)