v3: Fix alien device is due to wipefs in Patch4. Fix a nit in Patch3. Patches are reordered.
Alien device is a device in fs_devices list having a different fsid than the expected fsid or no btrfs_magic. This patch set fixes issues found due to the same. Patch1: is a cleanup patch, not related. Patch2: fixes failing to mount a degraded RAIDs (RAID1/5/6/10), by hardening the function btrfs_free_extra_devids(). Patch3: fixes the missing device (due to alien btrfs-device) not missing in the userland, by hardening the function btrfs_open_one_device(). Patch4: fixes the missing device (due to alien device) not missing in the userland, by returning EUCLEAN in btrfs_read_dev_one_super(). Patch5: eliminates the source of the alien device in the fs_devices. PS: Fundamentally its wrong approach that btrfs-progs deduces the device missing state in the userland instead of obtaining it from the kernel. I remember objecting on the btrfs-progs patch which did that, but still it got merged, bugs in p3 and p4 are its side effects. I wrote patches to read device_state from the kernel using ioctl, procfs and sysfs but it didn't get the due attention till a merger. Anand Jain (5): btrfs: drop useless goto in open_fs_devices btrfs: include non-missing as a qualifier for the latest_bdev btrfs: remove identified alien btrfs device in open_fs_devices btrfs: remove identified alien device in open_fs_devices btrfs: free alien device due to device add fs/btrfs/disk-io.c | 2 +- fs/btrfs/volumes.c | 57 +++++++++++++++++++++++++++++++++++++++--------------- 2 files changed, 42 insertions(+), 17 deletions(-) -- 1.8.3.1