btrfs: use num_device to check for the last surviving seed device
For both sprout and seed fsids, btrfs_fs_devices::num_devices provides device count including missing btrfs_fs_devices::open_devices provides device count excluding missing We create a dummy struct btrfs_device for the missing device, so num_devices != open_devices when there is a missing device. In btrfs_rm_devices() we wrongly check for %cur_devices->open_devices before freeing the seed fs_devices. Instead we should check for %cur_devices->num_devices. Signed-off-by: Anand Jain <anand.jain@oracle.com> Signed-off-by: David Sterba <dsterba@suse.com>
This commit is contained in:
parent
10adb1152d
commit
8e906945c0
|
@ -2211,7 +2211,7 @@ int btrfs_rm_device(struct btrfs_fs_info *fs_info, const char *device_path,
|
|||
synchronize_rcu();
|
||||
btrfs_free_device(device);
|
||||
|
||||
if (cur_devices->open_devices == 0) {
|
||||
if (cur_devices->num_devices == 0) {
|
||||
list_del_init(&cur_devices->seed_list);
|
||||
close_fs_devices(cur_devices);
|
||||
free_fs_devices(cur_devices);
|
||||
|
|
Loading…
Reference in New Issue