On Thu, Sep 09, 2010 at 09:35:20AM +0800, tristan wrote: > Mark Fasheh wrote: > > On Wed, Sep 08, 2010 at 05:12:38PM +0800, Tristan Ye wrote: > >> In ocfs2_dx_dir_rebalance(), we need to rejournal_acess the blocks after > >> calling ocfs2_insert_extent() since growing an extent tree may trigger > >> ocfs2_extend_trans(), which makes previous journal_access meaningless. > >> > >> Signed-off-by: Tristan Ye <[email protected]> > >> --- > >> fs/ocfs2/dir.c | 24 ++++++++++++++++-------- > >> 1 files changed, 16 insertions(+), 8 deletions(-) > >> > >> diff --git a/fs/ocfs2/dir.c b/fs/ocfs2/dir.c > >> index f04ebcf..c49f6de 100644 > >> --- a/fs/ocfs2/dir.c > >> +++ b/fs/ocfs2/dir.c > >> @@ -3931,6 +3931,15 @@ static int ocfs2_dx_dir_rebalance(struct > >> ocfs2_super *osb, struct inode *dir, > >> goto out_commit; > >> } > >> > >> + cpos = split_hash; > >> + ret = ocfs2_dx_dir_new_cluster(dir, &et, cpos, handle, > >> + data_ac, meta_ac, new_dx_leaves, > >> + num_dx_leaves); > >> + if (ret) { > >> + mlog_errno(ret); > >> + goto out_commit; > >> + } > >> + > >> for (i = 0; i < num_dx_leaves; i++) { > >> ret = ocfs2_journal_access_dl(handle, INODE_CACHE(dir), > >> orig_dx_leaves[i], > > > > Ok, I see what you're going for here. Don't we still need to add a > > journal_access_dl call against new_dx_leaves[i] in the for loop though? They > > will be dirtied again in ocfs2_dx_dir_transfer_leaf. > > Didn't I? > > This patch already had the codes calling the journal_access_dl against > new_dx_leaves. > > Look at the second portion of this patch, that is it.
Ahh yes, you are correct. Sorry about that, not sure how I missed it. Anyway, you can add my ack: Acked-by: Mark Fasheh <[email protected]> The patch looks good to me. --Mark -- Mark Fasheh _______________________________________________ Ocfs2-devel mailing list [email protected] http://oss.oracle.com/mailman/listinfo/ocfs2-devel
