Fix a write hang with throttling due to timer reenterability / triggerability

nfs-proxy-old
Vitaliy Filippov 2022-03-28 01:42:06 +03:00
parent 65d08e067e
commit 79ebda933e
1 changed files with 2 additions and 1 deletions

View File

@ -544,12 +544,13 @@ resume_4:
if (ref_us > exec_us + throttle_threshold_us) if (ref_us > exec_us + throttle_threshold_us)
{ {
// Pause reply // Pause reply
PRIV(op)->op_state = 5;
// Remember that the timer can in theory be called right here
tfd->set_timer_us(ref_us-exec_us, false, [this, op](int timer_id) tfd->set_timer_us(ref_us-exec_us, false, [this, op](int timer_id)
{ {
PRIV(op)->op_state++; PRIV(op)->op_state++;
ringloop->wakeup(); ringloop->wakeup();
}); });
PRIV(op)->op_state = 5;
return 1; return 1;
} }
} }