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

Reply via email to