Lines Matching refs:hash
31 #include <linux/hash.h>
256 * The buffer most not be on any hash - use xfs_buf_rele instead for
425 xfs_bufhash_t *hash;
435 hash = &btp->bt_hash[hash_long((unsigned long)ioff, btp->bt_hashshift)];
437 spin_lock(&hash->bh_lock);
439 list_for_each_entry_safe(bp, n, &hash->bh_list, b_hash_list) {
452 new_bp->b_hash = hash;
453 list_add(&new_bp->b_hash_list, &hash->bh_list);
458 spin_unlock(&hash->bh_lock);
462 spin_unlock(&hash->bh_lock);
777 xfs_bufhash_t *hash = bp->b_hash;
781 if (unlikely(!hash)) {
789 if (atomic_dec_and_lock(&bp->b_hold, &hash->bh_lock)) {
792 spin_unlock(&hash->bh_lock);
795 spin_unlock(&hash->bh_lock);
799 spin_unlock(&hash->bh_lock);
1398 * have not yet returned... walk the hash list for the target.
1405 xfs_bufhash_t *hash;
1409 hash = &btp->bt_hash[i];
1411 spin_lock(&hash->bh_lock);
1412 list_for_each_entry_safe(bp, n, &hash->bh_list, b_hash_list) {
1415 spin_unlock(&hash->bh_lock);
1425 spin_unlock(&hash->bh_lock);
1430 * Allocate buffer hash table for a given target.
1432 * we need to allocate a much larger hash table.