diff options
| author | Jeff Layton <jlayton@kernel.org> | 2026-02-23 12:09:59 -0500 |
|---|---|---|
| committer | Chuck Lever <chuck.lever@oracle.com> | 2026-03-29 21:25:09 -0400 |
| commit | 17c1d66579ff27a7a8f2f407d1425272ff6fdd8c (patch) | |
| tree | 051c62661464306976337a52e9e4da3098dda598 /include/linux/sunrpc | |
| parent | 6b4f16a532e794e0df90baf15173e2166f863864 (diff) | |
| download | lwn-17c1d66579ff27a7a8f2f407d1425272ff6fdd8c.tar.gz lwn-17c1d66579ff27a7a8f2f407d1425272ff6fdd8c.zip | |
sunrpc: convert queue_lock from global spinlock to per-cache-detail lock
The global queue_lock serializes all upcall queue operations across
every cache_detail instance. Convert it to a per-cache-detail spinlock
so that different caches (e.g. auth.unix.ip vs nfsd.fh) no longer
contend with each other on queue operations.
Signed-off-by: Jeff Layton <jlayton@kernel.org>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Diffstat (limited to 'include/linux/sunrpc')
| -rw-r--r-- | include/linux/sunrpc/cache.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/include/linux/sunrpc/cache.h b/include/linux/sunrpc/cache.h index e783132e481f..3d32dd1f7b05 100644 --- a/include/linux/sunrpc/cache.h +++ b/include/linux/sunrpc/cache.h @@ -113,6 +113,7 @@ struct cache_detail { /* fields for communication over channel */ struct list_head queue; + spinlock_t queue_lock; atomic_t writers; /* how many time is /channel open */ time64_t last_close; /* if no writers, when did last close */ |
