From: Vitaly Fertman Date: Tue, 2 Mar 2021 20:43:08 +0000 (+0300) Subject: LU-12828 ldlm: not freed req on enqueue X-Git-Tag: 2.14.51~26 X-Git-Url: https://git.whamcloud.com/?a=commitdiff_plain;h=ce9c1c11593814dacacc2c66f9fcf124ea84b807;p=fs%2Flustre-release.git 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 --- 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); } }