vfs: get rid of 'struct dcache_hash_bucket' abstraction
authorLinus Torvalds <torvalds@linux-foundation.org>
Sun, 24 Apr 2011 05:32:03 +0000 (22:32 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Sun, 24 Apr 2011 05:32:03 +0000 (22:32 -0700)
commitb07ad9967f40b164af77205027352ba53729cf5a
tree33ce9c53602f1983cff5dd5f209bb668fb7ffca5
parent0f1d9f78ce41a8874d30271ef8480e6f8f7f1fce
vfs: get rid of 'struct dcache_hash_bucket' abstraction

It's a useless abstraction for 'hlist_bl_head', and it doesn't actually
help anything - quite the reverse.  All the users end up having to know
about the hlist_bl_head details anyway, using 'struct hlist_bl_node *'
etc. So it just makes the code look confusing.

And the cost of it is extra '&b->head' syntactic noise, but more
importantly it spuriously makes the hash table dentry list look
different from the per-superblock DCACHE_DISCONNECTED dentry list.

As a result, the code ended up using ad-hoc locking for one case and
special helper functions for what is really another totally identical
case in the very same function.

Make it all look and work the same.

Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
fs/dcache.c