From da0501850bbe8618b474ca18878b8b260335f6bf Mon Sep 17 00:00:00 2001 From: Andreas Dilger Date: Thu, 27 Jun 2019 18:53:04 -0600 Subject: [PATCH] LU-12481 osd-ldiskfs: allow full 64KB xattr size When the 'ea_inode' feature is enabled, allow the full 64KB xattr size, since the xattr data is stored directly in the ea_inode data blocks, while the ext4_xattr_entry and ext4_xattr_hdr structures are stored separately in the parent inode or external xattr block. This avoids errors on the client trying to set a full-sized inode: setfattr: /mnt/lustre/f61.conf-sanity: Argument list too long Fixes: 3ec712bd183a ("LU-11868 osd: Set max ea size to XATTR_SIZE_MAX") Signed-off-by: Andreas Dilger Change-Id: I1320c32af98ab0feeeb147d8dbbc66ec7d1b8e1f Reviewed-on: https://review.whamcloud.com/35352 Tested-by: jenkins Reviewed-by: Patrick Farrell Tested-by: Maloo Reviewed-by: Wang Shilong Reviewed-by: Oleg Drokin --- lustre/osd-ldiskfs/osd_handler.c | 4 ++-- lustre/tests/conf-sanity.sh | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/lustre/osd-ldiskfs/osd_handler.c b/lustre/osd-ldiskfs/osd_handler.c index 0b6a85c..0a7cdee 100644 --- a/lustre/osd-ldiskfs/osd_handler.c +++ b/lustre/osd-ldiskfs/osd_handler.c @@ -2319,8 +2319,8 @@ static void osd_conf_get(const struct lu_env *env, #endif param->ddp_max_ea_size = sb->s_blocksize - ea_overhead; - if (param->ddp_max_ea_size > OBD_MAX_EA_SIZE - ea_overhead) - param->ddp_max_ea_size = OBD_MAX_EA_SIZE - ea_overhead; + if (param->ddp_max_ea_size > OBD_MAX_EA_SIZE) + param->ddp_max_ea_size = OBD_MAX_EA_SIZE; /* * Preferred RPC size for efficient disk IO. 4MB shows good diff --git a/lustre/tests/conf-sanity.sh b/lustre/tests/conf-sanity.sh index cafcadc..79cec18 100644 --- a/lustre/tests/conf-sanity.sh +++ b/lustre/tests/conf-sanity.sh @@ -4572,7 +4572,7 @@ test_61() { # LU-80 local small_value="bar" local name="trusted.big" - log "save large xattr $name on $file" + log "save large xattr of $(max_xattr_size) bytes on $name on $file" setfattr -n $name -v $large_value $file || error "saving $name on $file failed" -- 1.8.3.1