]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
nvme: port block device access to file
authorChristian Brauner <brauner@kernel.org>
Tue, 23 Jan 2024 13:26:32 +0000 (14:26 +0100)
committerChristian Brauner <brauner@kernel.org>
Sun, 25 Feb 2024 11:05:24 +0000 (12:05 +0100)
Link: https://lore.kernel.org/r/20240123-vfs-bdev-file-v2-15-adbd023e19cc@kernel.org
Reviewed-by: Jan Kara <jack@suse.cz>
Signed-off-by: Christian Brauner <brauner@kernel.org>
drivers/nvme/target/io-cmd-bdev.c
drivers/nvme/target/nvmet.h

index f11400a908f269f74138226079d3000f648f73b3..6426aac2634aeb501c673852d6eb99a79a437de4 100644 (file)
@@ -50,10 +50,10 @@ void nvmet_bdev_set_limits(struct block_device *bdev, struct nvme_id_ns *id)
 
 void nvmet_bdev_ns_disable(struct nvmet_ns *ns)
 {
-       if (ns->bdev_handle) {
-               bdev_release(ns->bdev_handle);
+       if (ns->bdev_file) {
+               fput(ns->bdev_file);
                ns->bdev = NULL;
-               ns->bdev_handle = NULL;
+               ns->bdev_file = NULL;
        }
 }
 
@@ -85,18 +85,18 @@ int nvmet_bdev_ns_enable(struct nvmet_ns *ns)
        if (ns->buffered_io)
                return -ENOTBLK;
 
-       ns->bdev_handle = bdev_open_by_path(ns->device_path,
+       ns->bdev_file = bdev_file_open_by_path(ns->device_path,
                                BLK_OPEN_READ | BLK_OPEN_WRITE, NULL, NULL);
-       if (IS_ERR(ns->bdev_handle)) {
-               ret = PTR_ERR(ns->bdev_handle);
+       if (IS_ERR(ns->bdev_file)) {
+               ret = PTR_ERR(ns->bdev_file);
                if (ret != -ENOTBLK) {
                        pr_err("failed to open block device %s: (%d)\n",
                                        ns->device_path, ret);
                }
-               ns->bdev_handle = NULL;
+               ns->bdev_file = NULL;
                return ret;
        }
-       ns->bdev = ns->bdev_handle->bdev;
+       ns->bdev = file_bdev(ns->bdev_file);
        ns->size = bdev_nr_bytes(ns->bdev);
        ns->blksize_shift = blksize_bits(bdev_logical_block_size(ns->bdev));
 
index 6c8acebe1a1a61b8742d892c1ba2f7eb5d1e9364..33e61b4f478b9acd75b3606d2f4be98f9ec17097 100644 (file)
@@ -58,7 +58,7 @@
 
 struct nvmet_ns {
        struct percpu_ref       ref;
-       struct bdev_handle      *bdev_handle;
+       struct file             *bdev_file;
        struct block_device     *bdev;
        struct file             *file;
        bool                    readonly;