bcache: convert to blk_alloc_disk/blk_cleanup_disk
authorChristoph Hellwig <hch@lst.de>
Fri, 21 May 2021 05:51:02 +0000 (07:51 +0200)
committerJens Axboe <axboe@kernel.dk>
Tue, 1 Jun 2021 13:42:23 +0000 (07:42 -0600)
Convert the bcache driver to use the blk_alloc_disk and blk_cleanup_disk
helpers to simplify gendisk and request_queue allocation.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Hannes Reinecke <hare@suse.de>
Acked-by: Coly Li <colyli@suse.de>
Reviewed-by: Ulf Hansson <ulf.hansson@linaro.org>
Link: https://lore.kernel.org/r/20210521055116.1053587-13-hch@lst.de
Signed-off-by: Jens Axboe <axboe@kernel.dk>
drivers/md/bcache/super.c

index bea8c4429ae8f47798fa8e30a2947bbe15b25611..185246a0d85511f6e8553eadb54933c807d01a5b 100644 (file)
@@ -890,13 +890,9 @@ static void bcache_device_free(struct bcache_device *d)
                if (disk_added)
                        del_gendisk(disk);
 
-               if (disk->queue)
-                       blk_cleanup_queue(disk->queue);
-
+               blk_cleanup_disk(disk);
                ida_simple_remove(&bcache_device_idx,
                                  first_minor_to_idx(disk->first_minor));
-               if (disk_added)
-                       put_disk(disk);
        }
 
        bioset_exit(&d->bio_split);
@@ -946,7 +942,7 @@ static int bcache_device_init(struct bcache_device *d, unsigned int block_size,
                        BIOSET_NEED_BVECS|BIOSET_NEED_RESCUER))
                goto err;
 
-       d->disk = alloc_disk(BCACHE_MINORS);
+       d->disk = blk_alloc_disk(NUMA_NO_NODE);
        if (!d->disk)
                goto err;
 
@@ -955,14 +951,11 @@ static int bcache_device_init(struct bcache_device *d, unsigned int block_size,
 
        d->disk->major          = bcache_major;
        d->disk->first_minor    = idx_to_first_minor(idx);
+       d->disk->minors         = BCACHE_MINORS;
        d->disk->fops           = ops;
        d->disk->private_data   = d;
 
-       q = blk_alloc_queue(NUMA_NO_NODE);
-       if (!q)
-               return -ENOMEM;
-
-       d->disk->queue                  = q;
+       q = d->disk->queue;
        q->limits.max_hw_sectors        = UINT_MAX;
        q->limits.max_sectors           = UINT_MAX;
        q->limits.max_segment_size      = UINT_MAX;