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.