diff options
author | Joel Becker <joel.becker@oracle.com> | 2009-02-13 06:54:22 -0500 |
---|---|---|
committer | Joel Becker <joel.becker@oracle.com> | 2009-09-04 19:08:13 -0400 |
commit | 5e404e9ed1b05cafb044bd46792e50197df805ed (patch) | |
tree | e3146e03f8a0fc12307db0cbea900728a36ffaac /fs/ocfs2/dir.c | |
parent | a1cf076ba93f9fdf3eb4195f9f43d1e7cb7550f2 (diff) |
ocfs2: Pass ocfs2_caching_info into ocfs_init_*_extent_tree().
With this commit, extent tree operations are divorced from inodes and
rely on ocfs2_caching_info. Phew!
Signed-off-by: Joel Becker <joel.becker@oracle.com>
Diffstat (limited to 'fs/ocfs2/dir.c')
-rw-r--r-- | fs/ocfs2/dir.c | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/fs/ocfs2/dir.c b/fs/ocfs2/dir.c index de490a6d76ba..28c3ec238796 100644 --- a/fs/ocfs2/dir.c +++ b/fs/ocfs2/dir.c | |||
@@ -2903,7 +2903,7 @@ static int ocfs2_expand_inline_dir(struct inode *dir, struct buffer_head *di_bh, | |||
2903 | struct ocfs2_extent_tree dx_et; | 2903 | struct ocfs2_extent_tree dx_et; |
2904 | int did_quota = 0, bytes_allocated = 0; | 2904 | int did_quota = 0, bytes_allocated = 0; |
2905 | 2905 | ||
2906 | ocfs2_init_dinode_extent_tree(&et, dir, di_bh); | 2906 | ocfs2_init_dinode_extent_tree(&et, INODE_CACHE(dir), di_bh); |
2907 | 2907 | ||
2908 | alloc = ocfs2_clusters_for_bytes(sb, bytes); | 2908 | alloc = ocfs2_clusters_for_bytes(sb, bytes); |
2909 | dx_alloc = 0; | 2909 | dx_alloc = 0; |
@@ -3125,7 +3125,9 @@ static int ocfs2_expand_inline_dir(struct inode *dir, struct buffer_head *di_bh, | |||
3125 | ocfs2_dx_dir_index_root_block(dir, dx_root_bh, | 3125 | ocfs2_dx_dir_index_root_block(dir, dx_root_bh, |
3126 | dirdata_bh); | 3126 | dirdata_bh); |
3127 | } else { | 3127 | } else { |
3128 | ocfs2_init_dx_root_extent_tree(&dx_et, dir, dx_root_bh); | 3128 | ocfs2_init_dx_root_extent_tree(&dx_et, |
3129 | INODE_CACHE(dir), | ||
3130 | dx_root_bh); | ||
3129 | ret = ocfs2_insert_extent(handle, &dx_et, 0, | 3131 | ret = ocfs2_insert_extent(handle, &dx_et, 0, |
3130 | dx_insert_blkno, 1, 0, NULL); | 3132 | dx_insert_blkno, 1, 0, NULL); |
3131 | if (ret) | 3133 | if (ret) |
@@ -3345,7 +3347,8 @@ static int ocfs2_extend_dir(struct ocfs2_super *osb, | |||
3345 | spin_lock(&OCFS2_I(dir)->ip_lock); | 3347 | spin_lock(&OCFS2_I(dir)->ip_lock); |
3346 | if (dir_i_size == ocfs2_clusters_to_bytes(sb, OCFS2_I(dir)->ip_clusters)) { | 3348 | if (dir_i_size == ocfs2_clusters_to_bytes(sb, OCFS2_I(dir)->ip_clusters)) { |
3347 | spin_unlock(&OCFS2_I(dir)->ip_lock); | 3349 | spin_unlock(&OCFS2_I(dir)->ip_lock); |
3348 | ocfs2_init_dinode_extent_tree(&et, dir, parent_fe_bh); | 3350 | ocfs2_init_dinode_extent_tree(&et, INODE_CACHE(dir), |
3351 | parent_fe_bh); | ||
3349 | num_free_extents = ocfs2_num_free_extents(osb, &et); | 3352 | num_free_extents = ocfs2_num_free_extents(osb, &et); |
3350 | if (num_free_extents < 0) { | 3353 | if (num_free_extents < 0) { |
3351 | status = num_free_extents; | 3354 | status = num_free_extents; |
@@ -3837,7 +3840,7 @@ static int ocfs2_dx_dir_rebalance(struct ocfs2_super *osb, struct inode *dir, | |||
3837 | (unsigned long long)OCFS2_I(dir)->ip_blkno, | 3840 | (unsigned long long)OCFS2_I(dir)->ip_blkno, |
3838 | (unsigned long long)leaf_blkno, insert_hash); | 3841 | (unsigned long long)leaf_blkno, insert_hash); |
3839 | 3842 | ||
3840 | ocfs2_init_dx_root_extent_tree(&et, dir, dx_root_bh); | 3843 | ocfs2_init_dx_root_extent_tree(&et, INODE_CACHE(dir), dx_root_bh); |
3841 | 3844 | ||
3842 | dx_root = (struct ocfs2_dx_root_block *)dx_root_bh->b_data; | 3845 | dx_root = (struct ocfs2_dx_root_block *)dx_root_bh->b_data; |
3843 | /* | 3846 | /* |
@@ -4216,7 +4219,7 @@ static int ocfs2_expand_inline_dx_root(struct inode *dir, | |||
4216 | 4219 | ||
4217 | /* This should never fail considering we start with an empty | 4220 | /* This should never fail considering we start with an empty |
4218 | * dx_root. */ | 4221 | * dx_root. */ |
4219 | ocfs2_init_dx_root_extent_tree(&et, dir, dx_root_bh); | 4222 | ocfs2_init_dx_root_extent_tree(&et, INODE_CACHE(dir), dx_root_bh); |
4220 | ret = ocfs2_insert_extent(handle, &et, 0, insert_blkno, 1, 0, NULL); | 4223 | ret = ocfs2_insert_extent(handle, &et, 0, insert_blkno, 1, 0, NULL); |
4221 | if (ret) | 4224 | if (ret) |
4222 | mlog_errno(ret); | 4225 | mlog_errno(ret); |
@@ -4540,7 +4543,7 @@ int ocfs2_dx_dir_truncate(struct inode *dir, struct buffer_head *di_bh) | |||
4540 | if (ocfs2_dx_root_inline(dx_root)) | 4543 | if (ocfs2_dx_root_inline(dx_root)) |
4541 | goto remove_index; | 4544 | goto remove_index; |
4542 | 4545 | ||
4543 | ocfs2_init_dx_root_extent_tree(&et, dir, dx_root_bh); | 4546 | ocfs2_init_dx_root_extent_tree(&et, INODE_CACHE(dir), dx_root_bh); |
4544 | 4547 | ||
4545 | /* XXX: What if dr_clusters is too large? */ | 4548 | /* XXX: What if dr_clusters is too large? */ |
4546 | while (le32_to_cpu(dx_root->dr_clusters)) { | 4549 | while (le32_to_cpu(dx_root->dr_clusters)) { |