From 04ab82d63e3eb672cc22e81583258474e6868b84 Mon Sep 17 00:00:00 2001 From: Alexander Zarochentsev Date: Fri, 14 Jan 2022 10:35:48 -0500 Subject: [PATCH] LU-15435 ptlrpc: unregister reply buffer on rq_err Unregister reply buffer on rq_err and prevent a late reply from modifying request flags in INTERPRET state. Fixes: cefabee52586 ("LU-15112 mgc: do not ignore target registration failure") HPE-bug-id: LUS-10717 Lustre-change: https://review.whamcloud.com/46132 Lustre-commit: d8012811cc6ff9c7f0fb1ddfec9461e9ff963e54 Signed-off-by: Alexander Zarochentsev Signed-off-by: Alexey Lyashkov Change-Id: I0106e3fd5443c1292c103247cdbf6122f91922e8 Reviewed-by: Alexander Boyko Reviewed-on: https://review.whamcloud.com/c/ex/lustre-release/+/49090 Tested-by: jenkins Tested-by: Maloo Reviewed-by: Andreas Dilger --- lustre/ptlrpc/client.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/lustre/ptlrpc/client.c b/lustre/ptlrpc/client.c index f846849..e0eacc7 100644 --- a/lustre/ptlrpc/client.c +++ b/lustre/ptlrpc/client.c @@ -1962,6 +1962,11 @@ int ptlrpc_check_set(const struct lu_env *env, struct ptlrpc_request_set *set) } if (req->rq_err) { + if (!ptlrpc_unregister_reply(req, 1)) { + ptlrpc_unregister_bulk(req, 1); + continue; + } + spin_lock(&req->rq_lock); req->rq_replied = 0; spin_unlock(&req->rq_lock); -- 1.8.3.1