On 2025-05-06 19:16:04 +0100, Al Viro wrote: > On Tue, May 06, 2025 at 07:54:32PM +0200, Klara Modin wrote: > > > > > Though now I hit another issue which I don't know if it's related or > > > > not. I'm using an overlay mount with squashfs as lower and btrfs as > > > > upper. The mount fails with invalid argument and I see this in the log: > > > > > > > > overlayfs: failed to clone upperpath > > > > > > Seeing that you already have a kernel with that thing reverted, could > > > you check if the problem exists there? > > > > Yeah, it works fine with the revert instead. > > Interesting... That message means that you've got clone_private_mount() > returning an error; the thing is, mount passed to it has come from > pathname lookup - it is *not* the mount created by that fc_mount() of > vfs_create_mount() in the modified code. That one gets passed to > mount_subvol() and consumed there (by mount_subtree()). All that is returned > is root dentry; the mount passed to clone_private_mount() is created > from scratch using dentry left by btrfs_get_tree_subvol() in its fc->root - > see > dentry = mount_subvol(ctx->subvol_name, ctx->subvol_objectid, mnt); > ctx->subvol_name = NULL; > if (IS_ERR(dentry)) > return PTR_ERR(dentry); > > fc->root = dentry; > return 0; > in the end of btrfs_get_tree_subvol(). > > What's more, on the overlayfs side we managed to get to > upper_mnt = clone_private_mount(upperpath); > err = PTR_ERR(upper_mnt); > if (IS_ERR(upper_mnt)) { > pr_err("failed to clone upperpath\n"); > goto out; > so the upper path had been resolved... > > OK, let's try to see what clone_private_mount() is unhappy about... > Could you try the following on top of -next + braino fix and see > what shows up? Another interesting thing, assuming you can get > to shell after overlayfs mount failure, would be /proc/self/mountinfo > contents and stat(1) output for upper path of your overlayfs mount... It looks like the mount never succeded in the first place? It doesn't appear in /proc/self/mountinfo at all: 2 2 0:2 / / rw - rootfs rootfs rw 24 2 0:22 / /proc rw,relatime - proc proc rw 25 2 0:23 / /sys rw,relatime - sysfs sys rw 26 2 0:6 / /dev rw,relatime - devtmpfs dev rw,size=481992k,nr_inodes=120498,mode=755 27 2 259:1 / /mnt/root-ro ro,relatime - squashfs /dev/nvme0n1 ro,errors=continue I get the "kern_mount?" message.