dm: add cond_resched() to dm_wq_requeue_work()

commit f77692d65d upstream.

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: 8b211aaccb ("dm: add two stage requeue mechanism")
Cc: stable@vger.kernel.org
Signed-off-by: Mike Snitzer <snitzer@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
Mike Snitzer
2023-02-16 12:10:05 -05:00
committed by Greg Kroah-Hartman
parent 7f093695b4
commit 2b3c953226

View File

@@ -1020,6 +1020,7 @@ static void dm_wq_requeue_work(struct work_struct *work)
io->next = NULL;
__dm_io_complete(io, false);
io = next;
cond_resched();
}
}