]> git.itanic.dy.fi Git - linux-stable/commitdiff
block: Remove blkdev_get_by_*() functions
authorJan Kara <jack@suse.cz>
Wed, 1 Nov 2023 17:43:07 +0000 (18:43 +0100)
committerChristian Brauner <brauner@kernel.org>
Sat, 18 Nov 2023 13:59:25 +0000 (14:59 +0100)
blkdev_get_by_*() and blkdev_put() functions are now unused. Remove
them.

Acked-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Jan Kara <jack@suse.cz>
Link: https://lore.kernel.org/r/20231101174325.10596-2-jack@suse.cz
Reviewed-by: Christian Brauner <brauner@kernel.org>
Reviewed-by: Jens Axboe <axboe@kernel.dk>
Signed-off-by: Christian Brauner <brauner@kernel.org>
block/bdev.c
include/linux/blkdev.h

index 53a2c653a2593f4464b322e7dfe35863804872c9..0daf14e50dd09151bfe668d07e07fbc4e7eef6be 100644 (file)
@@ -732,7 +732,7 @@ void blkdev_put_no_open(struct block_device *bdev)
 }
        
 /**
- * blkdev_get_by_dev - open a block device by device number
+ * bdev_open_by_dev - open a block device by device number
  * @dev: device number of block device to open
  * @mode: open mode (BLK_OPEN_*)
  * @holder: exclusive holder identifier
@@ -744,32 +744,40 @@ void blkdev_put_no_open(struct block_device *bdev)
  *
  * Use this interface ONLY if you really do not have anything better - i.e. when
  * you are behind a truly sucky interface and all you are given is a device
- * number.  Everything else should use blkdev_get_by_path().
+ * number.  Everything else should use bdev_open_by_path().
  *
  * CONTEXT:
  * Might sleep.
  *
  * RETURNS:
- * Reference to the block_device on success, ERR_PTR(-errno) on failure.
+ * Handle with a reference to the block_device on success, ERR_PTR(-errno) on
+ * failure.
  */
