block: Remove blkdev_get_by_*() functions
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>
This commit is contained in:
parent
1bfdc94b28
commit
cd34758c52
94
block/bdev.c
94
block/bdev.c
|
@ -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
|
* @dev: device number of block device to open
|
||||||
* @mode: open mode (BLK_OPEN_*)
|
* @mode: open mode (BLK_OPEN_*)
|
||||||
* @holder: exclusive holder identifier
|
* @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
|
* 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
|
* 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:
|
* CONTEXT:
|
||||||
* Might sleep.
|
* Might sleep.
|
||||||
*
|
*
|
||||||
* RETURNS:
|
* 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)
|
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;
|
struct block_device *bdev;
|
||||||
|
bool unblock_events = true;
|
||||||
struct gendisk *disk;
|
struct gendisk *disk;
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
|
if (!handle)
|
||||||
|
return ERR_PTR(-ENOMEM);
|
||||||
|
|
||||||
ret = devcgroup_check_permission(DEVCG_DEV_BLOCK,
|
ret = devcgroup_check_permission(DEVCG_DEV_BLOCK,
|
||||||
MAJOR(dev), MINOR(dev),
|
MAJOR(dev), MINOR(dev),
|
||||||
((mode & BLK_OPEN_READ) ? DEVCG_ACC_READ : 0) |
|
((mode & BLK_OPEN_READ) ? DEVCG_ACC_READ : 0) |
|
||||||
((mode & BLK_OPEN_WRITE) ? DEVCG_ACC_WRITE : 0));
|
((mode & BLK_OPEN_WRITE) ? DEVCG_ACC_WRITE : 0));
|
||||||
if (ret)
|
if (ret)
|
||||||
return ERR_PTR(ret);
|
goto free_handle;
|
||||||
|
|
||||||
bdev = blkdev_get_no_open(dev);
|
bdev = blkdev_get_no_open(dev);
|
||||||
if (!bdev)
|
if (!bdev) {
|
||||||
return ERR_PTR(-ENXIO);
|
ret = -ENXIO;
|
||||||
|
goto free_handle;
|
||||||
|
}
|
||||||
disk = bdev->bd_disk;
|
disk = bdev->bd_disk;
|
||||||
|
|
||||||
if (holder) {
|
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)
|
if (unblock_events)
|
||||||
disk_unblock_events(disk);
|
disk_unblock_events(disk);
|
||||||
return bdev;
|
handle->bdev = bdev;
|
||||||
|
handle->holder = holder;
|
||||||
|
handle->mode = mode;
|
||||||
|
return handle;
|
||||||
put_module:
|
put_module:
|
||||||
module_put(disk->fops->owner);
|
module_put(disk->fops->owner);
|
||||||
abort_claiming:
|
abort_claiming:
|
||||||
|
@ -828,34 +839,14 @@ abort_claiming:
|
||||||
disk_unblock_events(disk);
|
disk_unblock_events(disk);
|
||||||
put_blkdev:
|
put_blkdev:
|
||||||
blkdev_put_no_open(bdev);
|
blkdev_put_no_open(bdev);
|
||||||
|
free_handle:
|
||||||
|
kfree(handle);
|
||||||
return ERR_PTR(ret);
|
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);
|
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
|
* @path: path to the block device to open
|
||||||
* @mode: open mode (BLK_OPEN_*)
|
* @mode: open mode (BLK_OPEN_*)
|
||||||
* @holder: exclusive holder identifier
|
* @holder: exclusive holder identifier
|
||||||
|
@ -869,29 +860,9 @@ EXPORT_SYMBOL(bdev_open_by_dev);
|
||||||
* Might sleep.
|
* Might sleep.
|
||||||
*
|
*
|
||||||
* RETURNS:
|
* 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,
|
struct bdev_handle *bdev_open_by_path(const char *path, blk_mode_t mode,
|
||||||
void *holder, const struct blk_holder_ops *hops)
|
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);
|
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;
|
struct gendisk *disk = bdev->bd_disk;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -929,8 +901,8 @@ void blkdev_put(struct block_device *bdev, void *holder)
|
||||||
sync_blockdev(bdev);
|
sync_blockdev(bdev);
|
||||||
|
|
||||||
mutex_lock(&disk->open_mutex);
|
mutex_lock(&disk->open_mutex);
|
||||||
if (holder)
|
if (handle->holder)
|
||||||
bd_end_claim(bdev, holder);
|
bd_end_claim(bdev, handle->holder);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Trigger event checking and tell drivers to flush MEDIA_CHANGE
|
* 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);
|
module_put(disk->fops->owner);
|
||||||
blkdev_put_no_open(bdev);
|
blkdev_put_no_open(bdev);
|
||||||
}
|
|
||||||
EXPORT_SYMBOL(blkdev_put);
|
|
||||||
|
|
||||||
void bdev_release(struct bdev_handle *handle)
|
|
||||||
{
|
|
||||||
blkdev_put(handle->bdev, handle->holder);
|
|
||||||
kfree(handle);
|
kfree(handle);
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL(bdev_release);
|
EXPORT_SYMBOL(bdev_release);
|
||||||
|
|
|
@ -1500,10 +1500,6 @@ struct bdev_handle {
|
||||||
blk_mode_t mode;
|
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,
|
struct bdev_handle *bdev_open_by_dev(dev_t dev, blk_mode_t mode, void *holder,
|
||||||
const struct blk_holder_ops *hops);
|
const struct blk_holder_ops *hops);
|
||||||
struct bdev_handle *bdev_open_by_path(const char *path, blk_mode_t mode,
|
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,
|
int bd_prepare_to_claim(struct block_device *bdev, void *holder,
|
||||||
const struct blk_holder_ops *hops);
|
const struct blk_holder_ops *hops);
|
||||||
void bd_abort_claiming(struct block_device *bdev, void *holder);
|
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);
|
void bdev_release(struct bdev_handle *handle);
|
||||||
|
|
||||||
/* just for blk-cgroup, don't use elsewhere */
|
/* just for blk-cgroup, don't use elsewhere */
|
||||||
|
|
Loading…
Reference in New Issue