From ca358e43061257c05563034e098c0445f9948e89 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. Lustre-change: https://review.whamcloud.com/51761 Lustre-commit: TBD (from c422797b3949e0b3b7fac7164f03f01dfa6aca0b) Signed-off-by: Mikhail Pershin Change-Id: I884398beada4286bc07875247e15b41120f73a3e Reviewed-on: https://review.whamcloud.com/c/ex/lustre-release/+/51769 Reviewed-by: Andreas Dilger Tested-by: jenkins Tested-by: Maloo --- 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 96e896c..7bfe97f 100644 --- a/lustre/mdc/mdc_dev.c +++ b/lustre/mdc/mdc_dev.c @@ -591,7 +591,7 @@ 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