diff options
author | Jan Kara <jack@suse.cz> | 2012-01-11 18:52:10 +0000 |
---|---|---|
committer | Simone Willett <swillett@nvidia.com> | 2012-02-09 18:20:18 -0800 |
commit | b51e517d28543e8ea56ae13ccf1f42c475aa3275 (patch) | |
tree | 3d30ab9fc18efd1da6446b2af90c4ea4dcfcf814 /fs | |
parent | 62471cd2ebd7adbb9c360bdb7e2970a59e0745f0 (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>
Signed-off-by: Varun Wadekar <vwadekar@nvidia.com>
Change-Id: Ie83d93a6bbe0997f8a41afa9e3bf6f12cee476c6
Reviewed-on: http://git-master/r/79655
Reviewed-by: Automatic_Commit_Validation_User
Diffstat (limited to 'fs')
-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 b9e28730bbd6..d92419f0f2bb 100644 --- a/fs/xfs/xfs_vnodeops.c +++ b/fs/xfs/xfs_vnodeops.c @@ -132,7 +132,8 @@ xfs_readlink( __func__, (unsigned long long) ip->i_ino, (long long) pathlen); ASSERT(0); - return XFS_ERROR(EFSCORRUPTED); + error = XFS_ERROR(EFSCORRUPTED); + goto out; } |