Whamcloud - gitweb
LU-16983 mdc: check errcode prior mdc_fill_lvb() call
authorMikhail Pershin <mpershin@whamcloud.com>
Tue, 25 Jul 2023 22:09:31 +0000 (01:09 +0300)
committerAndreas Dilger <adilger@whamcloud.com>
Sat, 29 Jul 2023 07:53:39 +0000 (07:53 +0000)
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 <mpershin@whamcloud.com>
Change-Id: I884398beada4286bc07875247e15b41120f73a3e
Reviewed-on: https://review.whamcloud.com/c/ex/lustre-release/+/51769
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
lustre/mdc/mdc_dev.c

index 96e896c..7bfe97f 100644 (file)
@@ -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) {