Merge tag 'pull-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
[sfrench/cifs-2.6.git] / drivers / md / dm-zoned-target.c
index 0ec5d8b9b1a4e8040ddf93ecad27d377cc680dc6..95b132b52f332376a8d4504c5be500c60917ffe2 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,32 +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 =
-                               blkdev_nr_zones(zoned_dev->bdev->bd_disk);
+                       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 = blkdev_nr_zones(zoned_dev->bdev->bd_disk);
+               zoned_dev->zone_nr_sectors = bdev_zone_sectors(bdev);
+               zoned_dev->nr_zones = bdev_nr_zones(bdev);
        }
 
        if (reg_dev) {