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