-struct block_device *blkdev_get_by_dev(dev_t dev, blk_mode_t mode, void *holder,
-               const struct blk_holder_ops *hops)
+struct bdev_handle *bdev_open_by_dev(dev_t dev, blk_mode_t mode, void *holder,
+                                    const struct blk_holder_ops *hops)
 {
-       bool unblock_events = true;
+       struct bdev_handle *handle = kmalloc(sizeof(struct bdev_handle),
+                                            GFP_KERNEL);
        struct block_device *bdev;
+       bool unblock_events = true;
        struct gendisk *disk;
        int ret;
 
+       if (!handle)
+               return ERR_PTR(-ENOMEM);
+
        ret = devcgroup_check_permission(DEVCG_DEV_BLOCK,
                        MAJOR(dev), MINOR(dev),
                        ((mode & BLK_OPEN_READ) ? DEVCG_ACC_READ : 0) |
                        ((mode & BLK_OPEN_WRITE) ? DEVCG_ACC_WRITE : 0));
        if (ret)
-               return ERR_PTR(ret);
+               goto free_handle;
 
        bdev = blkdev_get_no_open(dev);
-       if (!bdev)
-               return ERR_PTR(-ENXIO);
+       if (!bdev) {
+               ret = -ENXIO;
+               goto free_handle;
+       }
        disk = bdev->bd_disk;
 
        if (holder) {
@@ -818,7 +826,10 @@ struct block_device *blkdev_get_by_dev(dev_t dev, blk_mode_t mode, void *holder,
 
        if (unblock_events)
                disk_unblock_events(disk);
-       return bdev;
+       handle->bdev = bdev;
+       handle->holder = holder;
+       handle->mode = mode;
+       return handle;
 put_module:
        module_put(disk->fops->owner);
 abort_claiming:
@@ -828,34 +839,14 @@ struct block_device *blkdev_get_by_dev(dev_t dev, blk_mode_t mode, void *holder,
        disk_unblock_events(disk);
 put_blkdev:
        blkdev_put_no_open(bdev);
+free_handle:
+       kfree(handle);
        return ERR_PTR(ret);
 }
-EXPORT_SYMBOL(blkdev_get_by_dev);
-
-struct bdev_handle *bdev_open_by_dev(dev_t dev, blk_mode_t mode, void *holder,
-                                    const struct blk_holder_ops *hops)
-{
-       struct bdev_handle *handle = kmalloc(sizeof(*handle), GFP_KERNEL);
-       struct block_device *bdev;
-
-       if (!handle)
-               return ERR_PTR(-ENOMEM);
-       bdev = blkdev_get_by_dev(dev, mode, holder, hops);
-       if (IS_ERR(bdev)) {
-               kfree(handle);
-               return ERR_CAST(bdev);
-       }
-       handle->bdev = bdev;
-       handle->holder = holder;
-       if (holder)
-               mode |= BLK_OPEN_EXCL;
-       handle->mode = mode;
-       return handle;
-}
 EXPORT_SYMBOL(bdev_open_by_dev);
 
 /**
- * blkdev_get_by_path - open a block device by name
+ * bdev_open_by_path - open a block device by name
  * @path: path to the block device to open
  * @mode: open mode (BLK_OPEN_*)
  * @holder: exclusive holder identifier
@@ -869,29 +860,9 @@ EXPORT_SYMBOL(bdev_open_by_dev);
  * Might sleep.
  *
  * RETURNS:
- * Reference to the block_device on success, ERR_PTR(-errno) on failure.
+ * Handle with a reference to the block_device on success, ERR_PTR(-errno) on
+ * failure.
  */
-struct block_device *blkdev_get_by_path(const char *path, blk_mode_t mode,
-               void *holder, const struct blk_holder_ops *hops)
-{
-       struct block_device *bdev;
-       dev_t dev;
-       int error;
-
-       error = lookup_bdev(path, &dev);
-       if (error)
-               return ERR_PTR(error);
-
-       bdev = blkdev_get_by_dev(dev, mode, holder, hops);
-       if (!IS_ERR(bdev) && (mode & BLK_OPEN_WRITE) && bdev_read_only(bdev)) {
-               blkdev_put(bdev, holder);
-               return ERR_PTR(-EACCES);
-       }
-
-       return bdev;
-}
-EXPORT_SYMBOL(blkdev_get_by_path);
-
 struct bdev_handle *bdev_open_by_path(const char *path, blk_mode_t mode,
                void *holder, const struct blk_holder_ops *hops)
 {
@@ -914,8 +885,9 @@ struct bdev_handle *bdev_open_by_path(const char *path, blk_mode_t mode,
 }
 EXPORT_SYMBOL(bdev_open_by_path);
 
-void blkdev_put(struct block_device *bdev, void *holder)
+void bdev_release(struct bdev_handle *handle)
 {
+       struct block_device *bdev = handle->bdev;
        struct gendisk *disk = bdev->bd_disk;
 
        /*
@@ -929,8 +901,8 @@ void blkdev_put(struct block_device *bdev, void *holder)
                sync_blockdev(bdev);
 
        mutex_lock(&disk->open_mutex);
-       if (holder)
-               bd_end_claim(bdev, holder);
+       if (handle->holder)
+               bd_end_claim(bdev, handle->holder);
 
        /*
         * Trigger event checking and tell drivers to flush MEDIA_CHANGE
@@ -947,12 +919,6 @@ void blkdev_put(struct block_device *bdev, void *holder)
 
        module_put(disk->fops->owner);
        blkdev_put_no_open(bdev);
-}
-EXPORT_SYMBOL(blkdev_put);
-
-void bdev_release(struct bdev_handle *handle)
-{
-       blkdev_put(handle->bdev, handle->holder);
        kfree(handle);
 }
 EXPORT_SYMBOL(bdev_release);
index abf71cce785c28b53046893845d5fd6a56a5d585..7afc10315dd5a3e83108576bd19f177b8483a007 100644 (file)
@@ -1500,10 +1500,6 @@ struct bdev_handle {
        blk_mode_t mode;
 };
 
-struct block_device *blkdev_get_by_dev(dev_t dev, blk_mode_t mode, void *holder,
-               const struct blk_holder_ops *hops);
-struct block_device *blkdev_get_by_path(const char *path, blk_mode_t mode,
-               void *holder, const struct blk_holder_ops *hops);
 struct bdev_handle *bdev_open_by_dev(dev_t dev, blk_mode_t mode, void *holder,
                const struct blk_holder_ops *hops);
 struct bdev_handle *bdev_open_by_path(const char *path, blk_mode_t mode,
@@ -1511,7 +1507,6 @@ struct bdev_handle *bdev_open_by_path(const char *path, blk_mode_t mode,
 int bd_prepare_to_claim(struct block_device *bdev, void *holder,
                const struct blk_holder_ops *hops);
 void bd_abort_claiming(struct block_device *bdev, void *holder);
-void blkdev_put(struct block_device *bdev, void *holder);
 void bdev_release(struct bdev_handle *handle);
 
 /* just for blk-cgroup, don't use elsewhere */