aoe: defer rexmit timer downdev work to workqueue
authorJustin Sanders <jsanders.devel@gmail.com>
Tue, 10 Jun 2025 17:06:00 +0000 (17:06 +0000)
committerJens Axboe <axboe@kernel.dk>
Tue, 17 Jun 2025 12:12:35 +0000 (06:12 -0600)
commitcffc873d68ab09a0432b8212008c5613f8a70a2c
tree2b955531db55c65ea3b522ed4de9315e03798817
parent7f90d45e57cb2ef1f0adcaf925ddffdfc5e680ca
aoe: defer rexmit timer downdev work to workqueue

When aoe's rexmit_timer() notices that an aoe target fails to respond to
commands for more than aoe_deadsecs, it calls aoedev_downdev() which
cleans the outstanding aoe and block queues. This can involve sleeping,
such as in blk_mq_freeze_queue(), which should not occur in irq context.

This patch defers that aoedev_downdev() call to the aoe device's
workqueue.

Link: https://bugzilla.kernel.org/show_bug.cgi?id=212665
Signed-off-by: Justin Sanders <jsanders.devel@gmail.com>
Link: https://lore.kernel.org/r/20250610170600.869-2-jsanders.devel@gmail.com
Tested-By: Valentin Kleibel <valentin@vrvis.at>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
drivers/block/aoe/aoe.h
drivers/block/aoe/aoecmd.c
drivers/block/aoe/aoedev.c