Lines Matching refs:osb
71 struct ocfs2_super *osb = OCFS2_SB(dir->i_sb); in ocfs2_supports_dir_trailer() local
76 return ocfs2_meta_ecc(osb) || ocfs2_dir_indexed(dir); in ocfs2_supports_dir_trailer()
89 struct ocfs2_super *osb = OCFS2_SB(dir->i_sb); in ocfs2_new_dir_wants_trailer() local
91 return ocfs2_meta_ecc(osb) || in ocfs2_new_dir_wants_trailer()
92 ocfs2_supports_indexed_dirs(osb); in ocfs2_new_dir_wants_trailer()
254 struct ocfs2_super *osb = OCFS2_SB(dir->i_sb); in ocfs2_dx_dir_name_hash() local
278 memcpy(buf, osb->osb_dx_seed, sizeof(buf)); in ocfs2_dx_dir_name_hash()
830 static inline unsigned int __ocfs2_dx_dir_hash_idx(struct ocfs2_super *osb, in __ocfs2_dx_dir_hash_idx() argument
833 return minor_hash & osb->osb_dx_mask; in __ocfs2_dx_dir_hash_idx()
836 static inline unsigned int ocfs2_dx_dir_hash_idx(struct ocfs2_super *osb, in ocfs2_dx_dir_hash_idx() argument
839 return __ocfs2_dx_dir_hash_idx(osb, hinfo->minor_hash); in ocfs2_dx_dir_hash_idx()
2179 static int ocfs2_fill_new_dir_id(struct ocfs2_super *osb, in ocfs2_fill_new_dir_id() argument
2212 static int ocfs2_fill_new_dir_el(struct ocfs2_super *osb, in ocfs2_fill_new_dir_el() argument
2221 unsigned int size = osb->sb->s_blocksize; in ocfs2_fill_new_dir_el()
2228 status = ocfs2_do_extend_dir(osb->sb, handle, inode, fe_bh, in ocfs2_fill_new_dir_el()
2243 memset(new_bh->b_data, 0, osb->sb->s_blocksize); in ocfs2_fill_new_dir_el()
2282 static int ocfs2_dx_dir_attach_index(struct ocfs2_super *osb, in ocfs2_dx_dir_attach_index() argument
2311 dx_root_bh = sb_getblk(osb->sb, dr_blkno); in ocfs2_dx_dir_attach_index()
2326 memset(dx_root, 0, osb->sb->s_blocksize); in ocfs2_dx_dir_attach_index()
2331 dx_root->dr_fs_generation = cpu_to_le32(osb->fs_generation); in ocfs2_dx_dir_attach_index()
2343 cpu_to_le16(ocfs2_dx_entries_per_root(osb->sb)); in ocfs2_dx_dir_attach_index()
2346 cpu_to_le16(ocfs2_extent_recs_per_dx_root(osb->sb)); in ocfs2_dx_dir_attach_index()
2374 static int ocfs2_dx_dir_format_cluster(struct ocfs2_super *osb, in ocfs2_dx_dir_format_cluster() argument
2384 bh = sb_getblk(osb->sb, start_blk + i); in ocfs2_dx_dir_format_cluster()
2402 memset(dx_leaf, 0, osb->sb->s_blocksize); in ocfs2_dx_dir_format_cluster()
2404 dx_leaf->dl_fs_generation = cpu_to_le32(osb->fs_generation); in ocfs2_dx_dir_format_cluster()
2407 cpu_to_le16(ocfs2_dx_entries_per_leaf(osb->sb)); in ocfs2_dx_dir_format_cluster()
2436 struct ocfs2_super *osb = OCFS2_SB(dir->i_sb); in __ocfs2_dx_dir_new_cluster() local
2454 phys_blkno = ocfs2_clusters_to_blocks(osb->sb, phys); in __ocfs2_dx_dir_new_cluster()
2455 ret = ocfs2_dx_dir_format_cluster(osb, handle, dir, dx_leaves, in __ocfs2_dx_dir_new_cluster()
2507 static int ocfs2_fill_new_dir_dx(struct ocfs2_super *osb, in ocfs2_fill_new_dir_dx() argument
2533 ret = ocfs2_fill_new_dir_el(osb, handle, parent, inode, di_bh, in ocfs2_fill_new_dir_dx()
2540 ret = ocfs2_dx_dir_attach_index(osb, handle, inode, di_bh, leaf_bh, in ocfs2_fill_new_dir_dx()
2562 int ocfs2_fill_new_dir(struct ocfs2_super *osb, in ocfs2_fill_new_dir() argument
2571 BUG_ON(!ocfs2_supports_inline_data(osb) && data_ac == NULL); in ocfs2_fill_new_dir()
2574 return ocfs2_fill_new_dir_id(osb, handle, parent, inode, fe_bh); in ocfs2_fill_new_dir()
2576 if (ocfs2_supports_indexed_dirs(osb)) in ocfs2_fill_new_dir()
2577 return ocfs2_fill_new_dir_dx(osb, handle, parent, inode, fe_bh, in ocfs2_fill_new_dir()
2580 return ocfs2_fill_new_dir_el(osb, handle, parent, inode, fe_bh, in ocfs2_fill_new_dir()
2775 struct ocfs2_super *osb = OCFS2_SB(dir->i_sb); in ocfs2_expand_inline_dir() local
2795 if (ocfs2_supports_indexed_dirs(osb)) { in ocfs2_expand_inline_dir()
2812 ret = ocfs2_reserve_new_metadata_blocks(osb, 1, &meta_ac); in ocfs2_expand_inline_dir()
2829 ret = ocfs2_reserve_clusters(osb, alloc + dx_alloc, &data_ac); in ocfs2_expand_inline_dir()
2842 handle = ocfs2_start_trans(osb, credits); in ocfs2_expand_inline_dir()
2850 ocfs2_clusters_to_bytes(osb->sb, alloc + dx_alloc)); in ocfs2_expand_inline_dir()
2855 if (ocfs2_supports_indexed_dirs(osb) && !dx_inline) { in ocfs2_expand_inline_dir()
2876 if (ocfs2_dir_resv_allowed(osb)) in ocfs2_expand_inline_dir()
2924 if (ocfs2_supports_indexed_dirs(osb) && !dx_inline) { in ocfs2_expand_inline_dir()
2991 if (ocfs2_supports_indexed_dirs(osb)) { in ocfs2_expand_inline_dir()
2992 ret = ocfs2_dx_dir_attach_index(osb, handle, dir, di_bh, in ocfs2_expand_inline_dir()
3038 if (ocfs2_supports_indexed_dirs(osb)) { in ocfs2_expand_inline_dir()
3046 off = ocfs2_dx_dir_hash_idx(osb, in ocfs2_expand_inline_dir()
3059 ocfs2_commit_trans(osb, handle); in ocfs2_expand_inline_dir()
3146 static int ocfs2_extend_dir(struct ocfs2_super *osb, in ocfs2_extend_dir() argument
3163 struct super_block *sb = osb->sb; in ocfs2_extend_dir()
3232 status = ocfs2_reserve_new_metadata(osb, el, &meta_ac); in ocfs2_extend_dir()
3240 status = ocfs2_reserve_clusters(osb, 1, &data_ac); in ocfs2_extend_dir()
3247 if (ocfs2_dir_resv_allowed(osb)) in ocfs2_extend_dir()
3261 handle = ocfs2_start_trans(osb, credits); in ocfs2_extend_dir()
3269 status = ocfs2_do_extend_dir(osb->sb, handle, dir, parent_fe_bh, in ocfs2_extend_dir()
3321 ocfs2_commit_trans(osb, handle); in ocfs2_extend_dir()
3670 static int ocfs2_dx_dir_rebalance_credits(struct ocfs2_super *osb, in ocfs2_dx_dir_rebalance_credits() argument
3673 int credits = ocfs2_clusters_to_blocks(osb->sb, 3); in ocfs2_dx_dir_rebalance_credits()
3675 credits += ocfs2_calc_extend_credits(osb->sb, &dx_root->dr_list); in ocfs2_dx_dir_rebalance_credits()
3676 credits += ocfs2_quota_trans_credits(osb->sb); in ocfs2_dx_dir_rebalance_credits()
3684 static int ocfs2_dx_dir_rebalance(struct ocfs2_super *osb, struct inode *dir, in ocfs2_dx_dir_rebalance() argument
3726 orig_dx_leaves = ocfs2_dx_dir_kmalloc_leaves(osb->sb, &num_dx_leaves); in ocfs2_dx_dir_rebalance()
3733 new_dx_leaves = ocfs2_dx_dir_kmalloc_leaves(osb->sb, NULL); in ocfs2_dx_dir_rebalance()
3747 credits = ocfs2_dx_dir_rebalance_credits(osb, dx_root); in ocfs2_dx_dir_rebalance()
3748 handle = ocfs2_start_trans(osb, credits); in ocfs2_dx_dir_rebalance()
3805 tmp_dx_leaf = kmalloc(osb->sb->s_blocksize, GFP_NOFS); in ocfs2_dx_dir_rebalance()
3856 ocfs2_commit_trans(osb, handle); in ocfs2_dx_dir_rebalance()
3879 static int ocfs2_find_dir_space_dx(struct ocfs2_super *osb, struct inode *dir, in ocfs2_find_dir_space_dx() argument
3924 ret = ocfs2_dx_dir_rebalance(osb, dir, dx_root_bh, dx_leaf_bh, in ocfs2_find_dir_space_dx()
4008 struct ocfs2_super *osb = OCFS2_SB(dir->i_sb); in ocfs2_expand_inline_dx_root() local
4015 ret = ocfs2_reserve_clusters(osb, 1, &data_ac); in ocfs2_expand_inline_dx_root()
4021 dx_leaves = ocfs2_dx_dir_kmalloc_leaves(osb->sb, &num_dx_leaves); in ocfs2_expand_inline_dx_root()
4028 handle = ocfs2_start_trans(osb, ocfs2_calc_dxi_expand_credits(osb->sb)); in ocfs2_expand_inline_dx_root()
4036 ocfs2_clusters_to_bytes(osb->sb, 1)); in ocfs2_expand_inline_dx_root()
4070 j = __ocfs2_dx_dir_hash_idx(osb, in ocfs2_expand_inline_dx_root()
4081 memset(&dx_root->dr_list, 0, osb->sb->s_blocksize - in ocfs2_expand_inline_dx_root()
4084 cpu_to_le16(ocfs2_extent_recs_per_dx_root(osb->sb)); in ocfs2_expand_inline_dx_root()
4102 ocfs2_commit_trans(osb, handle); in ocfs2_expand_inline_dx_root()
4138 struct ocfs2_super *osb = OCFS2_SB(dir->i_sb); in ocfs2_prepare_dx_dir_for_insert() local
4181 ret = ocfs2_find_dir_space_dx(osb, dir, di_bh, dx_root_bh, name, in ocfs2_prepare_dx_dir_for_insert()
4206 ret = ocfs2_extend_dir(osb, dir, di_bh, 1, lookup, &leaf_bh); in ocfs2_prepare_dx_dir_for_insert()
4233 int ocfs2_prepare_dir_for_insert(struct ocfs2_super *osb, in ocfs2_prepare_dir_for_insert() argument
4264 if (ocfs2_supports_indexed_dirs(osb)) in ocfs2_prepare_dir_for_insert()
4292 ret = ocfs2_extend_dir(osb, dir, parent_fe_bh, blocks_wanted, in ocfs2_prepare_dir_for_insert()
4315 struct ocfs2_super *osb = OCFS2_SB(dir->i_sb); in ocfs2_dx_dir_remove_index() local
4327 dx_alloc_inode = ocfs2_get_system_file_inode(osb, in ocfs2_dx_dir_remove_index()
4343 handle = ocfs2_start_trans(osb, OCFS2_DX_ROOT_REMOVE_CREDITS); in ocfs2_dx_dir_remove_index()
4378 ocfs2_commit_trans(osb, handle); in ocfs2_dx_dir_remove_index()
4397 struct ocfs2_super *osb = OCFS2_SB(dir->i_sb); in ocfs2_dx_dir_truncate() local
4454 ocfs2_schedule_truncate_log_flush(osb, 1); in ocfs2_dx_dir_truncate()
4455 ocfs2_run_deallocs(osb, &dealloc); in ocfs2_dx_dir_truncate()