]> git.proxmox.com Git - mirror_ubuntu-jammy-kernel.git/commitdiff
nvdimm-blk: convert to blk_alloc_disk/blk_cleanup_disk
authorChristoph Hellwig <hch@lst.de>
Fri, 21 May 2021 05:51:05 +0000 (07:51 +0200)
committerJens Axboe <axboe@kernel.dk>
Tue, 1 Jun 2021 13:42:23 +0000 (07:42 -0600)
Convert the nvdimm-blk 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: Ulf Hansson <ulf.hansson@linaro.org>
Link: https://lore.kernel.org/r/20210521055116.1053587-16-hch@lst.de
Signed-off-by: Jens Axboe <axboe@kernel.dk>
drivers/nvdimm/blk.c

index 7ba446d224fbb746ad868f35a36f79e1fb2d74e2..088d3dd6f6fac4614a85c11d6c5daf7d7381f28b 100644 (file)
@@ -228,48 +228,34 @@ static const struct block_device_operations nd_blk_fops = {
        .submit_bio =  nd_blk_submit_bio,
 };
 
-static void nd_blk_release_queue(void *q)
-{
-       blk_cleanup_queue(q);
-}
-
 static void nd_blk_release_disk(void *disk)
 {
        del_gendisk(disk);
-       put_disk(disk);
+       blk_cleanup_disk(disk);
 }
 
 static int nsblk_attach_disk(struct nd_namespace_blk *nsblk)
 {
        struct device *dev = &nsblk->common.dev;
        resource_size_t available_disk_size;
-       struct request_queue *q;
        struct gendisk *disk;
        u64 internal_nlba;
 
        internal_nlba = div_u64(nsblk->size, nsblk_internal_lbasize(nsblk));
        available_disk_size = internal_nlba * nsblk_sector_size(nsblk);
 
-       q = blk_alloc_queue(NUMA_NO_NODE);
-       if (!q)
-               return -ENOMEM;
-       if (devm_add_action_or_reset(dev, nd_blk_release_queue, q))
-               return -ENOMEM;
-
-       blk_queue_max_hw_sectors(q, UINT_MAX);
-       blk_queue_logical_block_size(q, nsblk_sector_size(nsblk));
-       blk_queue_flag_set(QUEUE_FLAG_NONROT, q);
-
-       disk = alloc_disk(0);
+       disk = blk_alloc_disk(NUMA_NO_NODE);
        if (!disk)
                return -ENOMEM;
 
-       disk->first_minor       = 0;
        disk->fops              = &nd_blk_fops;
-       disk->queue             = q;
        disk->private_data      = nsblk;
        nvdimm_namespace_disk_name(&nsblk->common, disk->disk_name);
 
+       blk_queue_max_hw_sectors(disk->queue, UINT_MAX);
+       blk_queue_logical_block_size(disk->queue, nsblk_sector_size(nsblk));
+       blk_queue_flag_set(QUEUE_FLAG_NONROT, disk->queue);
+
        if (devm_add_action_or_reset(dev, nd_blk_release_disk, disk))
                return -ENOMEM;