Commit 30b0e4e0 authored by Anand Jain's avatar Anand Jain Committed by David Sterba

btrfs: initialize sysfs devid and device link for seed device

We don't initialize the sysfs devid kobject and device-link yet for the
seed devices in an sprouted filesystem.
So this patch initializes the seed device devid kobject and the device
link in the sysfs.
Signed-off-by: default avatarAnand Jain <anand.jain@oracle.com>
Signed-off-by: default avatarDavid Sterba <dsterba@suse.com>
parent 53f8a74c
...@@ -975,9 +975,15 @@ void btrfs_sysfs_remove_fsid(struct btrfs_fs_devices *fs_devs) ...@@ -975,9 +975,15 @@ void btrfs_sysfs_remove_fsid(struct btrfs_fs_devices *fs_devs)
static void btrfs_sysfs_remove_fs_devices(struct btrfs_fs_devices *fs_devices) static void btrfs_sysfs_remove_fs_devices(struct btrfs_fs_devices *fs_devices)
{ {
struct btrfs_device *device; struct btrfs_device *device;
struct btrfs_fs_devices *seed;
list_for_each_entry(device, &fs_devices->devices, dev_list) list_for_each_entry(device, &fs_devices->devices, dev_list)
btrfs_sysfs_remove_device(device); btrfs_sysfs_remove_device(device);
list_for_each_entry(seed, &fs_devices->seed_list, seed_list) {
list_for_each_entry(device, &seed->devices, dev_list)
btrfs_sysfs_remove_device(device);
}
} }
void btrfs_sysfs_remove_mounted(struct btrfs_fs_info *fs_info) void btrfs_sysfs_remove_mounted(struct btrfs_fs_info *fs_info)
...@@ -1351,6 +1357,7 @@ static int btrfs_sysfs_add_fs_devices(struct btrfs_fs_devices *fs_devices) ...@@ -1351,6 +1357,7 @@ static int btrfs_sysfs_add_fs_devices(struct btrfs_fs_devices *fs_devices)
{ {
int ret; int ret;
struct btrfs_device *device; struct btrfs_device *device;
struct btrfs_fs_devices *seed;
list_for_each_entry(device, &fs_devices->devices, dev_list) { list_for_each_entry(device, &fs_devices->devices, dev_list) {
ret = btrfs_sysfs_add_device(device); ret = btrfs_sysfs_add_device(device);
...@@ -1358,6 +1365,14 @@ static int btrfs_sysfs_add_fs_devices(struct btrfs_fs_devices *fs_devices) ...@@ -1358,6 +1365,14 @@ static int btrfs_sysfs_add_fs_devices(struct btrfs_fs_devices *fs_devices)
return ret; return ret;
} }
list_for_each_entry(seed, &fs_devices->seed_list, seed_list) {
list_for_each_entry(device, &seed->devices, dev_list) {
ret = btrfs_sysfs_add_device(device);
if (ret)
return ret;
}
}
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