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

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

Btrfs: sysfs: separate device kobject and its attribute creation



Separate device kobject and its attribute creation so that device
kobject can be created from the device discovery thread.

Signed-off-by: default avatarAnand Jain <anand.jain@oracle.com>
Signed-off-by: default avatarDavid Sterba <dsterba@suse.cz>
parent 0dd2906f
Loading
Loading
Loading
Loading
+15 −6
Original line number Diff line number Diff line
@@ -645,13 +645,8 @@ int btrfs_kobj_rm_device(struct btrfs_fs_info *fs_info,
	return 0;
}

int btrfs_kobj_add_device(struct btrfs_fs_info *fs_info,
		struct btrfs_device *one_device)
int btrfs_sysfs_add_device(struct btrfs_fs_info *fs_info)
{
	int error = 0;
	struct btrfs_fs_devices *fs_devices = fs_info->fs_devices;
	struct btrfs_device *dev;

	if (!fs_info->device_dir_kobj)
		fs_info->device_dir_kobj = kobject_create_and_add("devices",
						&fs_info->super_kobj);
@@ -659,6 +654,20 @@ int btrfs_kobj_add_device(struct btrfs_fs_info *fs_info,
	if (!fs_info->device_dir_kobj)
		return -ENOMEM;

	return 0;
}

int btrfs_kobj_add_device(struct btrfs_fs_info *fs_info,
		struct btrfs_device *one_device)
{
	int error = 0;
	struct btrfs_fs_devices *fs_devices = fs_info->fs_devices;
	struct btrfs_device *dev;

	error = btrfs_sysfs_add_device(fs_info);
	if (error)
		return error;

	list_for_each_entry(dev, &fs_devices->devices, dev_list) {
		struct hd_struct *disk;
		struct kobject *disk_kobj;