[dm-devel] [PATCH 2/6] dm: add cond_resched() to dm_wq_requeue_work()
Mike Snitzer
snitzer at kernel.org
Fri Feb 17 20:07:33 UTC 2023
Otherwise the while() loop in dm_wq_requeue_work() can result in a
"dead loop" on systems that have preemption disabled. This is
particularly problematic on single cpu systems.
Fixes: 8b211aaccb915 ("dm: add two stage requeue mechanism")
Cc: stable at vger.kernel.org
Signed-off-by: Mike Snitzer <snitzer at kernel.org>
---
drivers/md/dm.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/md/dm.c b/drivers/md/dm.c
index 15b91959e433..adb002b8648d 100644
--- a/drivers/md/dm.c
+++ b/drivers/md/dm.c
@@ -1009,6 +1009,7 @@ static void dm_wq_requeue_work(struct work_struct *work)
io->next = NULL;
__dm_io_complete(io, false);
io = next;
+ cond_resched();
}
}
--
2.37.0 (Apple Git-136)
More information about the dm-devel
mailing list