Re: [PATCH 11/18] fs: Introduce per-bucket inode hash locks

Christoph Hellwig
2010-10-08T18:54:12Z

> +struct inode_hash_bucket {
> + struct hlist_bl_head head;
> +};
> +
> +static inline void spin_lock_bucket(struct inode_hash_bucket *b)
> +{
> + bit_spin_lock(0, (unsigned long *)b);
> +}
> +
> +static inline void spin_unlock_bucket(struct inode_hash_bucket *b)
> +{
> + __bit_spin_unlock(0, (unsigned long *)b);
> +}

I've looked at the dcache version of this again, and I really hate
duplicating these helpers in the dcache code aswell. IMHO they
should simple operate directly on the hlist_bl_head, as that's
what it was designed for. I also don't really see any point in
wrapping the hlist_bl_head as inode_hash_bucket. If the bucket naming
is important we could rename the hlist_bl stuff to bl_hash, and the
hlist_bl_head could become bl_hash_bucket.