From: Mikhail Pershin Date: Tue, 25 Jul 2023 22:09:31 +0000 (+0300) Subject: LU-16983 mdc: check errcode prior mdc_fill_lvb() call X-Git-Tag: 2.15.57~1 X-Git-Url: https://git.whamcloud.com/?a=commitdiff_plain;h=68a24acf757c5cfcc00ea1057cec4f09af278e73;p=fs%2Flustre-release.git LU-16983 mdc: check errcode prior mdc_fill_lvb() call The mdc_enqueue_fini() can be called with negative errcode parameter if request processing was failed. In that case the mdc_fill_lvb() shouldn't be called. Issue may occur with DoM files, old server (<2.14) and new client. The problem is in new client code. Test-Parameters: testlist=racer serverversion=EXA5.2.8 Signed-off-by: Mikhail Pershin Change-Id: I884398beada4286bc07875247e15b41120f73a3e Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/51761 Tested-by: jenkins Tested-by: Maloo Reviewed-by: Alex Zhuravlev Reviewed-by: Andreas Dilger Reviewed-by: Oleg Drokin --- diff --git a/lustre/mdc/mdc_dev.c b/lustre/mdc/mdc_dev.c index 8e5620f..b7d8ade 100644 --- a/lustre/mdc/mdc_dev.c +++ b/lustre/mdc/mdc_dev.c @@ -599,7 +599,7 @@ static int mdc_enqueue_fini(struct obd_export *exp, struct ptlrpc_request *req, ENTRY; /* needed only for glimpse from an old server (< 2.14) */ - if (glimpse && !exp_connect_dom_lvb(exp)) + if (glimpse && !exp_connect_dom_lvb(exp) && errcode >= 0) rc = mdc_fill_lvb(&req->rq_pill, &ols->ols_lvb); if (glimpse && errcode == ELDLM_LOCK_ABORTED) {