|
@@ -152,7 +152,15 @@ struct list_head *btrfs_get_fs_uuids(void)
|
|
|
return &fs_uuids;
|
|
|
}
|
|
|
|
|
|
-static struct btrfs_fs_devices *__alloc_fs_devices(void)
|
|
|
+/*
|
|
|
+ * alloc_fs_devices - allocate struct btrfs_fs_devices
|
|
|
+ * @fsid: if not NULL, copy the uuid to fs_devices::fsid
|
|
|
+ *
|
|
|
+ * Return a pointer to a new struct btrfs_fs_devices on success, or ERR_PTR().
|
|
|
+ * The returned struct is not linked onto any lists and can be destroyed with
|
|
|
+ * kfree() right away.
|
|
|
+ */
|
|
|
+static struct btrfs_fs_devices *alloc_fs_devices(const u8 *fsid)
|
|
|
{
|
|
|
struct btrfs_fs_devices *fs_devs;
|
|
|
|
|
@@ -166,31 +174,8 @@ static struct btrfs_fs_devices *__alloc_fs_devices(void)
|
|
|
INIT_LIST_HEAD(&fs_devs->resized_devices);
|
|
|
INIT_LIST_HEAD(&fs_devs->alloc_list);
|
|
|
INIT_LIST_HEAD(&fs_devs->list);
|
|
|
-
|
|
|
- return fs_devs;
|
|
|
-}
|
|
|
-
|
|
|
-/**
|
|
|
- * alloc_fs_devices - allocate struct btrfs_fs_devices
|
|
|
- * @fsid: a pointer to UUID for this FS. If NULL a new UUID is
|
|
|
- * generated.
|
|
|
- *
|
|
|
- * Return: a pointer to a new &struct btrfs_fs_devices on success;
|
|
|
- * ERR_PTR() on error. Returned struct is not linked onto any lists and
|
|
|
- * can be destroyed with kfree() right away.
|
|
|
- */
|
|
|
-static struct btrfs_fs_devices *alloc_fs_devices(const u8 *fsid)
|
|
|
-{
|
|
|
- struct btrfs_fs_devices *fs_devs;
|
|
|
-
|
|
|
- fs_devs = __alloc_fs_devices();
|
|
|
- if (IS_ERR(fs_devs))
|
|
|
- return fs_devs;
|
|
|
-
|
|
|
if (fsid)
|
|
|
memcpy(fs_devs->fsid, fsid, BTRFS_FSID_SIZE);
|
|
|
- else
|
|
|
- generate_random_uuid(fs_devs->fsid);
|
|
|
|
|
|
return fs_devs;
|
|
|
}
|
|
@@ -2197,7 +2182,7 @@ static int btrfs_prepare_sprout(struct btrfs_fs_info *fs_info)
|
|
|
if (!fs_devices->seeding)
|
|
|
return -EINVAL;
|
|
|
|
|
|
- seed_devices = __alloc_fs_devices();
|
|
|
+ seed_devices = alloc_fs_devices(NULL);
|
|
|
if (IS_ERR(seed_devices))
|
|
|
return PTR_ERR(seed_devices);
|
|
|
|
|
@@ -6522,6 +6507,7 @@ static struct btrfs_fs_devices *open_seed_devices(struct btrfs_fs_info *fs_info,
|
|
|
int ret;
|
|
|
|
|
|
BUG_ON(!mutex_is_locked(&uuid_mutex));
|
|
|
+ ASSERT(fsid);
|
|
|
|
|
|
fs_devices = fs_info->fs_devices->seed;
|
|
|
while (fs_devices) {
|