diff options
author | Christoph Hellwig <hch@lst.de> | 2022-07-06 09:03:36 +0200 |
---|---|---|
committer | Jens Axboe <axboe@kernel.dk> | 2022-07-06 06:46:25 -0600 |
commit | 6cc37a672a1e21245b931722a016b3bd4ae10e2d (patch) | |
tree | f0cd93f9048cf1ab51732dc02e56625bfdd115d0 | |
parent | f1a8bbd1100d9cd117bc8b7fc0903982bbaf474f (diff) |
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.c | 2 | ||||
-rw-r--r-- | block/genhd.c | 1 |
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; |