On Wed, 22 Nov 2023 at 13:19, Al Viro <viro@xxxxxxxxxxxxxxxxxx> wrote: > > The serious gap, AFAICS, is the interplay with open-by-fhandle. So I'm obviously not a fan of igncase filesystems, but I don't think this series actually changes any of that. > It's not unfixable, but we need to figure out what to do when > lookup runs into a disconnected directory alias. d_splice_alias() > will move it in place, all right, but any state ->lookup() has > hung off the dentry that had been passed to it will be lost. I guess this migth be about the new DCACHE_CASEFOLDED_NAME bit. At least for now, that is only used by generic_ci_d_revalidate() for negative dentries, so it shouldn't matter for that d_splice_alias() that only does positive dentries. No? Or is there something else you worry about? Side note: Gabriel, as things are now, instead of that if (!d_is_casefolded_name(dentry)) return 0; in generic_ci_d_revalidate(), I would suggest that any time a directory is turned into a case-folded one, you'd just walk all the dentries for that directory and invalidate negative ones at that point. Or was there some reason I missed that made it a good idea to do it at run-time after-the-fact? Linus