| From 35d4b735f295132ff0d163eb2db21460755456a5 Mon Sep 17 00:00:00 2001 |
| From: Jan Kara <jack@suse.cz> |
| Date: Wed, 11 Jan 2012 18:52:10 +0000 |
| Subject: [PATCH] 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: Paul Gortmaker <paul.gortmaker@windriver.com> |
| |
| diff --git a/fs/xfs/xfs_vnodeops.c b/fs/xfs/xfs_vnodeops.c |
| index c682c5d..a5a5856 100644 |
| --- a/fs/xfs/xfs_vnodeops.c |
| +++ b/fs/xfs/xfs_vnodeops.c |
| @@ -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; |
| } |
| |
| |
| -- |
| 1.7.12.rc2 |
| |