There is previous work [1] [1] https://lore.kernel.org/linux-btrfs/1461812780-538-1-git-send-email-anand.j...@oracle.com/ I guess it was on purpose that missing device is not part of alloc chunk, so to have lesser impact due to writehole bug. My target is to fix the writehole first, and then this and other bugs.
[FIX] Just consider the missing devices as WRITABLE, so we allocate new chunks on them to maintain old profiles.
IMO. In a 3-disks raid1 when one of the disk fails, we still need the _new writes_ not to be degraded. Just use two available disks. This fix fails that idea which is being followed now. Thanks, Anand