From fb0f1fbd2490c993fbf2a18930958f5f2c2cc817 Mon Sep 17 00:00:00 2001 From: Lai Siyao Date: Fri, 22 Sep 2017 10:42:07 +0800 Subject: [PATCH] LU-5024 mdc: don't assert on name pack For old version of MDTs which don't support ATTRFID, open will pack dentry name in the request, but this name may change if there is concurrent rename, as a result an assertion will be triggerred. It's inconvenient to copy name in advance or take dentry lock in the call chain, so It's better to remove this assert, which is safe. Lustre-change: https://review.whamcloud.com/29161 Lustre-commit: dd9d7cc845dfd2853498091573b7e13a0a35c161 Signed-off-by: Lai Siyao Change-Id: I58d8b8fbbd8057aa2e8618e8923d0432f31dac96 Reviewed-by: Andreas Dilger Reviewed-by: John L. Hammond Signed-off-by: Minh Diep Reviewed-on: https://review.whamcloud.com/30355 Tested-by: Jenkins Tested-by: Maloo --- lustre/mdc/mdc_lib.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/lustre/mdc/mdc_lib.c b/lustre/mdc/mdc_lib.c index 200e7e7..f02a8de 100644 --- a/lustre/mdc/mdc_lib.c +++ b/lustre/mdc/mdc_lib.c @@ -117,7 +117,11 @@ static void mdc_pack_name(struct ptlrpc_request *req, cpy_len = strlcpy(buf, name, buf_size); - LASSERT(cpy_len == name_len && lu_name_is_valid_2(buf, cpy_len)); + LASSERT(lu_name_is_valid_2(buf, cpy_len)); + if (cpy_len != name_len) + CDEBUG(D_DENTRY, "%s: %s len %zd != %zd, concurrent rename?\n", + req->rq_export->exp_obd->obd_name, buf, name_len, + cpy_len); } void mdc_file_secctx_pack(struct ptlrpc_request *req, const char *secctx_name, -- 1.8.3.1