diff options
author | Jan Kara <jack@suse.cz> | 2012-01-11 13:52:10 -0500 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2012-02-03 12:18:52 -0500 |
commit | 2fbe11fed22ed2751aaf4b4926f27730aaac5470 (patch) | |
tree | 23a80ce32f738643168226950d5cb7a02212513a | |
parent | 90af660bec3b2d47e17cb3caae742810656e2d4f (diff) |
xfs: Fix missing xfs_iunlock() on error recovery path in xfs_readlink()
commit 9b025eb3a89e041bab6698e3858706be2385d692 upstream.
Commit b52a360b forgot to call xfs_iunlock() when it detected corrupted
symplink and bailed out. Fix it by jumping to 'out' instead of doing return.
CC: Carlos Maiolino <cmaiolino@redhat.com>
Signed-off-by: Jan Kara <jack@suse.cz>
Reviewed-by: Alex Elder <elder@kernel.org>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
Signed-off-by: Ben Myers <bpm@sgi.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r-- | fs/xfs/xfs_vnodeops.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/fs/xfs/xfs_vnodeops.c b/fs/xfs/xfs_vnodeops.c index 6cc4d41fb0d..59509ae0b27 100644 --- a/fs/xfs/xfs_vnodeops.c +++ b/fs/xfs/xfs_vnodeops.c | |||
@@ -554,7 +554,8 @@ xfs_readlink( | |||
554 | __func__, (unsigned long long) ip->i_ino, | 554 | __func__, (unsigned long long) ip->i_ino, |
555 | (long long) pathlen); | 555 | (long long) pathlen); |
556 | ASSERT(0); | 556 | ASSERT(0); |
557 | return XFS_ERROR(EFSCORRUPTED); | 557 | error = XFS_ERROR(EFSCORRUPTED); |
558 | goto out; | ||
558 | } | 559 | } |
559 | 560 | ||
560 | 561 | ||