aboutsummaryrefslogtreecommitdiffstats
path: root/fs/ocfs2/dir.c
diff options
context:
space:
mode:
authorTao Ma <tao.ma@oracle.com>2008-08-18 05:38:43 -0400
committerMark Fasheh <mfasheh@suse.com>2008-10-13 16:57:58 -0400
commit811f933df1e55615fd0bb4818f31e3868a8e6e23 (patch)
tree53335e59bdff02d7ddb3a2ec15d36239fe50003d /fs/ocfs2/dir.c
parent231b87d10920e024efaf0f9e86e1bab7bced1620 (diff)
ocfs2: Use ocfs2_extent_list instead of ocfs2_dinode.
ocfs2_extend_meta_needed(), ocfs2_calc_extend_credits() and ocfs2_reserve_new_metadata() are all useful for extent tree operations. But they are all limited to an inode btree because they use a struct ocfs2_dinode parameter. Change their parameter to struct ocfs2_extent_list (the part of an ocfs2_dinode they actually use) so that the xattr btree code can use these functions. Signed-off-by: Tao Ma <tao.ma@oracle.com> Signed-off-by: Mark Fasheh <mfasheh@suse.com>
Diffstat (limited to 'fs/ocfs2/dir.c')
-rw-r--r--fs/ocfs2/dir.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/fs/ocfs2/dir.c b/fs/ocfs2/dir.c
index fda09c32a5f2..126aa219c0c1 100644
--- a/fs/ocfs2/dir.c
+++ b/fs/ocfs2/dir.c
@@ -1430,6 +1430,7 @@ static int ocfs2_extend_dir(struct ocfs2_super *osb,
1430 int credits, num_free_extents, drop_alloc_sem = 0; 1430 int credits, num_free_extents, drop_alloc_sem = 0;
1431 loff_t dir_i_size; 1431 loff_t dir_i_size;
1432 struct ocfs2_dinode *fe = (struct ocfs2_dinode *) parent_fe_bh->b_data; 1432 struct ocfs2_dinode *fe = (struct ocfs2_dinode *) parent_fe_bh->b_data;
1433 struct ocfs2_extent_list *el = &fe->id2.i_list;
1433 struct ocfs2_alloc_context *data_ac = NULL; 1434 struct ocfs2_alloc_context *data_ac = NULL;
1434 struct ocfs2_alloc_context *meta_ac = NULL; 1435 struct ocfs2_alloc_context *meta_ac = NULL;
1435 handle_t *handle = NULL; 1436 handle_t *handle = NULL;
@@ -1488,7 +1489,7 @@ static int ocfs2_extend_dir(struct ocfs2_super *osb,
1488 } 1489 }
1489 1490
1490 if (!num_free_extents) { 1491 if (!num_free_extents) {
1491 status = ocfs2_reserve_new_metadata(osb, fe, &meta_ac); 1492 status = ocfs2_reserve_new_metadata(osb, el, &meta_ac);
1492 if (status < 0) { 1493 if (status < 0) {
1493 if (status != -ENOSPC) 1494 if (status != -ENOSPC)
1494 mlog_errno(status); 1495 mlog_errno(status);
@@ -1503,7 +1504,7 @@ static int ocfs2_extend_dir(struct ocfs2_super *osb,
1503 goto bail; 1504 goto bail;
1504 } 1505 }
1505 1506
1506 credits = ocfs2_calc_extend_credits(sb, fe, 1); 1507 credits = ocfs2_calc_extend_credits(sb, el, 1);
1507 } else { 1508 } else {
1508 spin_unlock(&OCFS2_I(dir)->ip_lock); 1509 spin_unlock(&OCFS2_I(dir)->ip_lock);
1509 credits = OCFS2_SIMPLE_DIR_EXTEND_CREDITS; 1510 credits = OCFS2_SIMPLE_DIR_EXTEND_CREDITS;