@@ -177,10 +180,9 @@ static bool ploop_try_delay_enospc(struct ploop_rq *prq, 
struct pio *pio)
pr_err_once(PL_FMT("underlying disk is almost full"),
                ploop_device_name(ploop));
-       ploop->event_enospc = true;
-       list_add_tail(&pio->list, &ploop->enospc_pios);
+       WRITE_ONCE(ploop->event_enospc, true);

Do we still need deferred_lock in ploop_get_event to protect event_enospc after this? Probably we can also use READ/WRITE_ONCE there.

+       llist_add((struct llist_node *)(&pio->list), &ploop->enospc_pios);
  unlock:
-       spin_unlock_irqrestore(&ploop->deferred_lock, flags);
if (delayed)
                mod_timer(&ploop->enospc_timer, jiffies + PLOOP_ENOSPC_TIMEOUT);
--
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