> 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(). > > 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]>
This patch is unchanged since "[Devel] [PATCH hci-8.1 2/2] dm-ploop: fix the ENOSPC retry timer not waking the dispatcher", which Sashiko reviewed and found no issues in. That review applies to this posting unaltered, so the patch has not been reviewed again. -- Sashiko AI review ยท https://sashiko.vzint.dev/#/patchset/[email protected]?part=2 _______________________________________________ Devel mailing list [email protected] https://lists.openvz.org/mailman/listinfo/devel
