Acked-by: Sunil Mushran <sunil.mush...@oracle.com> On 10/12/2011 12:22 AM, Wengang Wang wrote: > There are three cases found that in error cases, journal transactions are not > committed nor aborted. We should take care of these case by committing the > transactions. Otherwise, there would left a journal handle which will lead to > , in same process context, the comming ocfs2_start_trans() gets wrong credits. > > Signed-off-by: Wengang Wang<wen.gang.w...@oracle.com> > --- > fs/ocfs2/alloc.c | 2 +- > fs/ocfs2/ioctl.c | 3 ++- > fs/ocfs2/xattr.c | 10 ++++++---- > 3 files changed, 9 insertions(+), 6 deletions(-) > > diff --git a/fs/ocfs2/alloc.c b/fs/ocfs2/alloc.c > index ed553c6..3165aeb 100644 > --- a/fs/ocfs2/alloc.c > +++ b/fs/ocfs2/alloc.c > @@ -5699,7 +5699,7 @@ int ocfs2_remove_btree_range(struct inode *inode, > OCFS2_JOURNAL_ACCESS_WRITE); > if (ret) { > mlog_errno(ret); > - goto out; > + goto out_commit; > } > > dquot_free_space_nodirty(inode, > diff --git a/fs/ocfs2/ioctl.c b/fs/ocfs2/ioctl.c > index bc91072..5612c3d 100644 > --- a/fs/ocfs2/ioctl.c > +++ b/fs/ocfs2/ioctl.c > @@ -122,7 +122,7 @@ static int ocfs2_set_inode_attr(struct inode *inode, > unsigned flags, > if ((oldflags& OCFS2_IMMUTABLE_FL) || ((flags ^ oldflags)& > (OCFS2_APPEND_FL | OCFS2_IMMUTABLE_FL))) { > if (!capable(CAP_LINUX_IMMUTABLE)) > - goto bail_unlock; > + goto bail_commit; > } > > ocfs2_inode->ip_attr = flags; > @@ -132,6 +132,7 @@ static int ocfs2_set_inode_attr(struct inode *inode, > unsigned flags, > if (status< 0) > mlog_errno(status); > > +bail_commit: > ocfs2_commit_trans(osb, handle); > bail_unlock: > ocfs2_inode_unlock(inode, 1); > diff --git a/fs/ocfs2/xattr.c b/fs/ocfs2/xattr.c > index 81ecf9c..93d6c80 100644 > --- a/fs/ocfs2/xattr.c > +++ b/fs/ocfs2/xattr.c > @@ -2376,16 +2376,18 @@ static int ocfs2_remove_value_outside(struct > inode*inode, > } > > ret = ocfs2_xattr_value_truncate(inode, vb, 0,&ctxt); > - if (ret< 0) { > - mlog_errno(ret); > - break; > - } > > ocfs2_commit_trans(osb, ctxt.handle); > if (ctxt.meta_ac) { > ocfs2_free_alloc_context(ctxt.meta_ac); > ctxt.meta_ac = NULL; > } > + > + if (ret< 0) { > + mlog_errno(ret); > + break; > + } > + > } > > if (ctxt.meta_ac)
_______________________________________________ Ocfs2-devel mailing list Ocfs2-devel@oss.oracle.com http://oss.oracle.com/mailman/listinfo/ocfs2-devel