]> asedeno.scripts.mit.edu Git - linux.git/blobdiff - drivers/md/dm-flakey.c
Merge branches 'pm-sleep', 'pm-cpuidle', 'pm-cpufreq', 'pm-devfreq' and 'pm-avs'
[linux.git] / drivers / md / dm-flakey.c
index 2900fbde89b3508d01e1900972952469fef6fa2b..a2cc9e45cbba1639ede3cf51d324a4ec4685d2f1 100644 (file)
@@ -280,7 +280,7 @@ static void flakey_map_bio(struct dm_target *ti, struct bio *bio)
        struct flakey_c *fc = ti->private;
 
        bio_set_dev(bio, fc->dev->bdev);
-       if (bio_sectors(bio) || bio_op(bio) == REQ_OP_ZONE_RESET)
+       if (bio_sectors(bio) || op_is_zone_mgmt(bio_op(bio)))
                bio->bi_iter.bi_sector =
                        flakey_map_sector(ti, bio->bi_iter.bi_sector);
 }
@@ -322,8 +322,7 @@ static int flakey_map(struct dm_target *ti, struct bio *bio)
        struct per_bio_data *pb = dm_per_bio_data(bio, sizeof(struct per_bio_data));
        pb->bio_submitted = false;
 
-       /* Do not fail reset zone */
-       if (bio_op(bio) == REQ_OP_ZONE_RESET)
+       if (op_is_zone_mgmt(bio_op(bio)))
                goto map_bio;
 
        /* Are we alive ? */
@@ -384,7 +383,7 @@ static int flakey_end_io(struct dm_target *ti, struct bio *bio,
        struct flakey_c *fc = ti->private;
        struct per_bio_data *pb = dm_per_bio_data(bio, sizeof(struct per_bio_data));
 
-       if (bio_op(bio) == REQ_OP_ZONE_RESET)
+       if (op_is_zone_mgmt(bio_op(bio)))
                return DM_ENDIO_DONE;
 
        if (!*error && pb->bio_submitted && (bio_data_dir(bio) == READ)) {
@@ -460,21 +459,15 @@ static int flakey_prepare_ioctl(struct dm_target *ti, struct block_device **bdev
 }
 
 #ifdef CONFIG_BLK_DEV_ZONED
-static int flakey_report_zones(struct dm_target *ti, sector_t sector,
-                              struct blk_zone *zones, unsigned int *nr_zones)
+static int flakey_report_zones(struct dm_target *ti,
+               struct dm_report_zones_args *args, unsigned int nr_zones)
 {
        struct flakey_c *fc = ti->private;
-       int ret;
+       sector_t sector = flakey_map_sector(ti, args->next_sector);
 
-       /* Do report and remap it */
-       ret = blkdev_report_zones(fc->dev->bdev, flakey_map_sector(ti, sector),
-                                 zones, nr_zones);
-       if (ret != 0)
-               return ret;
-
-       if (*nr_zones)
-               dm_remap_zone_report(ti, fc->start, zones, nr_zones);
-       return 0;
+       args->start = fc->start;
+       return blkdev_report_zones(fc->dev->bdev, sector, nr_zones,
+                                  dm_report_zones_cb, args);
 }
 #endif