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

index 1741a7b0b30f6b8e3828843a92d73f0a6cc384ba..92dec49522972fb0ad3486417be6ce66dd3d23c6 100644 (file)
@@ -1521,34 +1521,25 @@ static int btt_blk_init(struct btt *btt)
        struct nd_btt *nd_btt = btt->nd_btt;
        struct nd_namespace_common *ndns = nd_btt->ndns;
 
-       /* create a new disk and request queue for btt */
-       btt->btt_queue = blk_alloc_queue(NUMA_NO_NODE);
-       if (!btt->btt_queue)
+       btt->btt_disk = blk_alloc_disk(NUMA_NO_NODE);
+       if (!btt->btt_disk)
                return -ENOMEM;
 
-       btt->btt_disk = alloc_disk(0);
-       if (!btt->btt_disk) {
-               blk_cleanup_queue(btt->btt_queue);
-               return -ENOMEM;
-       }
-
        nvdimm_namespace_disk_name(ndns, btt->btt_disk->disk_name);
        btt->btt_disk->first_minor = 0;
        btt->btt_disk->fops = &btt_fops;
        btt->btt_disk->private_data = btt;
-       btt->btt_disk->queue = btt->btt_queue;
 
-       blk_queue_logical_block_size(btt->btt_queue, btt->sector_size);
-       blk_queue_max_hw_sectors(btt->btt_queue, UINT_MAX);
-       blk_queue_flag_set(QUEUE_FLAG_NONROT, btt->btt_queue);
+       blk_queue_logical_block_size(btt->btt_disk->queue, btt->sector_size);
+       blk_queue_max_hw_sectors(btt->btt_disk->queue, UINT_MAX);
+       blk_queue_flag_set(QUEUE_FLAG_NONROT, btt->btt_disk->queue);
 
        if (btt_meta_size(btt)) {
                int rc = nd_integrity_init(btt->btt_disk, btt_meta_size(btt));
 
                if (rc) {
                        del_gendisk(btt->btt_disk);
-                       put_disk(btt->btt_disk);
-                       blk_cleanup_queue(btt->btt_queue);
+                       blk_cleanup_disk(btt->btt_disk);
                        return rc;
                }
        }
@@ -1563,8 +1554,7 @@ static int btt_blk_init(struct btt *btt)
 static void btt_blk_cleanup(struct btt *btt)
 {
        del_gendisk(btt->btt_disk);
-       put_disk(btt->btt_disk);
-       blk_cleanup_queue(btt->btt_queue);
+       blk_cleanup_disk(btt->btt_disk);
 }
 
 /**
index aa53e0b769bd376861031b92271e0022f6b60bbf..0c76c0333f6e8a452623f104fa5afdab6ce0b503 100644 (file)
@@ -201,7 +201,6 @@ struct badblocks;
 /**
  * struct btt - handle for a BTT instance
  * @btt_disk:          Pointer to the gendisk for BTT device
- * @btt_queue:         Pointer to the request queue for the BTT device
  * @arena_list:                Head of the list of arenas
  * @debugfs_dir:       Debugfs dentry
  * @nd_btt:            Parent nd_btt struct
@@ -219,7 +218,6 @@ struct badblocks;
  */
 struct btt {
        struct gendisk *btt_disk;
-       struct request_queue *btt_queue;
        struct list_head arena_list;
        struct dentry *debugfs_dir;
        struct nd_btt *nd_btt;