Lines Matching refs:bh

69 #define HDR(bh) ((struct ext2_xattr_header *)((bh)->b_data))  argument
71 #define FIRST_ENTRY(bh) ENTRY(HDR(bh)+1) argument
81 # define ea_bdebug(bh, f...) do { \ argument
83 bh->b_bdev, (unsigned long) bh->b_blocknr); \
89 # define ea_bdebug(bh, f...) no_printk(f) argument
199 struct buffer_head *bh = NULL; in ext2_xattr_get() local
220 bh = sb_bread(inode->i_sb, EXT2_I(inode)->i_file_acl); in ext2_xattr_get()
222 if (!bh) in ext2_xattr_get()
224 ea_bdebug(bh, "b_count=%d, refcount=%d", in ext2_xattr_get()
225 atomic_read(&(bh->b_count)), le32_to_cpu(HDR(bh)->h_refcount)); in ext2_xattr_get()
226 end = bh->b_data + bh->b_size; in ext2_xattr_get()
227 if (!ext2_xattr_header_valid(HDR(bh))) { in ext2_xattr_get()
237 entry = FIRST_ENTRY(bh); in ext2_xattr_get()
252 if (ext2_xattr_cache_insert(ea_block_cache, bh)) in ext2_xattr_get()
258 if (ext2_xattr_cache_insert(ea_block_cache, bh)) in ext2_xattr_get()
265 memcpy(buffer, bh->b_data + le16_to_cpu(entry->e_value_offs), in ext2_xattr_get()
271 brelse(bh); in ext2_xattr_get()
291 struct buffer_head *bh = NULL; in ext2_xattr_list() local
306 bh = sb_bread(inode->i_sb, EXT2_I(inode)->i_file_acl); in ext2_xattr_list()
308 if (!bh) in ext2_xattr_list()
310 ea_bdebug(bh, "b_count=%d, refcount=%d", in ext2_xattr_list()
311 atomic_read(&(bh->b_count)), le32_to_cpu(HDR(bh)->h_refcount)); in ext2_xattr_list()
312 end = bh->b_data + bh->b_size; in ext2_xattr_list()
313 if (!ext2_xattr_header_valid(HDR(bh))) { in ext2_xattr_list()
323 entry = FIRST_ENTRY(bh); in ext2_xattr_list()
330 if (ext2_xattr_cache_insert(ea_block_cache, bh)) in ext2_xattr_list()
334 for (entry = FIRST_ENTRY(bh); !IS_LAST_ENTRY(entry); in ext2_xattr_list()
361 brelse(bh); in ext2_xattr_list()
411 struct buffer_head *bh = NULL; in ext2_xattr_set() local
446 bh = sb_bread(sb, EXT2_I(inode)->i_file_acl); in ext2_xattr_set()
448 if (!bh) in ext2_xattr_set()
450 ea_bdebug(bh, "b_count=%d, refcount=%d", in ext2_xattr_set()
451 atomic_read(&(bh->b_count)), in ext2_xattr_set()
452 le32_to_cpu(HDR(bh)->h_refcount)); in ext2_xattr_set()
453 header = HDR(bh); in ext2_xattr_set()
454 end = bh->b_data + bh->b_size; in ext2_xattr_set()
468 last = FIRST_ENTRY(bh); in ext2_xattr_set()
522 lock_buffer(bh); in ext2_xattr_set()
528 hash, bh->b_blocknr); in ext2_xattr_set()
530 ea_bdebug(bh, "modifying in-place"); in ext2_xattr_set()
538 unlock_buffer(bh); in ext2_xattr_set()
539 ea_bdebug(bh, "cloning"); in ext2_xattr_set()
540 header = kmemdup(HDR(bh), bh->b_size, GFP_KERNEL); in ext2_xattr_set()
546 offset = (char *)here - bh->b_data; in ext2_xattr_set()
548 offset = (char *)last - bh->b_data; in ext2_xattr_set()
636 if (bh && header == HDR(bh)) in ext2_xattr_set()
637 unlock_buffer(bh); /* we were modifying in-place. */ in ext2_xattr_set()
638 error = ext2_xattr_set2(inode, bh, NULL); in ext2_xattr_set()
641 if (bh && header == HDR(bh)) in ext2_xattr_set()
642 unlock_buffer(bh); /* we were modifying in-place. */ in ext2_xattr_set()
643 error = ext2_xattr_set2(inode, bh, header); in ext2_xattr_set()
647 if (!(bh && header == HDR(bh))) in ext2_xattr_set()
649 brelse(bh); in ext2_xattr_set()
656 struct buffer_head *bh) in ext2_xattr_release_block() argument
661 lock_buffer(bh); in ext2_xattr_release_block()
662 if (HDR(bh)->h_refcount == cpu_to_le32(1)) { in ext2_xattr_release_block()
663 __u32 hash = le32_to_cpu(HDR(bh)->h_hash); in ext2_xattr_release_block()
671 bh->b_blocknr); in ext2_xattr_release_block()
677 unlock_buffer(bh); in ext2_xattr_release_block()
684 ea_bdebug(bh, "freeing"); in ext2_xattr_release_block()
685 ext2_free_blocks(inode, bh->b_blocknr, 1); in ext2_xattr_release_block()
688 get_bh(bh); in ext2_xattr_release_block()
689 bforget(bh); in ext2_xattr_release_block()
690 unlock_buffer(bh); in ext2_xattr_release_block()
693 le32_add_cpu(&HDR(bh)->h_refcount, -1); in ext2_xattr_release_block()
695 mark_buffer_dirty(bh); in ext2_xattr_release_block()
696 unlock_buffer(bh); in ext2_xattr_release_block()
697 ea_bdebug(bh, "refcount now=%d", in ext2_xattr_release_block()
698 le32_to_cpu(HDR(bh)->h_refcount)); in ext2_xattr_release_block()
700 sync_dirty_buffer(bh); in ext2_xattr_release_block()
818 struct buffer_head *bh = NULL; in ext2_xattr_delete_inode() local
840 bh = sb_bread(inode->i_sb, EXT2_I(inode)->i_file_acl); in ext2_xattr_delete_inode()
841 if (!bh) { in ext2_xattr_delete_inode()
847 ea_bdebug(bh, "b_count=%d", atomic_read(&(bh->b_count))); in ext2_xattr_delete_inode()
848 if (!ext2_xattr_header_valid(HDR(bh))) { in ext2_xattr_delete_inode()
854 ext2_xattr_release_block(inode, bh); in ext2_xattr_delete_inode()
858 brelse(bh); in ext2_xattr_delete_inode()
871 ext2_xattr_cache_insert(struct mb_cache *cache, struct buffer_head *bh) in ext2_xattr_cache_insert() argument
873 __u32 hash = le32_to_cpu(HDR(bh)->h_hash); in ext2_xattr_cache_insert()
876 error = mb_cache_entry_create(cache, GFP_NOFS, hash, bh->b_blocknr, in ext2_xattr_cache_insert()
880 ea_bdebug(bh, "already in cache"); in ext2_xattr_cache_insert()
884 ea_bdebug(bh, "inserting [%x]", (int)hash); in ext2_xattr_cache_insert()
949 struct buffer_head *bh; in ext2_xattr_cache_find() local
951 bh = sb_bread(inode->i_sb, ce->e_value); in ext2_xattr_cache_find()
952 if (!bh) { in ext2_xattr_cache_find()
957 lock_buffer(bh); in ext2_xattr_cache_find()
958 if (le32_to_cpu(HDR(bh)->h_refcount) > in ext2_xattr_cache_find()
962 le32_to_cpu(HDR(bh)->h_refcount), in ext2_xattr_cache_find()
964 } else if (!ext2_xattr_cmp(header, HDR(bh))) { in ext2_xattr_cache_find()
965 ea_bdebug(bh, "b_count=%d", in ext2_xattr_cache_find()
966 atomic_read(&(bh->b_count))); in ext2_xattr_cache_find()
969 return bh; in ext2_xattr_cache_find()
971 unlock_buffer(bh); in ext2_xattr_cache_find()
972 brelse(bh); in ext2_xattr_cache_find()