summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristoph Hellwig <hch@lst.de>2022-07-06 10:03:36 +0300
committerJens Axboe <axboe@kernel.dk>2022-07-06 15:46:25 +0300
commit6cc37a672a1e21245b931722a016b3bd4ae10e2d (patch)
treef0cd93f9048cf1ab51732dc02e56625bfdd115d0
parentf1a8bbd1100d9cd117bc8b7fc0903982bbaf474f (diff)
downloadlinux-6cc37a672a1e21245b931722a016b3bd4ae10e2d.tar.xz
block: call blk_queue_free_zone_bitmaps from disk_release
The zone bitmaps are only used for non-passthrough I/O, so free them as soon as the disk is released. Signed-off-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Chaitanya Kulkarni <kch@nvidia.com> Reviewed-by: Damien Le Moal <damien.lemoal@opensource.wdc.com> Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com> Link: https://lore.kernel.org/r/20220706070350.1703384-3-hch@lst.de Signed-off-by: Jens Axboe <axboe@kernel.dk>
-rw-r--r--block/blk-sysfs.c2
-rw-r--r--block/genhd.c1
2 files changed, 1 insertions, 2 deletions
diff --git a/block/blk-sysfs.c b/block/blk-sysfs.c
index 58cb9cb9f48c..7590810cf13f 100644
--- a/block/blk-sysfs.c
+++ b/block/blk-sysfs.c
@@ -776,8 +776,6 @@ static void blk_release_queue(struct kobject *kobj)
blk_free_queue_stats(q->stats);
kfree(q->poll_stat);
- blk_queue_free_zone_bitmaps(q);
-
if (queue_is_mq(q))
blk_mq_release(q);
diff --git a/block/genhd.c b/block/genhd.c
index b1fb7e058b9c..d0bdeb93e922 100644
--- a/block/genhd.c
+++ b/block/genhd.c
@@ -1165,6 +1165,7 @@ static void disk_release(struct device *dev)
disk_release_events(disk);
kfree(disk->random);
+ blk_queue_free_zone_bitmaps(disk->queue);
xa_destroy(&disk->part_tbl);
disk->queue->disk = NULL;