From ce9c1c11593814dacacc2c66f9fcf124ea84b807 Mon Sep 17 00:00:00 2001 From: Vitaly Fertman Date: Tue, 2 Mar 2021 23:43:08 +0300 Subject: [PATCH] LU-12828 ldlm: not freed req on enqueue ldlm_cli_enqueue may allocate a req but failed to allocate a req slot and returns an errors without freeing the req. Fixes: 85a12c6c8d ("LU-12828 ldlm: FLOCK request can be processed twice") Signed-off-by: Vitaly Fertman Change-Id: I9663528bbf2bf64f6439fed6c27d0bc3f274b867 HPE-bug-id: LUS-9337 Reviewed-on: https://es-gerrit.dev.cray.com/158433 Reviewed-by: Alexander Boyko Reviewed-by: Andriy Skulysh Tested-by: Alexander Lezhoev Reviewed-on: https://review.whamcloud.com/41818 Tested-by: jenkins Reviewed-by: Alexander Boyko Reviewed-by: Andriy Skulysh Tested-by: Maloo Reviewed-by: Oleg Drokin --- lustre/ldlm/ldlm_request.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lustre/ldlm/ldlm_request.c b/lustre/ldlm/ldlm_request.c index fbf4a41..d94cb1a 100644 --- a/lustre/ldlm/ldlm_request.c +++ b/lustre/ldlm/ldlm_request.c @@ -1100,6 +1100,8 @@ int ldlm_cli_enqueue(struct obd_export *exp, struct ptlrpc_request **reqp, ptlrpc_put_mod_rpc_slot(req); failed_lock_cleanup(ns, lock, einfo->ei_mode); LDLM_LOCK_RELEASE(lock); + if (!req_passed_in) + ptlrpc_req_finished(req); GOTO(out, rc); } } -- 1.8.3.1