[Devel] [PATCH hci-8.1 2/2] dm-ploop: fix the ENOSPC retry timer not waking the dispatcher

no-reply at sashiko.virtuozzo.com no-reply at sashiko.virtuozzo.com
Mon Nov 9 22:18:32 MSK 2026


> From: Denis V. Lunev <den at openvz.org>
> 
> A write that fails with ENOSPC on the image is held on enospc_pios and
> retried when enospc_timer fires, so that I/O resumes once space is
> freed. ploop_enospc_timer() only sets submit_enospc, which only
> do_ploop_run_work() consumes, and nothing wakes the dispatcher for it.
> ploop_worker() also goes to sleep with the flag set, as its sleep
> condition checks the pio lists only. The held writes are retried only
> when other I/O reaches the device: on a device whose only I/O is the
> held writes, the writers stay in D state after the space is freed.
> 
> Wake the dispatcher from the timer, and keep ploop_worker() awake while
> submit_enospc is set, so that a wakeup that comes while the dispatcher
> is busy is not lost. Test and clear the flag with xchg() in
> do_ploop_run_work(), as the timer now sets it from another CPU.
> 
> https://virtuozzo.atlassian.net/browse/VSTOR-154182
> 
> Fixes: afc60480b037 ("dm-ploop: resubmit enospc pios from dispatcher thread")
> Feature: dm-ploop: ploop target driver
> Signed-off-by: Denis V. Lunev <den at openvz.org>

Sashiko has reviewed this patch and found no issues. It looks great!

-- 
Sashiko AI review · https://sashiko.vzint.dev/#/patchset/20261109190657.1851487-1-den@openvz.org?part=2




More information about the Devel mailing list