[Devel] [RFC PATCH vz9 v6 08/62] dm-ploop: convert enospc handling to use lockless lists
Pavel Tikhomirov
ptikhomirov at virtuozzo.com
Thu Jan 9 10:15:36 MSK 2025
> @@ -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.
More information about the Devel
mailing list