I located the issue inside our git HEAD btrfs-progs patch.
New code that does silly things.

There is /dev/loop0 which has livecd.squashfs bound to it. That file
gets mounted before entering the chroot (at early initramfs stages).
Unfortunately, the genkernel architecture mounts the cdrom device to
/newroot/mnt/cdrom/livecd.squashfs which doesn't actually exist inside
the boot chroot.
btrfs-progs' is_same_loop_file() tries to match a device partition
(/dev/sda2) with loop devices configured (/dev/loop0) to see if they
actually point to the same block file.
Fact is, /dev/loop0 is resolved to /newroot/mnt/cdrom/livecd.squashfs,
and is_same_blk_file() fails miserably trying to intersect /dev/sda2
with /newroot/mnt/cdrom/livecd.squashfs returning -ENOENT which should
be actually ignored (instead of promply returned to caller as it is in
the code right now).

-- 
Fabio Erculiani

Reply via email to