diff options
-rw-r--r-- | net/sunrpc/svcsock.c | 5 |
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) |