diff options
author | Trond Myklebust <trond.myklebust@hammerspace.com> | 2021-02-09 16:04:15 -0500 |
---|---|---|
committer | Trond Myklebust <trond.myklebust@hammerspace.com> | 2021-04-05 09:04:20 -0400 |
commit | d737e5d418706abf32f6de68c3e09958516d422f (patch) | |
tree | 91351c667049d5f571a9a9cad788a7f3f0123cd9 /net/sunrpc/xprt.c | |
parent | 86438186a7b372728c74055d441549e17915cddb (diff) | |
download | linux-d737e5d418706abf32f6de68c3e09958516d422f.tar.gz linux-d737e5d418706abf32f6de68c3e09958516d422f.tar.bz2 linux-d737e5d418706abf32f6de68c3e09958516d422f.zip |
SUNRPC: Set TCP_CORK until the transmit queue is empty
When we have multiple RPC requests queued up, it makes sense to set the
TCP_CORK option while the transmit queue is non-empty.
Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
Diffstat (limited to 'net/sunrpc/xprt.c')
-rw-r--r-- | net/sunrpc/xprt.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/net/sunrpc/xprt.c b/net/sunrpc/xprt.c index 691ccf8049a4..a853f75d4968 100644 --- a/net/sunrpc/xprt.c +++ b/net/sunrpc/xprt.c @@ -1352,6 +1352,7 @@ xprt_request_enqueue_transmit(struct rpc_task *task) list_add_tail(&req->rq_xmit, &xprt->xmit_queue); INIT_LIST_HEAD(&req->rq_xmit2); out: + atomic_long_inc(&xprt->xmit_queuelen); set_bit(RPC_TASK_NEED_XMIT, &task->tk_runstate); spin_unlock(&xprt->queue_lock); } @@ -1381,6 +1382,7 @@ xprt_request_dequeue_transmit_locked(struct rpc_task *task) } } else list_del(&req->rq_xmit2); + atomic_long_dec(&req->rq_xprt->xmit_queuelen); } /** |