fs/mbcache.c: doucple the locking of local from global data
authorT Makphaibulchoke <tmac@hp.com>
Tue, 18 Mar 2014 23:23:20 +0000 (19:23 -0400)
committerTheodore Ts'o <tytso@mit.edu>
Tue, 18 Mar 2014 23:23:20 +0000 (19:23 -0400)
commit1f3e55fe02d12213f87869768aa2b0bad3ba9a7d
tree75fc0934a88c67ba00f4c2b30fc00e3c3c281e61
parent3e037e5211252902a188a6a11aecd247409d0229
fs/mbcache.c: doucple the locking of local from global data

The patch increases the parallelism of mbcache by using the built-in
lock in the hlist_bl_node to protect the mb_cache's local block and
index hash chains.  The global data mb_cache_lru_list and
mb_cache_list continue to be protected by the global
mb_cache_spinlock.

New block group spinlock, mb_cache_bg_lock is also added to serialize
accesses to mb_cache_entry's local data.

A new member e_refcnt is added to the mb_cache_entry structure to help
preventing an mb_cache_entry from being deallocated by a free while it
is being referenced by either mb_cache_entry_get() or
mb_cache_entry_find().

Signed-off-by: T. Makphaibulchoke <tmac@hp.com>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
fs/mbcache.c