Concurrent thread waits that on pending_waitq. https://jira.sw.ru/browse/PSBM-121135
Signed-off-by: Kirill Tkhai <[email protected]> --- drivers/block/ploop/dev.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/drivers/block/ploop/dev.c b/drivers/block/ploop/dev.c index d6edbfbe4422..320a5d55d65b 100644 --- a/drivers/block/ploop/dev.c +++ b/drivers/block/ploop/dev.c @@ -1461,8 +1461,11 @@ static void ploop_complete_request(struct ploop_request * preq) */ spin_lock_irq(&plo->lock); plo->active_reqs--; - if (preq->req_rw & REQ_DISCARD) - plo->discard_inflight_reqs--; + if (preq->req_rw & REQ_DISCARD) { + if (!--plo->discard_inflight_reqs && + waitqueue_active(&plo->pending_waitq)) + wake_up(&plo->pending_waitq); + } spin_unlock_irq(&plo->lock); while (preq->bl.head) { _______________________________________________ Devel mailing list [email protected] https://lists.openvz.org/mailman/listinfo/devel
