Details
-
Bug
-
Resolution: Fixed
-
Critical
-
None
-
None
-
3
-
9223372036854775807
Description
LU-12828 fix introduce a regression caused a request leak in the resend case.
@@ -922,6 +932,7 @@ resend: LASSERTF(einfo->ei_type == LDLM_FLOCK, “lock type %d\n”, einfo->ei_type); res_id.name[3] = LDLM_FLOCK; + req = ldlm_enqueue_pack(exp, 0); ... @@ -973,6 +971,7 @@ resend: rc = ldlm_cli_enqueue(exp, &req, einfo, &res_id, policy, &flags, NULL, 0, lvb_type, lockh, 0); + if (!it) { /* For flock requests we immediatelly return without further delay and let caller deal with the rest, since rest of @@ -986,12 +985,10 @@ resend: (einfo->ei_type == LDLM_FLOCK) && (einfo->ei_mode == LCK_NL)) goto resend; + ptlrpc_req_finished(req); RETURN(rc); }
So new request will allocated on resend case, but it don't freed in unlock resend case.