diff options
| author | Jan Kara <[email protected]> | 2023-09-27 11:34:26 +0200 | 
|---|---|---|
| committer | Christian Brauner <[email protected]> | 2023-10-28 13:29:20 +0200 | 
| commit | 86ec15d00bf85801bda57b5d181a2978f828a8cf (patch) | |
| tree | 54fa7c1324e375622ef4230a673cefb4fe413f29 /fs/btrfs/dev-replace.c | |
| parent | f4a48bc36cdfae7c603e8e3f2a51e2a283f3f365 (diff) | |
btrfs: Convert to bdev_open_by_path()
Convert btrfs to use bdev_open_by_path() and pass the handle around.  We
also drop the holder from struct btrfs_device as it is now not needed
anymore.
CC: David Sterba <[email protected]>
CC: [email protected]
Acked-by: Christoph Hellwig <[email protected]>
Reviewed-by: Christian Brauner <[email protected]>
Signed-off-by: Jan Kara <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Christian Brauner <[email protected]>
Diffstat (limited to 'fs/btrfs/dev-replace.c')
| -rw-r--r-- | fs/btrfs/dev-replace.c | 14 | 
1 files changed, 8 insertions, 6 deletions
| diff --git a/fs/btrfs/dev-replace.c b/fs/btrfs/dev-replace.c index fff22ed55c42..6b5b6cec13c4 100644 --- a/fs/btrfs/dev-replace.c +++ b/fs/btrfs/dev-replace.c @@ -247,6 +247,7 @@ static int btrfs_init_dev_replace_tgtdev(struct btrfs_fs_info *fs_info,  {  	struct btrfs_fs_devices *fs_devices = fs_info->fs_devices;  	struct btrfs_device *device; +	struct bdev_handle *bdev_handle;  	struct block_device *bdev;  	u64 devid = BTRFS_DEV_REPLACE_DEVID;  	int ret = 0; @@ -257,12 +258,13 @@ static int btrfs_init_dev_replace_tgtdev(struct btrfs_fs_info *fs_info,  		return -EINVAL;  	} -	bdev = blkdev_get_by_path(device_path, BLK_OPEN_WRITE, -				  fs_info->bdev_holder, NULL); -	if (IS_ERR(bdev)) { +	bdev_handle = bdev_open_by_path(device_path, BLK_OPEN_WRITE, +					fs_info->bdev_holder, NULL); +	if (IS_ERR(bdev_handle)) {  		btrfs_err(fs_info, "target device %s is invalid!", device_path); -		return PTR_ERR(bdev); +		return PTR_ERR(bdev_handle);  	} +	bdev = bdev_handle->bdev;  	if (!btrfs_check_device_zone_type(fs_info, bdev)) {  		btrfs_err(fs_info, @@ -313,9 +315,9 @@ static int btrfs_init_dev_replace_tgtdev(struct btrfs_fs_info *fs_info,  	device->commit_bytes_used = device->bytes_used;  	device->fs_info = fs_info;  	device->bdev = bdev; +	device->bdev_handle = bdev_handle;  	set_bit(BTRFS_DEV_STATE_IN_FS_METADATA, &device->dev_state);  	set_bit(BTRFS_DEV_STATE_REPLACE_TGT, &device->dev_state); -	device->holder = fs_info->bdev_holder;  	device->dev_stats_valid = 1;  	set_blocksize(device->bdev, BTRFS_BDEV_BLOCKSIZE);  	device->fs_devices = fs_devices; @@ -334,7 +336,7 @@ static int btrfs_init_dev_replace_tgtdev(struct btrfs_fs_info *fs_info,  	return 0;  error: -	blkdev_put(bdev, fs_info->bdev_holder); +	bdev_release(bdev_handle);  	return ret;  } |