From 68a24acf757c5cfcc00ea1057cec4f09af278e73 Mon Sep 17 00:00:00 2001 From: Mikhail Pershin Date: Wed, 26 Jul 2023 01:09:31 +0300 Subject: [PATCH] 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 --- lustre/mdc/mdc_dev.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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) { -- 1.8.3.1