Commit bef16b52 authored by Anand Jain's avatar Anand Jain Committed by David Sterba

btrfs: simplify fs_devices member access in btrfs_init_dev_replace_tgtdev

In btrfs_init_dev_replace_tgtdev() we dereference fs_info to get
fs_devices many times, instead save a point to the fs_devices.
Signed-off-by: default avatarAnand Jain <anand.jain@oracle.com>
Reviewed-by: default avatarDavid Sterba <dsterba@suse.com>
Signed-off-by: default avatarDavid Sterba <dsterba@suse.com>
parent 9ad12305
...@@ -243,6 +243,7 @@ static int btrfs_init_dev_replace_tgtdev(struct btrfs_fs_info *fs_info, ...@@ -243,6 +243,7 @@ static int btrfs_init_dev_replace_tgtdev(struct btrfs_fs_info *fs_info,
struct btrfs_device *srcdev, struct btrfs_device *srcdev,
struct btrfs_device **device_out) struct btrfs_device **device_out)
{ {
struct btrfs_fs_devices *fs_devices = fs_info->fs_devices;
struct btrfs_device *device; struct btrfs_device *device;
struct block_device *bdev; struct block_device *bdev;
struct rcu_string *name; struct rcu_string *name;
...@@ -271,7 +272,7 @@ static int btrfs_init_dev_replace_tgtdev(struct btrfs_fs_info *fs_info, ...@@ -271,7 +272,7 @@ static int btrfs_init_dev_replace_tgtdev(struct btrfs_fs_info *fs_info,
sync_blockdev(bdev); sync_blockdev(bdev);
list_for_each_entry(device, &fs_info->fs_devices->devices, dev_list) { list_for_each_entry(device, &fs_devices->devices, dev_list) {
if (device->bdev == bdev) { if (device->bdev == bdev) {
btrfs_err(fs_info, btrfs_err(fs_info,
"target device is in the filesystem!"); "target device is in the filesystem!");
...@@ -320,17 +321,17 @@ static int btrfs_init_dev_replace_tgtdev(struct btrfs_fs_info *fs_info, ...@@ -320,17 +321,17 @@ static int btrfs_init_dev_replace_tgtdev(struct btrfs_fs_info *fs_info,
device->mode = FMODE_EXCL; device->mode = FMODE_EXCL;
device->dev_stats_valid = 1; device->dev_stats_valid = 1;
set_blocksize(device->bdev, BTRFS_BDEV_BLOCKSIZE); set_blocksize(device->bdev, BTRFS_BDEV_BLOCKSIZE);
device->fs_devices = fs_info->fs_devices; device->fs_devices = fs_devices;
ret = btrfs_get_dev_zone_info(device, false); ret = btrfs_get_dev_zone_info(device, false);
if (ret) if (ret)
goto error; goto error;
mutex_lock(&fs_info->fs_devices->device_list_mutex); mutex_lock(&fs_devices->device_list_mutex);
list_add(&device->dev_list, &fs_info->fs_devices->devices); list_add(&device->dev_list, &fs_devices->devices);
fs_info->fs_devices->num_devices++; fs_devices->num_devices++;
fs_info->fs_devices->open_devices++; fs_devices->open_devices++;
mutex_unlock(&fs_info->fs_devices->device_list_mutex); mutex_unlock(&fs_devices->device_list_mutex);
*device_out = device; *device_out = device;
return 0; return 0;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment