block: don't handle bio based drivers in blk_revalidate_disk_zones

bio based drivers only need to update q->nr_zones.  Do that manually
instead of overloading blk_revalidate_disk_zones to keep that function
simpler for the next round of changes that will rely even more on the
request based functionality.

Reviewed-by: Javier González <javier@javigon.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
This commit is contained in:
Christoph Hellwig
2019-12-03 10:39:07 +01:00
committed by Jens Axboe
parent e94f581944
commit ae58954d87
4 changed files with 21 additions and 24 deletions
+9 -3
View File
@@ -1576,11 +1576,17 @@ static int null_gendisk_register(struct nullb *nullb)
disk->queue = nullb->q;
strncpy(disk->disk_name, nullb->disk_name, DISK_NAME_LEN);
#ifdef CONFIG_BLK_DEV_ZONED
if (nullb->dev->zoned) {
ret = blk_revalidate_disk_zones(disk);
if (ret)
return ret;
if (queue_is_mq(nullb->q)) {
ret = blk_revalidate_disk_zones(disk);
if (ret)
return ret;
} else {
nullb->q->nr_zones = blkdev_nr_zones(disk);
}
}
#endif
add_disk(disk);
return 0;