OSDN Git Service

null_blk: cleanup null_gendisk_register
authorChristoph Hellwig <hch@lst.de>
Tue, 3 Dec 2019 09:39:02 +0000 (10:39 +0100)
committerJens Axboe <axboe@kernel.dk>
Tue, 3 Dec 2019 15:51:24 +0000 (08:51 -0700)
Use a saner size calculation, and do a trivial cleanup on the zone
revalidation to prepare to future changes.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
drivers/block/null_blk_main.c

index 53ba9c7..dd60262 100644 (file)
@@ -1559,14 +1559,14 @@ static int init_driver_queues(struct nullb *nullb)
 
 static int null_gendisk_register(struct nullb *nullb)
 {
+       sector_t size = ((sector_t)nullb->dev->size * SZ_1M) >> SECTOR_SHIFT;
        struct gendisk *disk;
-       sector_t size;
+       int ret;
 
        disk = nullb->disk = alloc_disk_node(1, nullb->dev->home_node);
        if (!disk)
                return -ENOMEM;
-       size = (sector_t)nullb->dev->size * 1024 * 1024ULL;
-       set_capacity(disk, size >> 9);
+       set_capacity(disk, size);
 
        disk->flags |= GENHD_FL_EXT_DEVT | GENHD_FL_SUPPRESS_PARTITION_INFO;
        disk->major             = null_major;
@@ -1577,9 +1577,8 @@ static int null_gendisk_register(struct nullb *nullb)
        strncpy(disk->disk_name, nullb->disk_name, DISK_NAME_LEN);
 
        if (nullb->dev->zoned) {
-               int ret = blk_revalidate_disk_zones(disk);
-
-               if (ret != 0)
+               ret = blk_revalidate_disk_zones(disk);
+               if (ret)
                        return ret;
        }