staging: lustre: convert osc_quota hash to rhashtable
authorNeilBrown <neilb@suse.com>
Wed, 11 Apr 2018 21:54:48 +0000 (07:54 +1000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 23 Apr 2018 13:07:41 +0000 (15:07 +0200)
commit55161065d05d99a800bdac5bed3365daa93ecd62
tree6029c9c715f8d84dd6e315688b1ca267eb19c3e6
parent4206c444e4a89dae9f67f08d9c29d58c37c960cd
staging: lustre: convert osc_quota hash to rhashtable

As this is indexed by an integer, an extensible array
or extensible bitmap would be better.
If/when xarray lands, we should change to use that.

For now, just a simple conversion to rhashtable.

When removing an entry, we need to hold rcu_read_lock()
across the lookup and remove in case we race with another thread
performing a removal.  This means we need to use call_rcu()
to free the quota info so we need an rcu_head in there, which
unfortunately doubles the size of the structure.

Signed-off-by: NeilBrown <neilb@suse.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/lustre/lustre/include/obd.h
drivers/staging/lustre/lustre/osc/osc_internal.h
drivers/staging/lustre/lustre/osc/osc_quota.c