> From: Denis V. Lunev <[email protected]> > > 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 <[email protected]>
Sashiko has reviewed this patch and found no issues. It looks great! -- Sashiko AI review ยท https://sashiko.vzint.dev/#/patchset/[email protected]?part=2 _______________________________________________ Devel mailing list [email protected] https://lists.openvz.org/mailman/listinfo/devel
