]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
xfs: Fix missing xfs_iunlock() on error recovery path in xfs_readlink()
authorJan Kara <jack@suse.cz>
Wed, 11 Jan 2012 18:52:10 +0000 (18:52 +0000)
committerPaul Gortmaker <paul.gortmaker@windriver.com>
Fri, 17 Aug 2012 19:35:03 +0000 (15:35 -0400)
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: Paul Gortmaker <paul.gortmaker@windriver.com>
fs/xfs/xfs_vnodeops.c

index c682c5d8594a54c35ea421e2e17ca46c77904f6e..a5a58560ae3b8dbcf4b8757896273a3b5f63a771 100644 (file)
@@ -573,7 +573,8 @@ xfs_readlink(
                         "%s: inode (%llu) bad symlink length (%lld)", __func__,
                         (unsigned long long) ip->i_ino, (long long) pathlen);
                ASSERT(0);
-               return XFS_ERROR(EFSCORRUPTED);
+               error = XFS_ERROR(EFSCORRUPTED);
+               goto out;
        }