OpenCloudOS-Kernel/fs/lockd
Christoph Hellwig 26bcbf965f lockd: stop abusing file_lock_list
Currently lockd directly access the file_lock_list from fs/locks.c.
It does so to mark locks granted or reclaimable.  This is very
suboptimal, because a) lockd needs to poke into locks.c internals, and
b) it needs to iterate over all locks in the system for marking locks
granted or reclaimable.

This patch adds lists for granted and reclaimable locks to the nlm_host
structure instead, and adds locks to those.

nlmclnt_lock:
	now adds the lock to h_granted instead of setting the
	NFS_LCK_GRANTED, still O(1)

nlmclnt_mark_reclaim:
	goes away completely, replaced by a list_splice_init.
	Complexity reduced from O(locks in the system) to O(1)

reclaimer:
	iterates over h_reclaim now, complexity reduced from
	O(locks in the system) to O(locks per nlm_host)

Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
2006-03-20 13:44:40 -05:00
..
Makefile Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
clntlock.c lockd: stop abusing file_lock_list 2006-03-20 13:44:40 -05:00
clntproc.c lockd: stop abusing file_lock_list 2006-03-20 13:44:40 -05:00
host.c lockd: stop abusing file_lock_list 2006-03-20 13:44:40 -05:00
mon.c SUNRPC: eliminate rpc_call() 2006-03-20 13:44:23 -05:00
svc.c SUNRPC: Ensure that SIGKILL will always terminate a synchronous RPC call. 2006-01-06 14:58:45 -05:00
svc4proc.c lockd: Make nlmsvc_create_block() use nlmsvc_lookup_host() 2006-03-20 13:44:39 -05:00
svclock.c lockd: Make nlmsvc_create_block() use nlmsvc_lookup_host() 2006-03-20 13:44:39 -05:00
svcproc.c lockd: Make nlmsvc_create_block() use nlmsvc_lookup_host() 2006-03-20 13:44:39 -05:00
svcshare.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
svcsubs.c lockd: Remove FL_LOCKD flag 2006-03-20 13:44:26 -05:00
xdr.c SUNRPC: display human-readable procedure name in rpc_iostats output 2006-03-20 13:44:22 -05:00
xdr4.c SUNRPC: display human-readable procedure name in rpc_iostats output 2006-03-20 13:44:22 -05:00