On Wed, Jul 6, 2016 at 12:24 PM, Andrei Borzenkov <arvidj...@gmail.com> wrote: > On Wed, Jul 6, 2016 at 8:19 PM, Chris Murphy <li...@colorremedies.com> wrote: >> >> I'm mainly concerned with rootfs. And I'm mainly concerned with a very >> simple 2 disk raid1. With a simple user opt in using >> rootflags=degraded, it should be possible to boot the system. Right >> now it's not possible. Maybe just deleting 64-btrfs.rules would fix >> this problem, I haven't tried it. >> > > While deleting this rule will fix your specific degraded 2 disk raid 1 > it will break non-degraded multi-device filesystem. Logic currently > implemented by systemd assumes that mount is called after > prerequisites have been fulfilled. Deleting this rule will call mount > as soon as the very first device is seen; such filesystem is obviously > not mountable.
Seems like we need more granularity by btrfs ioctl for device ready, e.g. some way to indicate: 0 all devices ready 1 devices not ready (don't even try to mount) 2 minimum devices ready (degraded mount possible) Btrfs multiple device single and raid0 only return code 0 or 1. Where raid 1, 5, 6 could return code 2. The systemd default policy for code 2 could be to wait some amount of time to see if state goes to 0. At the timeout, try to mount anyway. If rootflags=degraded, it mounts. If not, mount fails, and we get a dracut prompt. That's better behavior than now. > Equivalent of this rule is required under systemd and desired in > general to avoid polling. On systemd list I outlined possible > alternative implementation as systemd service instead of really > hackish udev rule. I'll go read it there. Thanks. -- Chris Murphy -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html