diff options
author | Trond Myklebust <trond.myklebust@primarydata.com> | 2017-08-16 15:30:35 -0400 |
---|---|---|
committer | Trond Myklebust <trond.myklebust@primarydata.com> | 2017-08-18 14:45:04 -0400 |
commit | ce7c252a8c741aba7c38f817b86e34361f561e42 (patch) | |
tree | 4e90fa24a74ac7f8ecfcf1ddc1be735e64aa43cc /include/linux/sunrpc | |
parent | 040249dfbeed9dd553fd323ef4b42c7a3270898b (diff) | |
download | talos-op-linux-ce7c252a8c741aba7c38f817b86e34361f561e42.tar.gz talos-op-linux-ce7c252a8c741aba7c38f817b86e34361f561e42.zip |
SUNRPC: Add a separate spinlock to protect the RPC request receive list
This further reduces contention with the transport_lock, and allows us
to convert to using a non-bh-safe spinlock, since the list is now never
accessed from a bh context.
Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
Diffstat (limited to 'include/linux/sunrpc')
-rw-r--r-- | include/linux/sunrpc/xprt.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/include/linux/sunrpc/xprt.h b/include/linux/sunrpc/xprt.h index 65b9e0224753..a97e6de5f9f2 100644 --- a/include/linux/sunrpc/xprt.h +++ b/include/linux/sunrpc/xprt.h @@ -232,6 +232,7 @@ struct rpc_xprt { */ spinlock_t transport_lock; /* lock transport info */ spinlock_t reserve_lock; /* lock slot table */ + spinlock_t recv_lock; /* lock receive list */ u32 xid; /* Next XID value to use */ struct rpc_task * snd_task; /* Task blocked in send */ struct svc_xprt *bc_xprt; /* NFSv4.1 backchannel */ |