• Steven Whitehouse's avatar
    GFS2: Use RCU/hlist_bl based hash for quotas · c754fbbb
    Steven Whitehouse authored
    Prior to this patch, GFS2 kept all the quotas for each
    super block in a single linked list. This is rather slow
    when there are large numbers of quotas.
    
    This patch introduces a hlist_bl based hash table, similar
    to the one used for glocks. The initial look up of the quota
    is now lockless in the case where it is already cached,
    although we still have to take the per quota spinlock in
    order to bump the ref count. Either way though, this is a
    big improvement on what was there before.
    
    The qd_lock and the per super block list is preserved, for
    the time being. However it is intended that since this is no
    longer used for its original role, it should be possible to
    shrink the number of items on that list in due course and
    remove the requirement to take qd_lock in qd_get.
    Signed-off-by: default avatarSteven Whitehouse <swhiteho@redhat.com>
    Cc: Abhijith Das <adas@redhat.com>
    Cc: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
    c754fbbb
main.c 5.57 KB