Lines Matching refs:bucket
135 struct ocfs2_xattr_bucket *bucket; member
289 struct ocfs2_xattr_bucket *bucket,
311 struct ocfs2_xattr_bucket *bucket,
332 struct ocfs2_xattr_bucket *bucket; in ocfs2_xattr_bucket_new() local
337 bucket = kzalloc(sizeof(struct ocfs2_xattr_bucket), GFP_NOFS); in ocfs2_xattr_bucket_new()
338 if (bucket) { in ocfs2_xattr_bucket_new()
339 bucket->bu_inode = inode; in ocfs2_xattr_bucket_new()
340 bucket->bu_blocks = blks; in ocfs2_xattr_bucket_new()
343 return bucket; in ocfs2_xattr_bucket_new()
346 static void ocfs2_xattr_bucket_relse(struct ocfs2_xattr_bucket *bucket) in ocfs2_xattr_bucket_relse() argument
350 for (i = 0; i < bucket->bu_blocks; i++) { in ocfs2_xattr_bucket_relse()
351 brelse(bucket->bu_bhs[i]); in ocfs2_xattr_bucket_relse()
352 bucket->bu_bhs[i] = NULL; in ocfs2_xattr_bucket_relse()
356 static void ocfs2_xattr_bucket_free(struct ocfs2_xattr_bucket *bucket) in ocfs2_xattr_bucket_free() argument
358 if (bucket) { in ocfs2_xattr_bucket_free()
359 ocfs2_xattr_bucket_relse(bucket); in ocfs2_xattr_bucket_free()
360 bucket->bu_inode = NULL; in ocfs2_xattr_bucket_free()
361 kfree(bucket); in ocfs2_xattr_bucket_free()
371 static int ocfs2_init_xattr_bucket(struct ocfs2_xattr_bucket *bucket, in ocfs2_init_xattr_bucket() argument
376 for (i = 0; i < bucket->bu_blocks; i++) { in ocfs2_init_xattr_bucket()
377 bucket->bu_bhs[i] = sb_getblk(bucket->bu_inode->i_sb, in ocfs2_init_xattr_bucket()
379 if (!bucket->bu_bhs[i]) { in ocfs2_init_xattr_bucket()
385 if (!ocfs2_buffer_uptodate(INODE_CACHE(bucket->bu_inode), in ocfs2_init_xattr_bucket()
386 bucket->bu_bhs[i])) { in ocfs2_init_xattr_bucket()
388 ocfs2_set_new_buffer_uptodate(INODE_CACHE(bucket->bu_inode), in ocfs2_init_xattr_bucket()
389 bucket->bu_bhs[i]); in ocfs2_init_xattr_bucket()
391 set_buffer_uptodate(bucket->bu_bhs[i]); in ocfs2_init_xattr_bucket()
392 ocfs2_set_buffer_uptodate(INODE_CACHE(bucket->bu_inode), in ocfs2_init_xattr_bucket()
393 bucket->bu_bhs[i]); in ocfs2_init_xattr_bucket()
399 ocfs2_xattr_bucket_relse(bucket); in ocfs2_init_xattr_bucket()
404 static int ocfs2_read_xattr_bucket(struct ocfs2_xattr_bucket *bucket, in ocfs2_read_xattr_bucket() argument
409 rc = ocfs2_read_blocks(INODE_CACHE(bucket->bu_inode), xb_blkno, in ocfs2_read_xattr_bucket()
410 bucket->bu_blocks, bucket->bu_bhs, 0, in ocfs2_read_xattr_bucket()
413 spin_lock(&OCFS2_SB(bucket->bu_inode->i_sb)->osb_xattr_lock); in ocfs2_read_xattr_bucket()
414 rc = ocfs2_validate_meta_ecc_bhs(bucket->bu_inode->i_sb, in ocfs2_read_xattr_bucket()
415 bucket->bu_bhs, in ocfs2_read_xattr_bucket()
416 bucket->bu_blocks, in ocfs2_read_xattr_bucket()
417 &bucket_xh(bucket)->xh_check); in ocfs2_read_xattr_bucket()
418 spin_unlock(&OCFS2_SB(bucket->bu_inode->i_sb)->osb_xattr_lock); in ocfs2_read_xattr_bucket()
424 ocfs2_xattr_bucket_relse(bucket); in ocfs2_read_xattr_bucket()
429 struct ocfs2_xattr_bucket *bucket, in ocfs2_xattr_bucket_journal_access() argument
434 for (i = 0; i < bucket->bu_blocks; i++) { in ocfs2_xattr_bucket_journal_access()
436 INODE_CACHE(bucket->bu_inode), in ocfs2_xattr_bucket_journal_access()
437 bucket->bu_bhs[i], type); in ocfs2_xattr_bucket_journal_access()
448 struct ocfs2_xattr_bucket *bucket) in ocfs2_xattr_bucket_journal_dirty() argument
452 spin_lock(&OCFS2_SB(bucket->bu_inode->i_sb)->osb_xattr_lock); in ocfs2_xattr_bucket_journal_dirty()
453 ocfs2_compute_meta_ecc_bhs(bucket->bu_inode->i_sb, in ocfs2_xattr_bucket_journal_dirty()
454 bucket->bu_bhs, bucket->bu_blocks, in ocfs2_xattr_bucket_journal_dirty()
455 &bucket_xh(bucket)->xh_check); in ocfs2_xattr_bucket_journal_dirty()
456 spin_unlock(&OCFS2_SB(bucket->bu_inode->i_sb)->osb_xattr_lock); in ocfs2_xattr_bucket_journal_dirty()
458 for (i = 0; i < bucket->bu_blocks; i++) in ocfs2_xattr_bucket_journal_dirty()
459 ocfs2_journal_dirty(handle, bucket->bu_bhs[i]); in ocfs2_xattr_bucket_journal_dirty()
1200 xs->bucket = ocfs2_xattr_bucket_new(inode); in ocfs2_xattr_block_get()
1201 if (!xs->bucket) { in ocfs2_xattr_block_get()
1231 bucket_xh(xs->bucket), in ocfs2_xattr_block_get()
1239 xs->base = bucket_block(xs->bucket, block_off); in ocfs2_xattr_block_get()
1257 ocfs2_xattr_bucket_free(xs->bucket); in ocfs2_xattr_block_get()
1690 struct ocfs2_xattr_bucket *bucket = loc->xl_storage; in ocfs2_xa_bucket_journal_access() local
1692 return ocfs2_xattr_bucket_journal_access(handle, bucket, type); in ocfs2_xa_bucket_journal_access()
1698 struct ocfs2_xattr_bucket *bucket = loc->xl_storage; in ocfs2_xa_bucket_journal_dirty() local
1700 ocfs2_xattr_bucket_journal_dirty(handle, bucket); in ocfs2_xa_bucket_journal_dirty()
1706 struct ocfs2_xattr_bucket *bucket = loc->xl_storage; in ocfs2_xa_bucket_offset_pointer() local
1713 return bucket_block(bucket, block) + block_offset; in ocfs2_xa_bucket_offset_pointer()
1725 struct ocfs2_xattr_bucket *bucket = loc->xl_storage; in ocfs2_xa_bucket_get_free_start() local
1726 return le16_to_cpu(bucket_xh(bucket)->xh_free_start); in ocfs2_xa_bucket_get_free_start()
1847 struct ocfs2_xattr_bucket *bucket = loc->xl_storage; in ocfs2_xa_bucket_fill_value_buf() local
1857 BUG_ON(!bucket->bu_bhs[block_offset]); in ocfs2_xa_bucket_fill_value_buf()
1860 vb->vb_bh = bucket->bu_bhs[block_offset]; in ocfs2_xa_bucket_fill_value_buf()
2289 struct ocfs2_xattr_bucket *bucket, in ocfs2_init_xattr_bucket_xa_loc() argument
2292 loc->xl_inode = bucket->bu_inode; in ocfs2_init_xattr_bucket_xa_loc()
2294 loc->xl_storage = bucket; in ocfs2_init_xattr_bucket_xa_loc()
2295 loc->xl_header = bucket_xh(bucket); in ocfs2_init_xattr_bucket_xa_loc()
3077 bucket_xh(xbs->bucket), in ocfs2_calc_xattr_set_need()
3080 base = bucket_block(xbs->bucket, block_off); in ocfs2_calc_xattr_set_need()
3472 xbs.bucket = ocfs2_xattr_bucket_new(inode); in ocfs2_xattr_set_handle()
3473 if (!xbs.bucket) { in ocfs2_xattr_set_handle()
3498 ocfs2_xattr_bucket_free(xbs.bucket); in ocfs2_xattr_set_handle()
3548 xbs.bucket = ocfs2_xattr_bucket_new(inode); in ocfs2_xattr_set()
3549 if (!xbs.bucket) { in ocfs2_xattr_set()
3656 ocfs2_xattr_bucket_free(xbs.bucket); in ocfs2_xattr_set()
3726 struct ocfs2_xattr_bucket *bucket,
3730 struct ocfs2_xattr_bucket *bucket, in ocfs2_find_xe_in_bucket() argument
3738 struct ocfs2_xattr_header *xh = bucket_xh(bucket); in ocfs2_find_xe_in_bucket()
3772 xe_name = bucket_block(bucket, block_off) + new_offset; in ocfs2_find_xe_in_bucket()
3807 int low_bucket = 0, bucket, high_bucket; in ocfs2_xattr_bucket_find() local
3830 bucket = (low_bucket + high_bucket) / 2; in ocfs2_xattr_bucket_find()
3831 blkno = p_blkno + bucket * blk_per_bucket; in ocfs2_xattr_bucket_find()
3841 high_bucket = bucket - 1; in ocfs2_xattr_bucket_find()
3859 low_bucket = bucket + 1; in ocfs2_xattr_bucket_find()
3883 ret = ocfs2_read_xattr_bucket(xs->bucket, lower_blkno); in ocfs2_xattr_bucket_find()
3889 xs->header = bucket_xh(xs->bucket); in ocfs2_xattr_bucket_find()
3890 xs->base = bucket_block(xs->bucket, 0); in ocfs2_xattr_bucket_find()
3897 (unsigned long long)bucket_blkno(xs->bucket), in ocfs2_xattr_bucket_find()
3960 struct ocfs2_xattr_bucket *bucket; in ocfs2_iterate_xattr_buckets() local
3962 bucket = ocfs2_xattr_bucket_new(inode); in ocfs2_iterate_xattr_buckets()
3963 if (!bucket) { in ocfs2_iterate_xattr_buckets()
3972 for (i = 0; i < num_buckets; i++, blkno += bucket->bu_blocks) { in ocfs2_iterate_xattr_buckets()
3973 ret = ocfs2_read_xattr_bucket(bucket, blkno); in ocfs2_iterate_xattr_buckets()
3984 num_buckets = le16_to_cpu(bucket_xh(bucket)->xh_num_buckets); in ocfs2_iterate_xattr_buckets()
3987 le32_to_cpu(bucket_xh(bucket)->xh_entries[0].xe_name_hash)); in ocfs2_iterate_xattr_buckets()
3989 ret = func(inode, bucket, para); in ocfs2_iterate_xattr_buckets()
3995 ocfs2_xattr_bucket_relse(bucket); in ocfs2_iterate_xattr_buckets()
4000 ocfs2_xattr_bucket_free(bucket); in ocfs2_iterate_xattr_buckets()
4030 struct ocfs2_xattr_bucket *bucket, in ocfs2_list_xattr_bucket() argument
4038 for (i = 0 ; i < le16_to_cpu(bucket_xh(bucket)->xh_count); i++) { in ocfs2_list_xattr_bucket()
4039 struct ocfs2_xattr_entry *entry = &bucket_xh(bucket)->xh_entries[i]; in ocfs2_list_xattr_bucket()
4045 bucket_xh(bucket), in ocfs2_list_xattr_bucket()
4052 name = (const char *)bucket_block(bucket, block_off) + in ocfs2_list_xattr_bucket()
4172 struct ocfs2_xattr_bucket *bucket) in ocfs2_cp_xattr_block_to_bucket() argument
4181 struct ocfs2_xattr_header *xh = bucket_xh(bucket); in ocfs2_cp_xattr_block_to_bucket()
4184 char *target = bucket_block(bucket, blks - 1); in ocfs2_cp_xattr_block_to_bucket()
4188 (unsigned long long)bucket_blkno(bucket)); in ocfs2_cp_xattr_block_to_bucket()
4191 memset(bucket_block(bucket, i), 0, blocksize); in ocfs2_cp_xattr_block_to_bucket()
4213 target = bucket_block(bucket, 0); in ocfs2_cp_xattr_block_to_bucket()
4247 xs->header = bucket_xh(xs->bucket); in ocfs2_xattr_update_xattr_search()
4248 xs->base = bucket_block(xs->bucket, 0); in ocfs2_xattr_update_xattr_search()
4277 BUG_ON(!xs->bucket); in ocfs2_xattr_create_index_block()
4309 ret = ocfs2_init_xattr_bucket(xs->bucket, blkno, 1); in ocfs2_xattr_create_index_block()
4315 ret = ocfs2_xattr_bucket_journal_access(handle, xs->bucket, in ocfs2_xattr_create_index_block()
4322 ocfs2_cp_xattr_block_to_bucket(inode, xb_bh, xs->bucket); in ocfs2_xattr_create_index_block()
4323 ocfs2_xattr_bucket_journal_dirty(handle, xs->bucket); in ocfs2_xattr_create_index_block()
4373 struct ocfs2_xattr_bucket *bucket) in ocfs2_defrag_xattr_bucket() argument
4379 u64 blkno = bucket_blkno(bucket); in ocfs2_defrag_xattr_bucket()
4397 for (i = 0; i < bucket->bu_blocks; i++, buf += blocksize) in ocfs2_defrag_xattr_bucket()
4398 memcpy(buf, bucket_block(bucket, i), blocksize); in ocfs2_defrag_xattr_bucket()
4400 ret = ocfs2_xattr_bucket_journal_access(handle, bucket, in ocfs2_defrag_xattr_bucket()
4467 for (i = 0; i < bucket->bu_blocks; i++, buf += blocksize) in ocfs2_defrag_xattr_bucket()
4468 memcpy(bucket_block(bucket, i), buf, blocksize); in ocfs2_defrag_xattr_bucket()
4469 ocfs2_xattr_bucket_journal_dirty(handle, bucket); in ocfs2_defrag_xattr_bucket()
5341 struct ocfs2_xattr_bucket *bucket, in ocfs2_xattr_bucket_value_truncate() argument
5349 struct ocfs2_xattr_header *xh = bucket_xh(bucket); in ocfs2_xattr_bucket_value_truncate()
5367 vb.vb_bh = bucket->bu_bhs[value_blk]; in ocfs2_xattr_bucket_value_truncate()
5381 (unsigned long long)bucket_blkno(bucket), xe_off, len); in ocfs2_xattr_bucket_value_truncate()
5388 ret = ocfs2_xattr_bucket_journal_access(ctxt->handle, bucket, in ocfs2_xattr_bucket_value_truncate()
5397 ocfs2_xattr_bucket_journal_dirty(ctxt->handle, bucket); in ocfs2_xattr_bucket_value_truncate()
5505 struct ocfs2_xattr_bucket *bucket, in ocfs2_check_xattr_bucket_collision() argument
5508 struct ocfs2_xattr_header *xh = bucket_xh(bucket); in ocfs2_check_xattr_bucket_collision()
5518 (unsigned long long)bucket_blkno(bucket), in ocfs2_check_xattr_bucket_collision()
5540 ocfs2_init_xattr_bucket_xa_loc(&loc, xs->bucket, in ocfs2_xattr_set_entry_bucket()
5554 xs->bucket); in ocfs2_xattr_set_entry_bucket()
5599 xs->bucket, in ocfs2_xattr_set_entry_index_block()
5608 xs->bucket, in ocfs2_xattr_set_entry_index_block()
5622 ocfs2_xattr_bucket_relse(xs->bucket); in ocfs2_xattr_set_entry_index_block()
5640 struct ocfs2_xattr_bucket *bucket, in ocfs2_delete_xattr_in_bucket() argument
5644 struct ocfs2_xattr_header *xh = bucket_xh(bucket); in ocfs2_delete_xattr_in_bucket()
5662 ret = ocfs2_get_xattr_tree_value_root(inode->i_sb, bucket, in ocfs2_delete_xattr_in_bucket()
5682 ret = ocfs2_xattr_bucket_value_truncate(inode, bucket, in ocfs2_delete_xattr_in_bucket()
5716 struct ocfs2_xattr_bucket *bucket = in ocfs2_xattr_bucket_post_refcount() local
5719 ret = ocfs2_xattr_bucket_journal_access(handle, bucket, in ocfs2_xattr_bucket_post_refcount()
5726 ocfs2_xattr_bucket_journal_dirty(handle, bucket); in ocfs2_xattr_bucket_post_refcount()
5762 struct ocfs2_xattr_bucket *bucket = NULL; in ocfs2_prepare_refcount_xattr() local
5785 bucket_xh(xbs->bucket), in ocfs2_prepare_refcount_xattr()
5792 base = bucket_block(xbs->bucket, block_off); in ocfs2_prepare_refcount_xattr()
5793 vb.vb_bh = xbs->bucket->bu_bhs[block_off]; in ocfs2_prepare_refcount_xattr()
5798 bucket = xbs->bucket; in ocfs2_prepare_refcount_xattr()
5799 refcount.credits = bucket->bu_blocks; in ocfs2_prepare_refcount_xattr()
5800 refcount.para = bucket; in ocfs2_prepare_refcount_xattr()
5987 struct ocfs2_xattr_bucket *bucket, in ocfs2_get_xattr_tree_value_root() argument
5993 struct ocfs2_xattr_header *xh = bucket_xh(bucket); in ocfs2_get_xattr_tree_value_root()
5998 bucket_xh(bucket), in ocfs2_get_xattr_tree_value_root()
6007 base = bucket_block(bucket, block_off); in ocfs2_get_xattr_tree_value_root()
6013 *bh = bucket->bu_bhs[block_off]; in ocfs2_get_xattr_tree_value_root()
6023 struct ocfs2_xattr_bucket *bucket, in ocfs2_xattr_bucket_value_refcount() argument
6031 (struct ocfs2_xattr_header *)bucket->bu_bhs[0]->b_data; in ocfs2_xattr_bucket_value_refcount()
6037 .credits = bucket->bu_blocks, in ocfs2_xattr_bucket_value_refcount()
6038 .para = bucket, in ocfs2_xattr_bucket_value_refcount()
6048 (unsigned long long)bucket_blkno(bucket), in ocfs2_xattr_bucket_value_refcount()
6056 ret = ocfs2_get_xattr_tree_value_root(inode->i_sb, bucket, i, in ocfs2_xattr_bucket_value_refcount()
6678 struct ocfs2_xattr_bucket *bucket; in ocfs2_get_reflink_xattr_value_root() local
6681 bucket = args->old_bucket; in ocfs2_get_reflink_xattr_value_root()
6683 bucket = args->new_bucket; in ocfs2_get_reflink_xattr_value_root()
6685 return ocfs2_get_xattr_tree_value_root(sb, bucket, offset, in ocfs2_get_reflink_xattr_value_root()
6703 struct ocfs2_xattr_bucket *bucket = in ocfs2_value_tree_metas_in_bucket() local
6706 return ocfs2_get_xattr_tree_value_root(sb, bucket, offset, in ocfs2_value_tree_metas_in_bucket()
6711 struct ocfs2_xattr_bucket *bucket, in ocfs2_calc_value_tree_metas() argument
6717 (struct ocfs2_xattr_header *)bucket->bu_bhs[0]->b_data; in ocfs2_calc_value_tree_metas()
6720 metas->credits += bucket->bu_blocks; in ocfs2_calc_value_tree_metas()
6721 return ocfs2_value_metas_in_xattr_header(inode->i_sb, bucket->bu_bhs[0], in ocfs2_calc_value_tree_metas()
6725 bucket); in ocfs2_calc_value_tree_metas()