ext4: error should be cleared if ea_inode isn't added to the cache
authorEmoly Liu <emoly.liu@intel.com>
Mon, 31 Jul 2017 04:40:22 +0000 (00:40 -0400)
committerTheodore Ts'o <tytso@mit.edu>
Mon, 31 Jul 2017 04:40:22 +0000 (00:40 -0400)
For Lustre, if ea_inode fails in hash validation but passes parent
inode and generation checks, it won't be added to the cache as well
as the error "-EFSCORRUPTED" should be cleared, otherwise it will
cause "Structure needs cleaning" when running getfattr command.

Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-9723

Cc: stable@vger.kernel.org
Fixes: dec214d00e0d78a08b947d7dccdfdb84407a9f4d
Signed-off-by: Emoly Liu <emoly.liu@intel.com>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Reviewed-by: Andreas Dilger <adilger@dilger.ca>
Reviewed-by: tahsin@google.com
fs/ext4/xattr.c

index cff4f41ced612d9b0f344be66a17e434981f8861..de217a0947332bf2a657c48b9a3ba7e4eebbb860 100644 (file)
@@ -451,6 +451,7 @@ ext4_xattr_inode_get(struct inode *inode, struct ext4_xattr_entry *entry,
                }
                /* Do not add ea_inode to the cache. */
                ea_inode_cache = NULL;
+               err = 0;
        } else if (err)
                goto out;