summaryrefslogtreecommitdiff
path: root/fs/btrfs/volumes.c
diff options
context:
space:
mode:
authorAnand Jain <anand.jain@oracle.com>2019-01-17 23:32:29 +0800
committerDavid Sterba <dsterba@suse.com>2019-02-25 14:13:23 +0100
commit6e927cebe250f206ecb51020fa7caa012cf1fba9 (patch)
treefb2fc0e9e377aea0e966e637e28da59c3af79506 /fs/btrfs/volumes.c
parentd95a830c78adb53058b86e0cb7df98dc0b874d43 (diff)
btrfs: cleanup btrfs_find_device_by_devspec()
btrfs_find_device_by_devspec() finds the device by @devid or by @device_path. This patch makes code flow easy to read by open coding the else part and renames devpath to device_path. Signed-off-by: Anand Jain <anand.jain@oracle.com> Reviewed-by: David Sterba <dsterba@suse.com> Signed-off-by: David Sterba <dsterba@suse.com>
Diffstat (limited to 'fs/btrfs/volumes.c')
-rw-r--r--fs/btrfs/volumes.c35
1 files changed, 18 insertions, 17 deletions
diff --git a/fs/btrfs/volumes.c b/fs/btrfs/volumes.c
index 61432eefb1dc..e4be0f679460 100644
--- a/fs/btrfs/volumes.c
+++ b/fs/btrfs/volumes.c
@@ -2402,7 +2402,8 @@ static struct btrfs_device *btrfs_find_device_by_path(
* Lookup a device given by device id, or the path if the id is 0.
*/
struct btrfs_device *btrfs_find_device_by_devspec(
- struct btrfs_fs_info *fs_info, u64 devid, const char *devpath)
+ struct btrfs_fs_info *fs_info, u64 devid,
+ const char *device_path)
{
struct btrfs_device *device;
@@ -2410,24 +2411,24 @@ struct btrfs_device *btrfs_find_device_by_devspec(
device = btrfs_find_device(fs_info, devid, NULL, NULL);
if (!device)
return ERR_PTR(-ENOENT);
- } else {
- if (!devpath || !devpath[0])
- return ERR_PTR(-EINVAL);
-
- if (strcmp(devpath, "missing") == 0) {
- list_for_each_entry(device, &fs_info->fs_devices->devices,
- dev_list) {
- if (test_bit(BTRFS_DEV_STATE_IN_FS_METADATA,
- &device->dev_state) &&
- !device->bdev)
- return device;
- }
- return ERR_PTR(-ENOENT);
- } else {
- device = btrfs_find_device_by_path(fs_info, devpath);
+ return device;
+ }
+
+ if (!device_path || !device_path[0])
+ return ERR_PTR(-EINVAL);
+
+ if (strcmp(device_path, "missing") == 0) {
+ /* Find first missing device */
+ list_for_each_entry(device, &fs_info->fs_devices->devices,
+ dev_list) {
+ if (test_bit(BTRFS_DEV_STATE_IN_FS_METADATA,
+ &device->dev_state) && !device->bdev)
+ return device;
}
+ return ERR_PTR(-ENOENT);
}
- return device;
+
+ return btrfs_find_device_by_path(fs_info, device_path);
}
/*