From 7581eba5c26ee6a0c5082efc7fc9553cc430fa53 Mon Sep 17 00:00:00 2001 From: Bob Glossman Date: Fri, 12 Feb 2016 15:50:26 -0800 Subject: [PATCH] LU-6757 ldiskfs: large EA support For large EA support, ext4_xattr_check_names() will return -EIO. This patch fixes that by checking whether the large EA value is saved in an external EA inode or not. this mod copys a small subset of http://review.whamcloud.com/16012 that made this change in el7 ldiskfs into sles12 ldiskfs Signed-off-by: Bob Glossman Change-Id: I5f29eb5d87e1a3a0a928298ed3ac993c7a0bcdd1 Reviewed-on: http://review.whamcloud.com/18449 Tested-by: Jenkins Reviewed-by: Andreas Dilger Tested-by: Maloo Reviewed-by: Jian Yu Reviewed-by: Oleg Drokin --- ldiskfs/kernel_patches/patches/sles12/ext4-large-eas.patch | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/ldiskfs/kernel_patches/patches/sles12/ext4-large-eas.patch b/ldiskfs/kernel_patches/patches/sles12/ext4-large-eas.patch index baf0b57..f82cd3f 100644 --- a/ldiskfs/kernel_patches/patches/sles12/ext4-large-eas.patch +++ b/ldiskfs/kernel_patches/patches/sles12/ext4-large-eas.patch @@ -145,6 +145,14 @@ Index: linux-stage/fs/ext4/xattr.c =================================================================== --- linux-stage.orig/fs/ext4/xattr.c +++ linux-stage/fs/ext4/xattr.c +@@ -201,6 +201,7 @@ ext4_xattr_check_names(struct ext4_xattr + + while (!IS_LAST_ENTRY(entry)) { + if (entry->e_value_size != 0 && ++ entry->e_value_inum == 0 && + (value_start + le16_to_cpu(entry->e_value_offs) < + (void *)e + sizeof(__u32) || + value_start + le16_to_cpu(entry->e_value_offs) + @@ -233,19 +233,26 @@ ext4_xattr_check_block(struct inode *ino } -- 1.8.3.1