summaryrefslogtreecommitdiff
path: root/fs/gfs2
diff options
context:
space:
mode:
authorBob Peterson <rpeterso@redhat.com>2011-03-16 16:32:39 -0400
committerSteven Whitehouse <swhiteho@redhat.com>2011-04-18 15:22:35 +0100
commitdeab72d3797e3d4340c7ddf968234b8c3d01d7a5 (patch)
treef09c55adcff084fb1c616184169b1bbf55e7f7ac /fs/gfs2
parenta1b49cb7e2a7961ec3aa8b64860bf480d4ec9077 (diff)
downloadlinux-3.10-deab72d3797e3d4340c7ddf968234b8c3d01d7a5.tar.gz
linux-3.10-deab72d3797e3d4340c7ddf968234b8c3d01d7a5.tar.bz2
linux-3.10-deab72d3797e3d4340c7ddf968234b8c3d01d7a5.zip
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/gfs2')
-rw-r--r--fs/gfs2/aops.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/fs/gfs2/aops.c b/fs/gfs2/aops.c
index c71995b111b..0f5c4f9d5d6 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);