提交 0601f793 编写于 作者: T Trond Myklebust 提交者: J. Bruce Fields

SUNRPC: requeue tcp socket less frequently

Don't requeue the socket in some cases where we know it's unnecessary.
Signed-off-by: NTrond Myklebust <Trond.Myklebust@netapp.com>
Signed-off-by: NJ. Bruce Fields <bfields@redhat.com>
上级 6221f222
...@@ -965,7 +965,6 @@ static int svc_tcp_recv_record(struct svc_sock *svsk, struct svc_rqst *rqstp) ...@@ -965,7 +965,6 @@ static int svc_tcp_recv_record(struct svc_sock *svsk, struct svc_rqst *rqstp)
goto err_again; /* record not complete */ goto err_again; /* record not complete */
} }
len = svsk->sk_reclen; len = svsk->sk_reclen;
set_bit(XPT_DATA, &svsk->sk_xprt.xpt_flags);
return len; return len;
error: error:
...@@ -1115,6 +1114,10 @@ static int svc_tcp_recvfrom(struct svc_rqst *rqstp) ...@@ -1115,6 +1114,10 @@ static int svc_tcp_recvfrom(struct svc_rqst *rqstp)
/* Reset TCP read info */ /* Reset TCP read info */
svsk->sk_reclen = 0; svsk->sk_reclen = 0;
svsk->sk_tcplen = 0; svsk->sk_tcplen = 0;
/* If we have more data, signal svc_xprt_enqueue() to try again */
if (svc_recv_available(svsk) > sizeof(rpc_fraghdr))
set_bit(XPT_DATA, &svsk->sk_xprt.xpt_flags);
svc_xprt_copy_addrs(rqstp, &svsk->sk_xprt); svc_xprt_copy_addrs(rqstp, &svsk->sk_xprt);
if (serv->sv_stats) if (serv->sv_stats)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册