linux/fs/lockd
Jeff Layton 3999e49364 locks: add a new "lm_owner_key" lock operation
Currently, the hashing that the locking code uses to add these values
to the blocked_hash is simply calculated using fl_owner field. That's
valid in most cases except for server-side lockd, which validates the
owner of a lock based on fl_owner and fl_pid.

In the case where you have a small number of NFS clients doing a lot
of locking between different processes, you could end up with all
the blocked requests sitting in a very small number of hash buckets.

Add a new lm_owner_key operation to the lock_manager_operations that
will generate an unsigned long to use as the key in the hashtable.
That function is only implemented for server-side lockd, and simply
XORs the fl_owner and fl_pid.

Signed-off-by: Jeff Layton <jlayton@redhat.com>
Acked-by: J. Bruce Fields <bfields@fieldses.org>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2013-06-29 12:57:45 +04:00
..
clnt4xdr.c lockd: Remove unnecessary BUG_ON()s in the xdr client code 2012-11-04 14:43:39 -05:00
clntlock.c LOCKD: Ensure that nlmclnt_block resets block->b_status after a server reboot 2013-04-21 18:08:42 -04:00
clntproc.c LOCKD: Ensure that nlmclnt_block resets block->b_status after a server reboot 2013-04-21 18:08:42 -04:00
clntxdr.c lockd: Remove unnecessary BUG_ON()s in the xdr client code 2012-11-04 14:43:39 -05:00
grace.c LockD: pass actual network namespace to grace period management functions 2012-07-27 16:49:22 -04:00
host.c Merge branch 'for-3.9' of git://linux-nfs.org/~bfields/linux 2013-02-28 18:02:55 -08:00
Makefile lockd: Introduce new-style XDR functions for NLMv4 2010-12-16 12:37:23 -05:00
mon.c sunrpc: move address copy/cmp/convert routines and prototypes from clnt.h to addr.h 2013-02-05 09:41:14 -05:00
netns.h lockd: per-net NSM client creation and destruction helpers introduced 2012-10-01 15:27:34 -07:00
svc.c Merge branch 'for-3.7' of git://linux-nfs.org/~bfields/linux 2012-10-13 10:53:54 +09:00
svc4proc.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2012-08-01 10:26:23 -07:00
svclock.c locks: add a new "lm_owner_key" lock operation 2013-06-29 12:57:45 +04:00
svcproc.c NLM: nlm_lookup_file() may return NLMv4-specific error codes 2012-10-17 10:14:14 -04:00
svcshare.c
svcsubs.c locks: protect most of the file_lock handling with i_lock 2013-06-29 12:57:42 +04:00
xdr.c lockd: Move nlmdbg_cookie2a() to svclock.c 2010-12-16 12:37:24 -05:00
xdr4.c lockd: Introduce new-style XDR functions for NLMv4 2010-12-16 12:37:23 -05:00