mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-07 18:37:58 -04:00
nvme: factor out nvme_ns_open and nvme_ns_release helpers
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>
This commit is contained in:
@@ -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 @@ static int nvme_open(struct block_device *bdev, fmode_t mode)
|
||||
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 */
|
||||
|
||||
Reference in New Issue
Block a user