dm-zoned: cleanup dmz_fixup_devices
authorChristoph Hellwig <hch@lst.de>
Wed, 6 Jul 2022 07:03:48 +0000 (09:03 +0200)
committerJens Axboe <axboe@kernel.dk>
Wed, 6 Jul 2022 12:46:26 +0000 (06:46 -0600)
Use the bdev based helpers where applicable and move the zoned_dev
into the scope where it is actually used.

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-15-hch@lst.de
Signed-off-by: Jens Axboe <axboe@kernel.dk>
drivers/md/dm-zoned-target.c

index 6ba6ef4..95b132b 100644 (file)
@@ -764,8 +764,7 @@ static void dmz_put_zoned_device(struct dm_target *ti)
 static int dmz_fixup_devices(struct dm_target *ti)
 {
        struct dmz_target *dmz = ti->private;
-       struct dmz_dev *reg_dev, *zoned_dev;
-       struct request_queue *q;
+       struct dmz_dev *reg_dev = NULL;
        sector_t zone_nr_sectors = 0;
        int i;
 
@@ -780,31 +779,32 @@ static int dmz_fixup_devices(struct dm_target *ti)
                        return -EINVAL;
                }
                for (i = 1; i < dmz->nr_ddevs; i++) {
-                       zoned_dev = &dmz->dev[i];
+                       struct dmz_dev *zoned_dev = &dmz->dev[i];
+                       struct block_device *bdev = zoned_dev->bdev;
+
                        if (zoned_dev->flags & DMZ_BDEV_REGULAR) {
                                ti->error = "Secondary disk is not a zoned device";
                                return -EINVAL;
                        }
-                       q = bdev_get_queue(zoned_dev->bdev);
                        if (zone_nr_sectors &&
-                           zone_nr_sectors != blk_queue_zone_sectors(q)) {
+                           zone_nr_sectors != bdev_zone_sectors(bdev)) {
                                ti->error = "Zone nr sectors mismatch";
                                return -EINVAL;
                        }
-                       zone_nr_sectors = blk_queue_zone_sectors(q);
+                       zone_nr_sectors = bdev_zone_sectors(bdev);
                        zoned_dev->zone_nr_sectors = zone_nr_sectors;
-                       zoned_dev->nr_zones = bdev_nr_zones(zoned_dev->bdev);
+                       zoned_dev->nr_zones = bdev_nr_zones(bdev);
                }
        } else {
-               reg_dev = NULL;
-               zoned_dev = &dmz->dev[0];
+               struct dmz_dev *zoned_dev = &dmz->dev[0];
+               struct block_device *bdev = zoned_dev->bdev;
+
                if (zoned_dev->flags & DMZ_BDEV_REGULAR) {
                        ti->error = "Disk is not a zoned device";
                        return -EINVAL;
                }
-               q = bdev_get_queue(zoned_dev->bdev);
-               zoned_dev->zone_nr_sectors = blk_queue_zone_sectors(q);
-               zoned_dev->nr_zones = bdev_nr_zones(zoned_dev->bdev);
+               zoned_dev->zone_nr_sectors = bdev_zone_sectors(bdev);
+               zoned_dev->nr_zones = bdev_nr_zones(bdev);
        }
 
        if (reg_dev) {