]> git.proxmox.com Git - mirror_ubuntu-jammy-kernel.git/commitdiff
nvme: factor out nvme_ns_open and nvme_ns_release helpers
authorChristoph Hellwig <hch@lst.de>
Wed, 7 Apr 2021 12:36:47 +0000 (14:36 +0200)
committerChristoph Hellwig <hch@lst.de>
Thu, 15 Apr 2021 06:12:55 +0000 (08:12 +0200)
These will be reused for the per-namespace character devices.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Keith Busch <kbusch@kernel.org>
Reviewed-by: Javier González <javier.gonz@samsung.com>
Reviewed-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
drivers/nvme/host/core.c

index b1f8d94bbe09757bc2e2e35044207d6e3e79306f..ded60d50fc564f7b1b9c054e5de9d3c6f355a25b 100644 (file)
@@ -1483,9 +1483,8 @@ void nvme_put_ns_from_disk(struct nvme_ns_head *head, int idx)
                srcu_read_unlock(&head->srcu, idx);
 }
 
-static int nvme_open(struct block_device *bdev, fmode_t mode)
+static int nvme_ns_open(struct nvme_ns *ns)
 {
-       struct nvme_ns *ns = bdev->bd_disk->private_data;
 
        /* should never be called due to GENHD_FL_HIDDEN */
        if (WARN_ON_ONCE(nvme_ns_head_multipath(ns->head)))
@@ -1503,14 +1502,23 @@ fail:
        return -ENXIO;
 }
 
-static void nvme_release(struct gendisk *disk, fmode_t mode)
+static void nvme_ns_release(struct nvme_ns *ns)
 {
-       struct nvme_ns *ns = disk->private_data;
 
        module_put(ns->ctrl->ops->module);
        nvme_put_ns(ns);
 }
 
+static int nvme_open(struct block_device *bdev, fmode_t mode)
+{
+       return nvme_ns_open(bdev->bd_disk->private_data);
+}
+
+static void nvme_release(struct gendisk *disk, fmode_t mode)
+{
+       nvme_ns_release(disk->private_data);
+}
+
 int nvme_getgeo(struct block_device *bdev, struct hd_geometry *geo)
 {
        /* some standard values */