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()
1206 xs->bucket = ocfs2_xattr_bucket_new(inode); in ocfs2_xattr_block_get()
1207 if (!xs->bucket) { in ocfs2_xattr_block_get()
1237 bucket_xh(xs->bucket), in ocfs2_xattr_block_get()
1245 xs->base = bucket_block(xs->bucket, block_off); in ocfs2_xattr_block_get()
1263 ocfs2_xattr_bucket_free(xs->bucket); in ocfs2_xattr_block_get()
1696 struct ocfs2_xattr_bucket *bucket = loc->xl_storage; in ocfs2_xa_bucket_journal_access() local
1698 return ocfs2_xattr_bucket_journal_access(handle, bucket, type); in ocfs2_xa_bucket_journal_access()
1704 struct ocfs2_xattr_bucket *bucket = loc->xl_storage; in ocfs2_xa_bucket_journal_dirty() local
1706 ocfs2_xattr_bucket_journal_dirty(handle, bucket); in ocfs2_xa_bucket_journal_dirty()
1712 struct ocfs2_xattr_bucket *bucket = loc->xl_storage; in ocfs2_xa_bucket_offset_pointer() local
1719 return bucket_block(bucket, block) + block_offset; in ocfs2_xa_bucket_offset_pointer()
1731 struct ocfs2_xattr_bucket *bucket = loc->xl_storage; in ocfs2_xa_bucket_get_free_start() local
1732 return le16_to_cpu(bucket_xh(bucket)->xh_free_start); in ocfs2_xa_bucket_get_free_start()
1853 struct ocfs2_xattr_bucket *bucket = loc->xl_storage; in ocfs2_xa_bucket_fill_value_buf() local
1863 BUG_ON(!bucket->bu_bhs[block_offset]); in ocfs2_xa_bucket_fill_value_buf()
1866 vb->vb_bh = bucket->bu_bhs[block_offset]; in ocfs2_xa_bucket_fill_value_buf()
2295 struct ocfs2_xattr_bucket *bucket, in ocfs2_init_xattr_bucket_xa_loc() argument
2298 loc->xl_inode = bucket->bu_inode; in ocfs2_init_xattr_bucket_xa_loc()
2300 loc->xl_storage = bucket; in ocfs2_init_xattr_bucket_xa_loc()
2301 loc->xl_header = bucket_xh(bucket); in ocfs2_init_xattr_bucket_xa_loc()
3083 bucket_xh(xbs->bucket), in ocfs2_calc_xattr_set_need()
3086 base = bucket_block(xbs->bucket, block_off); in ocfs2_calc_xattr_set_need()
3478 xbs.bucket = ocfs2_xattr_bucket_new(inode); in ocfs2_xattr_set_handle()
3479 if (!xbs.bucket) { in ocfs2_xattr_set_handle()
3504 ocfs2_xattr_bucket_free(xbs.bucket); in ocfs2_xattr_set_handle()
3554 xbs.bucket = ocfs2_xattr_bucket_new(inode); in ocfs2_xattr_set()
3555 if (!xbs.bucket) { in ocfs2_xattr_set()
3662 ocfs2_xattr_bucket_free(xbs.bucket); in ocfs2_xattr_set()
3734 struct ocfs2_xattr_bucket *bucket,
3738 struct ocfs2_xattr_bucket *bucket, in ocfs2_find_xe_in_bucket() argument
3746 struct ocfs2_xattr_header *xh = bucket_xh(bucket); in ocfs2_find_xe_in_bucket()
3780 xe_name = bucket_block(bucket, block_off) + new_offset; in ocfs2_find_xe_in_bucket()
3815 int low_bucket = 0, bucket, high_bucket; in ocfs2_xattr_bucket_find() local
3838 bucket = (low_bucket + high_bucket) / 2; in ocfs2_xattr_bucket_find()
3839 blkno = p_blkno + bucket * blk_per_bucket; in ocfs2_xattr_bucket_find()
3849 high_bucket = bucket - 1; in ocfs2_xattr_bucket_find()
3867 low_bucket = bucket + 1; in ocfs2_xattr_bucket_find()
3891 ret = ocfs2_read_xattr_bucket(xs->bucket, lower_blkno); in ocfs2_xattr_bucket_find()
3897 xs->header = bucket_xh(xs->bucket); in ocfs2_xattr_bucket_find()
3898 xs->base = bucket_block(xs->bucket, 0); in ocfs2_xattr_bucket_find()
3905 (unsigned long long)bucket_blkno(xs->bucket), in ocfs2_xattr_bucket_find()
3968 struct ocfs2_xattr_bucket *bucket; in ocfs2_iterate_xattr_buckets() local
3970 bucket = ocfs2_xattr_bucket_new(inode); in ocfs2_iterate_xattr_buckets()
3971 if (!bucket) { in ocfs2_iterate_xattr_buckets()
3980 for (i = 0; i < num_buckets; i++, blkno += bucket->bu_blocks) { in ocfs2_iterate_xattr_buckets()
3981 ret = ocfs2_read_xattr_bucket(bucket, blkno); in ocfs2_iterate_xattr_buckets()
3992 num_buckets = le16_to_cpu(bucket_xh(bucket)->xh_num_buckets); in ocfs2_iterate_xattr_buckets()
3995 le32_to_cpu(bucket_xh(bucket)->xh_entries[0].xe_name_hash)); in ocfs2_iterate_xattr_buckets()
3997 ret = func(inode, bucket, para); in ocfs2_iterate_xattr_buckets()
4003 ocfs2_xattr_bucket_relse(bucket); in ocfs2_iterate_xattr_buckets()
4008 ocfs2_xattr_bucket_free(bucket); in ocfs2_iterate_xattr_buckets()
4038 struct ocfs2_xattr_bucket *bucket, in ocfs2_list_xattr_bucket() argument
4046 for (i = 0 ; i < le16_to_cpu(bucket_xh(bucket)->xh_count); i++) { in ocfs2_list_xattr_bucket()
4047 struct ocfs2_xattr_entry *entry = &bucket_xh(bucket)->xh_entries[i]; in ocfs2_list_xattr_bucket()
4053 bucket_xh(bucket), in ocfs2_list_xattr_bucket()
4060 name = (const char *)bucket_block(bucket, block_off) + in ocfs2_list_xattr_bucket()
4180 struct ocfs2_xattr_bucket *bucket) in ocfs2_cp_xattr_block_to_bucket() argument
4189 struct ocfs2_xattr_header *xh = bucket_xh(bucket); in ocfs2_cp_xattr_block_to_bucket()
4192 char *target = bucket_block(bucket, blks - 1); in ocfs2_cp_xattr_block_to_bucket()
4196 (unsigned long long)bucket_blkno(bucket)); in ocfs2_cp_xattr_block_to_bucket()
4199 memset(bucket_block(bucket, i), 0, blocksize); in ocfs2_cp_xattr_block_to_bucket()
4221 target = bucket_block(bucket, 0); in ocfs2_cp_xattr_block_to_bucket()
4255 xs->header = bucket_xh(xs->bucket); in ocfs2_xattr_update_xattr_search()
4256 xs->base = bucket_block(xs->bucket, 0); in ocfs2_xattr_update_xattr_search()
4285 BUG_ON(!xs->bucket); in ocfs2_xattr_create_index_block()
4317 ret = ocfs2_init_xattr_bucket(xs->bucket, blkno, 1); in ocfs2_xattr_create_index_block()
4323 ret = ocfs2_xattr_bucket_journal_access(handle, xs->bucket, in ocfs2_xattr_create_index_block()
4330 ocfs2_cp_xattr_block_to_bucket(inode, xb_bh, xs->bucket); in ocfs2_xattr_create_index_block()
4331 ocfs2_xattr_bucket_journal_dirty(handle, xs->bucket); in ocfs2_xattr_create_index_block()
4381 struct ocfs2_xattr_bucket *bucket) in ocfs2_defrag_xattr_bucket() argument
4387 u64 blkno = bucket_blkno(bucket); in ocfs2_defrag_xattr_bucket()
4405 for (i = 0; i < bucket->bu_blocks; i++, buf += blocksize) in ocfs2_defrag_xattr_bucket()
4406 memcpy(buf, bucket_block(bucket, i), blocksize); in ocfs2_defrag_xattr_bucket()
4408 ret = ocfs2_xattr_bucket_journal_access(handle, bucket, in ocfs2_defrag_xattr_bucket()
4475 for (i = 0; i < bucket->bu_blocks; i++, buf += blocksize) in ocfs2_defrag_xattr_bucket()
4476 memcpy(bucket_block(bucket, i), buf, blocksize); in ocfs2_defrag_xattr_bucket()
4477 ocfs2_xattr_bucket_journal_dirty(handle, bucket); in ocfs2_defrag_xattr_bucket()
5349 struct ocfs2_xattr_bucket *bucket, in ocfs2_xattr_bucket_value_truncate() argument
5357 struct ocfs2_xattr_header *xh = bucket_xh(bucket); in ocfs2_xattr_bucket_value_truncate()
5375 vb.vb_bh = bucket->bu_bhs[value_blk]; in ocfs2_xattr_bucket_value_truncate()
5389 (unsigned long long)bucket_blkno(bucket), xe_off, len); in ocfs2_xattr_bucket_value_truncate()
5396 ret = ocfs2_xattr_bucket_journal_access(ctxt->handle, bucket, in ocfs2_xattr_bucket_value_truncate()
5405 ocfs2_xattr_bucket_journal_dirty(ctxt->handle, bucket); in ocfs2_xattr_bucket_value_truncate()
5513 struct ocfs2_xattr_bucket *bucket, in ocfs2_check_xattr_bucket_collision() argument
5516 struct ocfs2_xattr_header *xh = bucket_xh(bucket); in ocfs2_check_xattr_bucket_collision()
5526 (unsigned long long)bucket_blkno(bucket), in ocfs2_check_xattr_bucket_collision()
5548 ocfs2_init_xattr_bucket_xa_loc(&loc, xs->bucket, in ocfs2_xattr_set_entry_bucket()
5562 xs->bucket); in ocfs2_xattr_set_entry_bucket()
5607 xs->bucket, in ocfs2_xattr_set_entry_index_block()
5616 xs->bucket, in ocfs2_xattr_set_entry_index_block()
5630 ocfs2_xattr_bucket_relse(xs->bucket); in ocfs2_xattr_set_entry_index_block()
5648 struct ocfs2_xattr_bucket *bucket, in ocfs2_delete_xattr_in_bucket() argument
5652 struct ocfs2_xattr_header *xh = bucket_xh(bucket); in ocfs2_delete_xattr_in_bucket()
5670 ret = ocfs2_get_xattr_tree_value_root(inode->i_sb, bucket, in ocfs2_delete_xattr_in_bucket()
5690 ret = ocfs2_xattr_bucket_value_truncate(inode, bucket, in ocfs2_delete_xattr_in_bucket()
5724 struct ocfs2_xattr_bucket *bucket = in ocfs2_xattr_bucket_post_refcount() local
5727 ret = ocfs2_xattr_bucket_journal_access(handle, bucket, in ocfs2_xattr_bucket_post_refcount()
5734 ocfs2_xattr_bucket_journal_dirty(handle, bucket); in ocfs2_xattr_bucket_post_refcount()
5770 struct ocfs2_xattr_bucket *bucket = NULL; in ocfs2_prepare_refcount_xattr() local
5793 bucket_xh(xbs->bucket), in ocfs2_prepare_refcount_xattr()
5800 base = bucket_block(xbs->bucket, block_off); in ocfs2_prepare_refcount_xattr()
5801 vb.vb_bh = xbs->bucket->bu_bhs[block_off]; in ocfs2_prepare_refcount_xattr()
5806 bucket = xbs->bucket; in ocfs2_prepare_refcount_xattr()
5807 refcount.credits = bucket->bu_blocks; in ocfs2_prepare_refcount_xattr()
5808 refcount.para = bucket; in ocfs2_prepare_refcount_xattr()
5995 struct ocfs2_xattr_bucket *bucket, in ocfs2_get_xattr_tree_value_root() argument
6001 struct ocfs2_xattr_header *xh = bucket_xh(bucket); in ocfs2_get_xattr_tree_value_root()
6006 bucket_xh(bucket), in ocfs2_get_xattr_tree_value_root()
6015 base = bucket_block(bucket, block_off); in ocfs2_get_xattr_tree_value_root()
6021 *bh = bucket->bu_bhs[block_off]; in ocfs2_get_xattr_tree_value_root()
6031 struct ocfs2_xattr_bucket *bucket, in ocfs2_xattr_bucket_value_refcount() argument
6039 (struct ocfs2_xattr_header *)bucket->bu_bhs[0]->b_data; in ocfs2_xattr_bucket_value_refcount()
6045 .credits = bucket->bu_blocks, in ocfs2_xattr_bucket_value_refcount()
6046 .para = bucket, in ocfs2_xattr_bucket_value_refcount()
6056 (unsigned long long)bucket_blkno(bucket), in ocfs2_xattr_bucket_value_refcount()
6064 ret = ocfs2_get_xattr_tree_value_root(inode->i_sb, bucket, i, in ocfs2_xattr_bucket_value_refcount()
6686 struct ocfs2_xattr_bucket *bucket; in ocfs2_get_reflink_xattr_value_root() local
6689 bucket = args->old_bucket; in ocfs2_get_reflink_xattr_value_root()
6691 bucket = args->new_bucket; in ocfs2_get_reflink_xattr_value_root()
6693 return ocfs2_get_xattr_tree_value_root(sb, bucket, offset, in ocfs2_get_reflink_xattr_value_root()
6711 struct ocfs2_xattr_bucket *bucket = in ocfs2_value_tree_metas_in_bucket() local
6714 return ocfs2_get_xattr_tree_value_root(sb, bucket, offset, in ocfs2_value_tree_metas_in_bucket()
6719 struct ocfs2_xattr_bucket *bucket, in ocfs2_calc_value_tree_metas() argument
6725 (struct ocfs2_xattr_header *)bucket->bu_bhs[0]->b_data; in ocfs2_calc_value_tree_metas()
6728 metas->credits += bucket->bu_blocks; in ocfs2_calc_value_tree_metas()
6729 return ocfs2_value_metas_in_xattr_header(inode->i_sb, bucket->bu_bhs[0], in ocfs2_calc_value_tree_metas()
6733 bucket); in ocfs2_calc_value_tree_metas()