From mboxrd@z Thu Jan 1 00:00:00 1970 From: Steven Whitehouse Date: Thu, 17 Mar 2011 11:46:59 +0000 Subject: [Cluster-devel] [GFS2 Patch] GFS2: write_end error path fails to unlock transaction lock In-Reply-To: <129305071.477632.1300307559812.JavaMail.root@zmail06.collab.prod.int.phx2.redhat.com> References: <129305071.477632.1300307559812.JavaMail.root@zmail06.collab.prod.int.phx2.redhat.com> Message-ID: <1300362419.2596.34.camel@dolmen> List-Id: To: cluster-devel.redhat.com MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Hi, Good spotting, now in the -fixes tree. Thanks, Steve. On Wed, 2011-03-16 at 16:32 -0400, Bob Peterson wrote: > Hi, > > I did an audit of gfs2's transaction glock for bugzilla bug > 658619 and ran across this: > > In function gfs2_write_end, in the unlikely event that > gfs2_meta_inode_buffer returns an error, the code may forget > to unlock the transaction lock because the "failed" label > appears after the call to function gfs2_trans_end. > > Regards, > > Bob Peterson > Red Hat File Systems > > Signed-off-by: Bob Peterson > -- > fs/gfs2/aops.c | 2 +- > 1 files changed, 1 insertions(+), 1 deletions(-) > > diff --git a/fs/gfs2/aops.c b/fs/gfs2/aops.c > index aad77e4..86870b3 100644 > --- a/fs/gfs2/aops.c > +++ b/fs/gfs2/aops.c > @@ -884,8 +884,8 @@ static int gfs2_write_end(struct file *file, struct address_space *mapping, > } > > brelse(dibh); > - gfs2_trans_end(sdp); > failed: > + gfs2_trans_end(sdp); > if (al) { > gfs2_inplace_release(ip); > gfs2_quota_unlock(ip); >