From d8012811cc6ff9c7f0fb1ddfec9461e9ff963e54 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 Signed-off-by: Alexander Zarochentsev Signed-off-by: Alexey Lyashkov Change-Id: I0106e3fd5443c1292c103247cdbf6122f91922e8 Reviewed-on: https://review.whamcloud.com/46132 Tested-by: jenkins Reviewed-by: Alexander Boyko Tested-by: Maloo Reviewed-by: Oleg Drokin --- lustre/ptlrpc/client.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/lustre/ptlrpc/client.c b/lustre/ptlrpc/client.c index 5b74d89..fff2296 100644 --- a/lustre/ptlrpc/client.c +++ b/lustre/ptlrpc/client.c @@ -1936,6 +1936,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