diff options
author | Bob Peterson <rpeterso@redhat.com> | 2011-03-16 16:32:39 -0400 |
---|---|---|
committer | Steven Whitehouse <swhiteho@redhat.com> | 2011-04-18 15:22:35 +0100 |
commit | deab72d3797e3d4340c7ddf968234b8c3d01d7a5 (patch) | |
tree | f09c55adcff084fb1c616184169b1bbf55e7f7ac /fs | |
parent | a1b49cb7e2a7961ec3aa8b64860bf480d4ec9077 (diff) | |
download | kernel_samsung_aries-deab72d3797e3d4340c7ddf968234b8c3d01d7a5.zip kernel_samsung_aries-deab72d3797e3d4340c7ddf968234b8c3d01d7a5.tar.gz kernel_samsung_aries-deab72d3797e3d4340c7ddf968234b8c3d01d7a5.tar.bz2 |
GFS2: write_end error path fails to unlock transaction lock
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.
Signed-off-by: Bob Peterson <rpeterso@redhat.com>
Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
Diffstat (limited to 'fs')
-rw-r--r-- | 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 c71995b..0f5c4f9 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); |