Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d95a830c authored by Anand Jain's avatar Anand Jain Committed by David Sterba
Browse files

btrfs: merge btrfs_find_device_missing_or_by_path() into parent



btrfs_find_device_missing_or_by_path() is relatively small function, and
its only parent btrfs_find_device_by_devspec() is small as well. Besides
there are a number of find_device functions. Merge
btrfs_find_device_missing_or_by_path() into its parent.

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 02a033df
Loading
Loading
Loading
Loading
+13 −27
Original line number Diff line number Diff line
@@ -2398,32 +2398,6 @@ static struct btrfs_device *btrfs_find_device_by_path(
	return device;
}

static struct btrfs_device *btrfs_find_device_missing_or_by_path(
		struct btrfs_fs_info *fs_info, const char *device_path)
{
	struct btrfs_device *device = NULL;
	if (strcmp(device_path, "missing") == 0) {
		struct list_head *devices;
		struct btrfs_device *tmp;

		devices = &fs_info->fs_devices->devices;
		list_for_each_entry(tmp, devices, dev_list) {
			if (test_bit(BTRFS_DEV_STATE_IN_FS_METADATA,
					&tmp->dev_state) && !tmp->bdev) {
				device = tmp;
				break;
			}
		}

		if (!device)
			return ERR_PTR(-ENOENT);
	} else {
		device = btrfs_find_device_by_path(fs_info, device_path);
	}

	return device;
}

/*
 * Lookup a device given by device id, or the path if the id is 0.
 */
@@ -2439,7 +2413,19 @@ struct btrfs_device *btrfs_find_device_by_devspec(
	} else {
		if (!devpath || !devpath[0])
			return ERR_PTR(-EINVAL);
		device = btrfs_find_device_missing_or_by_path(fs_info, devpath);

		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;
}