On Mon, Aug 25, 2025 at 3:31 PM André Almeida <andrealmeid@xxxxxxxxxx> wrote: > > Hi Amir, > > Em 22/08/2025 16:17, Amir Goldstein escreveu: > > [...] > > /* > >>>> - * Allow filesystems that are case-folding capable but deny composing > >>>> - * ovl stack from case-folded directories. > >>>> + * Exceptionally for layers with casefold, we accept that they have > >>>> + * their own hash and compare operations > >>>> */ > >>>> - if (sb_has_encoding(dentry->d_sb)) > >>>> - return IS_CASEFOLDED(d_inode(dentry)); > >>>> + if (ofs->casefold) > >>>> + return false; > >>> > >>> I think this is better as: > >>> if (sb_has_encoding(dentry->d_sb)) > >>> return false; > >>> > > > > And this still fails the test "Casefold enabled" for me. > > > > Maybe you are confused because this does not look like > > a test failure. It looks like this: > > > > generic/999 5s ... [19:10:21][ 150.667994] overlayfs: failed lookup > > in lower (ovl-lower/casefold, name='subdir', err=-116): parent wrong > > casefold > > [ 150.669741] overlayfs: failed lookup in lower (ovl-lower/casefold, > > name='subdir', err=-116): parent wrong casefold > > [ 150.760644] overlayfs: failed lookup in lower (/ovl-lower, > > name='casefold', err=-66): child wrong casefold > > [19:10:24] [not run] > > generic/999 -- overlayfs does not support casefold enabled layers > > Ran: generic/999 > > Not run: generic/999 > > Passed all 1 tests > > > > This is how the test output looks before my changes[1] to the test: > > $ ./run.sh > FSTYP -- ext4 > PLATFORM -- Linux/x86_64 archlinux 6.17.0-rc1+ #1174 SMP > PREEMPT_DYNAMIC Mon Aug 25 10:18:09 -03 2025 > MKFS_OPTIONS -- -F /dev/vdc > MOUNT_OPTIONS -- -o acl,user_xattr /dev/vdc /tmp/dir2 > > generic/999 1s ... [not run] overlayfs does not support casefold enabled > layers > Ran: generic/999 > Not run: generic/999 > Passed all 1 tests > > > And this is how it looks after my changes[1] to the test: > > $ ./run.sh > FSTYP -- ext4 > PLATFORM -- Linux/x86_64 archlinux 6.17.0-rc1+ #1174 SMP > PREEMPT_DYNAMIC Mon Aug 25 10:18:09 -03 2025 > MKFS_OPTIONS -- -F /dev/vdc > MOUNT_OPTIONS -- -o acl,user_xattr /dev/vdc /tmp/dir2 > > generic/999 1s > Ran: generic/999 > Passed all 1 tests > > So, as far as I can tell, the casefold enabled is not being skipped > after the fix to the test. Is this how it looks with your v6 or after fixing the bug: https://lore.kernel.org/linux-unionfs/68a8c4d7.050a0220.37038e.005c.GAE@xxxxxxxxxx/ Because for me this skipping started after fixing this bug Maybe we fixed the bug incorrectly, but I did not see what the problem was from a quick look. Can you test with my branch: https://github.com/amir73il/linux/commits/ovl_casefold/ > > [1] > https://lore.kernel.org/lkml/5da6b0f4-2730-4783-9c57-c46c2d13e848@xxxxxxxxxx/ > > > > I'm not sure I will keep the test this way. This is not very standard nor > > good practice, to run half of the test and then skip it. > > I would probably split it into two tests. > > The first one as it is now will run to completion on kenrels >= v6.17 > > and the Casefold enable test will run on kernels >= v6.18. > > > > In any case, please make sure that the test is not skipped when testing > > Casefold enabled layers > > > > And then continue with the missing test cases. > > > > When you have a test that passes please send the test itself or > > a fstest branch for me to test. > > Ok! I assume you are testing with ext4 layers? If we are both testing the same code and same test and getting different results I would like to get to the bottom of this, so please share as much information on your test setup as you can. Thanks, Amir.