From: Christoph Hellwig Date: Wed, 16 Jun 2021 07:15:47 +0000 (+0200) Subject: loop: fix order of cleaning up the queue and freeing the tagset X-Git-Tag: for-5.14/block-2021-06-29~45 X-Git-Url: https://git.kernel.dk/?a=commitdiff_plain;h=6a03cd9843fa4dcf827dc3ad60fa9b4217f3057c;p=linux-block.git loop: fix order of cleaning up the queue and freeing the tagset We must release the queue before freeing the tagset. Fixes: 1c99502fae35 ("loop: use blk_mq_alloc_disk and blk_cleanup_disk") Reported-by: Bruno Goncalves Signed-off-by: Christoph Hellwig Signed-off-by: Jens Axboe --- diff --git a/drivers/block/loop.c b/drivers/block/loop.c index 3f40e673a101..e90f7d349816 100644 --- a/drivers/block/loop.c +++ b/drivers/block/loop.c @@ -2183,8 +2183,8 @@ out: static void loop_remove(struct loop_device *lo) { del_gendisk(lo->lo_disk); - blk_mq_free_tag_set(&lo->tag_set); blk_cleanup_disk(lo->lo_disk); + blk_mq_free_tag_set(&lo->tag_set); mutex_destroy(&lo->lo_mutex); kfree(lo); }