From: John L. Hammond Date: Tue, 18 Sep 2018 16:45:16 +0000 (-0400) Subject: LU-11268 mdc: use smaller buffers for getxattr X-Git-Tag: 2.11.56~52 X-Git-Url: https://git.whamcloud.com/gitweb?a=commitdiff_plain;h=9b83e0e3fc5a682c134609d74d544e856613d323;p=fs%2Flustre-release.git LU-11268 mdc: use smaller buffers for getxattr In mdc_intent_getxattr_pack() only the xattr values buffer should be upsized for older MDTs. This refines the interop fix from change https://review.whamcloud.com/31990 (LU-10912 mdc: use large xattr buffers for old servers). Signed-off-by: John L. Hammond Change-Id: If7c6fe7be96a6a227c746f90757b7aae1874b14e Reviewed-on: https://review.whamcloud.com/33024 Reviewed-by: Andreas Dilger Reviewed-by: James Simmons Tested-by: Jenkins Tested-by: Maloo Reviewed-by: Oleg Drokin --- diff --git a/lustre/mdc/mdc_locks.c b/lustre/mdc/mdc_locks.c index 32587cf..57144ea 100644 --- a/lustre/mdc/mdc_locks.c +++ b/lustre/mdc/mdc_locks.c @@ -383,7 +383,7 @@ mdc_intent_getxattr_pack(struct obd_export *exp, struct ldlm_intent *lit; int rc, count = 0; struct list_head cancels = LIST_HEAD_INIT(cancels); - u32 min_buf_size = 0; + u32 ea_vals_buf_size = GA_DEFAULT_EA_VAL_LEN * GA_DEFAULT_EA_NUM; ENTRY; @@ -412,26 +412,22 @@ mdc_intent_getxattr_pack(struct obd_export *exp, * of LU-9417 when it would be *more* likely to crash the * server. See LU-9856. */ if (exp->exp_connect_data.ocd_version < OBD_OCD_VERSION(2, 10, 1, 0)) - min_buf_size = exp->exp_connect_data.ocd_max_easize; + ea_vals_buf_size = max_t(u32, ea_vals_buf_size, + exp->exp_connect_data.ocd_max_easize); #endif /* pack the intended request */ mdc_pack_body(req, &op_data->op_fid1, op_data->op_valid, - max_t(u32, min_buf_size, - GA_DEFAULT_EA_VAL_LEN * GA_DEFAULT_EA_NUM), - -1, 0); + ea_vals_buf_size, -1, 0); req_capsule_set_size(&req->rq_pill, &RMF_EADATA, RCL_SERVER, - max_t(u32, min_buf_size, - GA_DEFAULT_EA_NAME_LEN * GA_DEFAULT_EA_NUM)); + GA_DEFAULT_EA_NAME_LEN * GA_DEFAULT_EA_NUM); req_capsule_set_size(&req->rq_pill, &RMF_EAVALS, RCL_SERVER, - max_t(u32, min_buf_size, - GA_DEFAULT_EA_VAL_LEN * GA_DEFAULT_EA_NUM)); + ea_vals_buf_size); req_capsule_set_size(&req->rq_pill, &RMF_EAVALS_LENS, RCL_SERVER, - max_t(u32, min_buf_size, - sizeof(__u32) * GA_DEFAULT_EA_NUM)); + sizeof(u32) * GA_DEFAULT_EA_NUM); req_capsule_set_size(&req->rq_pill, &RMF_ACL, RCL_SERVER, 0);