On 2/12/25 17:33, Konstantin Khorenko wrote:
@@ -1879,20 +1906,15 @@ static void ploop_submit_embedded_pio(struct ploop
*ploop, struct pio *pio)
worker = &ploop->fsync_worker;
}
- spin_lock_irqsave(&ploop->deferred_lock, flags);
if (unlikely(ploop->stop_submitting_pios)) {
llist_add(&pio->llist, &ploop->llsuspended_pios);
- queue = false;
- goto unlock;
+ return;
}
ploop_inc_nr_inflight(ploop, pio);
- list_add_tail(&pio->list, &ploop->pios[pio->queue_list_id]);
-unlock:
- spin_unlock_irqrestore(&ploop->deferred_lock, flags);
+ llist_add((struct llist_node *)(&pio->list),
&ploop->pios[pio->queue_list_id]);
Looks like you've missed this one.
kernel-vz9$ git log -p 3881d6f83b35e99d7ff1089c44d911d702b76aa9... |
grep "(struct[^)]*list[^)]*\*)"
- llist_add((struct llist_node *)(&pio->list),
&ploop->pios[pio->queue_list_id]);
+ llist_add((struct llist_node *)(&pio->list),
&ploop->pios[pio->queue_list_id]);
And it looks like only this one (and it's counterpart in dm-ploop:
combine processing of pios thru prepare list and remove fsync worker).
- if (queue)
- queue_work(ploop->wq, worker);
+ queue_work(ploop->wq, worker);
}
void ploop_submit_embedded_pios(struct ploop *ploop, struct list_head *list)
--
Best regards, Tikhomirov Pavel
Senior Software Developer, Virtuozzo.
_______________________________________________
Devel mailing list
Devel@openvz.org
https://lists.openvz.org/mailman/listinfo/devel