From: Alexander Zarochentsev Date: Fri, 14 Jan 2022 15:35:48 +0000 (-0500) Subject: LU-15435 ptlrpc: unregister reply buffer on rq_err X-Git-Tag: 2.15.0-RC3~22 X-Git-Url: https://git.whamcloud.com/?a=commitdiff_plain;h=d8012811cc6ff9c7f0fb1ddfec9461e9ff963e54;p=fs%2Flustre-release.git 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 --- 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);