btrfs: use num_device to check for the last surviving seed device
authorAnand Jain <anand.jain@oracle.com>
Tue, 5 Oct 2021 20:12:39 +0000 (16:12 -0400)
committerDavid Sterba <dsterba@suse.com>
Tue, 26 Oct 2021 17:08:06 +0000 (19:08 +0200)
commit8e906945c069fbc9377f2748a661ac06d039ea77
treee41d6cc6164117fc9f0424362941d63229826bca
parent10adb1152d957a4d570ad630f93a88bb961616c1
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>
fs/btrfs/volumes.c