Commit 603106af authored by Jan Kara's avatar Jan Kara Committed by Li Lingfeng
Browse files

block: Remove blkdev_get_by_*() functions

community inclusion
category: feature
bugzilla: https://gitee.com/openeuler/kernel/issues/I8KPBR
Reference: https://lore.kernel.org/all/20230927093442.25915-29-jack@suse.cz/



-------------------------------------------

blkdev_get_by_*() and blkdev_put() functions are now unused. Remove
them.

Acked-by: default avatarChristoph Hellwig <hch@lst.de>
Signed-off-by: default avatarJan Kara <jack@suse.cz>
Link: https://lore.kernel.org/r/20231101174325.10596-2-jack@suse.cz


Reviewed-by: default avatarChristian Brauner <brauner@kernel.org>
Reviewed-by: default avatarJens Axboe <axboe@kernel.dk>
Signed-off-by: default avatarChristian Brauner <brauner@kernel.org>
Signed-off-by: default avatarLi Lingfeng <lilingfeng3@huawei.com>
parent b7837a71
Loading
Loading
Loading
Loading
+30 −64
Original line number Diff line number Diff line
@@ -729,7 +729,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
@@ -741,32 +741,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,
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) {
@@ -815,7 +823,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:
@@ -825,34 +836,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);
	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)) {
free_handle:
	kfree(handle);
		return ERR_CAST(bdev);
	}
	handle->bdev = bdev;
	handle->holder = holder;
	if (holder)
		mode |= BLK_OPEN_EXCL;
	handle->mode = mode;
	return handle;
	return ERR_PTR(ret);
}
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
@@ -866,29 +857,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)
{
@@ -911,8 +882,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;

	/*
@@ -926,8 +898,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
@@ -944,12 +916,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);
+0 −5
Original line number Diff line number Diff line
@@ -1485,10 +1485,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,
@@ -1496,7 +1492,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 */