36 lines
1.1 KiB
Diff
36 lines
1.1 KiB
Diff
From 9b025eb3a89e041bab6698e3858706be2385d692 Mon Sep 17 00:00:00 2001
|
|
From: Jan Kara <jack@suse.cz>
|
|
Date: Wed, 11 Jan 2012 18:52:10 +0000
|
|
Subject: xfs: Fix missing xfs_iunlock() on error recovery path in xfs_readlink()
|
|
|
|
From: Jan Kara <jack@suse.cz>
|
|
|
|
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@suse.de>
|
|
|
|
---
|
|
fs/xfs/xfs_vnodeops.c | 3 ++-
|
|
1 file changed, 2 insertions(+), 1 deletion(-)
|
|
|
|
--- a/fs/xfs/xfs_vnodeops.c
|
|
+++ b/fs/xfs/xfs_vnodeops.c
|
|
@@ -131,7 +131,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;
|
|
}
|
|
|
|
|