SUNRPC: requeue tcp socket less frequently
Don't requeue the socket in some cases where we know it's unnecessary. Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com> Signed-off-by: J. Bruce Fields <bfields@redhat.com>
This commit is contained in:
parent
6221f222c0
commit
0601f79392
|
@ -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 @@ out:
|
||||||
/* 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)
|
||||||
|
|
Loading…
Reference in New Issue