Skip to content
  • Christoph Hellwig's avatar
    lockd: stop abusing file_lock_list · 26bcbf96
    Christoph Hellwig authored
    
    
    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: default avatarChristoph Hellwig <hch@lst.de>
    Signed-off-by: default avatarTrond Myklebust <Trond.Myklebust@netapp.com>
    26bcbf96