Lines Matching refs:bs

734 		      struct ext4_xattr_block_find *bs)  in ext4_xattr_block_find()  argument
744 bs->bh = sb_bread(sb, EXT4_I(inode)->i_file_acl); in ext4_xattr_block_find()
746 if (!bs->bh) in ext4_xattr_block_find()
748 ea_bdebug(bs->bh, "b_count=%d, refcount=%d", in ext4_xattr_block_find()
749 atomic_read(&(bs->bh->b_count)), in ext4_xattr_block_find()
750 le32_to_cpu(BHDR(bs->bh)->h_refcount)); in ext4_xattr_block_find()
751 if (ext4_xattr_check_block(inode, bs->bh)) { in ext4_xattr_block_find()
758 bs->s.base = BHDR(bs->bh); in ext4_xattr_block_find()
759 bs->s.first = BFIRST(bs->bh); in ext4_xattr_block_find()
760 bs->s.end = bs->bh->b_data + bs->bh->b_size; in ext4_xattr_block_find()
761 bs->s.here = bs->s.first; in ext4_xattr_block_find()
762 error = ext4_xattr_find_entry(&bs->s.here, i->name_index, in ext4_xattr_block_find()
763 i->name, bs->bh->b_size, 1); in ext4_xattr_block_find()
766 bs->s.not_found = error; in ext4_xattr_block_find()
777 struct ext4_xattr_block_find *bs) in ext4_xattr_block_set() argument
781 struct ext4_xattr_search *s = &bs->s; in ext4_xattr_block_set()
791 ce = mb_cache_entry_get(ext4_mb_cache, bs->bh->b_bdev, in ext4_xattr_block_set()
792 bs->bh->b_blocknr); in ext4_xattr_block_set()
793 BUFFER_TRACE(bs->bh, "get_write_access"); in ext4_xattr_block_set()
794 error = ext4_journal_get_write_access(handle, bs->bh); in ext4_xattr_block_set()
797 lock_buffer(bs->bh); in ext4_xattr_block_set()
804 ea_bdebug(bs->bh, "modifying in-place"); in ext4_xattr_block_set()
811 bs->bh); in ext4_xattr_block_set()
813 unlock_buffer(bs->bh); in ext4_xattr_block_set()
819 bs->bh); in ext4_xattr_block_set()
824 int offset = (char *)s->here - bs->bh->b_data; in ext4_xattr_block_set()
826 unlock_buffer(bs->bh); in ext4_xattr_block_set()
831 ea_bdebug(bs->bh, "cloning"); in ext4_xattr_block_set()
832 s->base = kmalloc(bs->bh->b_size, GFP_NOFS); in ext4_xattr_block_set()
836 memcpy(s->base, BHDR(bs->bh), bs->bh->b_size); in ext4_xattr_block_set()
840 s->end = s->base + bs->bh->b_size; in ext4_xattr_block_set()
870 if (new_bh == bs->bh) in ext4_xattr_block_set()
897 } else if (bs->bh && s->base == bs->bh->b_data) { in ext4_xattr_block_set()
899 ea_bdebug(bs->bh, "keeping this block"); in ext4_xattr_block_set()
900 new_bh = bs->bh; in ext4_xattr_block_set()
954 if (bs->bh && bs->bh != new_bh) in ext4_xattr_block_set()
955 ext4_xattr_release_block(handle, inode, bs->bh); in ext4_xattr_block_set()
962 if (!(bs->bh && s->base == bs->bh->b_data)) in ext4_xattr_block_set()
1098 struct ext4_xattr_block_find bs = { in ext4_xattr_set_handle() local
1126 error = ext4_xattr_block_find(inode, &i, &bs); in ext4_xattr_set_handle()
1129 if (is.s.not_found && bs.s.not_found) { in ext4_xattr_set_handle()
1144 else if (!bs.s.not_found) in ext4_xattr_set_handle()
1145 error = ext4_xattr_block_set(handle, inode, &i, &bs); in ext4_xattr_set_handle()
1148 if (!error && !bs.s.not_found) { in ext4_xattr_set_handle()
1150 error = ext4_xattr_block_set(handle, inode, &i, &bs); in ext4_xattr_set_handle()
1152 if (EXT4_I(inode)->i_file_acl && !bs.s.base) { in ext4_xattr_set_handle()
1153 error = ext4_xattr_block_find(inode, &i, &bs); in ext4_xattr_set_handle()
1157 error = ext4_xattr_block_set(handle, inode, &i, &bs); in ext4_xattr_set_handle()
1184 brelse(bs.bh); in ext4_xattr_set_handle()
1263 struct ext4_xattr_block_find *bs = NULL; in ext4_expand_extra_isize_ea() local
1351 bs = kzalloc(sizeof(struct ext4_xattr_block_find), GFP_NOFS); in ext4_expand_extra_isize_ea()
1352 if (!is || !bs) { in ext4_expand_extra_isize_ea()
1358 bs->s.not_found = -ENODATA; in ext4_expand_extra_isize_ea()
1360 bs->bh = NULL; in ext4_expand_extra_isize_ea()
1388 kfree(bs); bs = NULL; in ext4_expand_extra_isize_ea()
1445 error = ext4_xattr_block_find(inode, &i, bs); in ext4_expand_extra_isize_ea()
1450 error = ext4_xattr_block_set(handle, inode, &i, bs); in ext4_expand_extra_isize_ea()
1459 kfree(bs); in ext4_expand_extra_isize_ea()
1471 kfree(bs); in ext4_expand_extra_isize_ea()