diff options
author | Tao Ma <tao.ma@oracle.com> | 2008-08-18 05:38:43 -0400 |
---|---|---|
committer | Mark Fasheh <mfasheh@suse.com> | 2008-10-13 16:57:58 -0400 |
commit | 811f933df1e55615fd0bb4818f31e3868a8e6e23 (patch) | |
tree | 53335e59bdff02d7ddb3a2ec15d36239fe50003d /fs/ocfs2/dir.c | |
parent | 231b87d10920e024efaf0f9e86e1bab7bced1620 (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.c | 5 |
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; |