On Sun, 9 Nov 2025 at 11:18, Linus Torvalds wrote: > > Hmm? Comments? Oh, and while double-checking bad users, I note that ntfs3 does uni = kmem_cache_alloc(names_cachep, GFP_NOWAIT); ... kmem_cache_free(names_cachep, uni); which is all complete and utter bogosity. I have no idea why anybody ever thought that was acceptable. It's garbage. That "uni" isn't even a filename - of either kind. It's neither a "struct filename" nor a PATH_MAX buffer. It's a "struct cpu_str *" which is a UTF16 thing that has absolutely nothing to do with names_cachep, and should never have been allocated that way. It's pure random insanity. It should just do a "kmalloc/kfree", with the size being 512 (255 UTF16 characters plus two bytes for len/unused). Anyway, slightly updated patch that makes "names_cachep" local to fs/namei.c just because there is absolutely _no_ reason for anybody else to ever use it. Except for that insane legacy one of __getname(), that is now just a kmalloc. I also made EMBEDDED_NAME_MAX be 128 as per Mateusz' comment, although to avoid double allocations it should probably be even bigger. A "small" value is good for testing that the new logic works, though. I haven't actually dared trying to boot into this, so it's still entirely untested. But I've at least looked through that patch a bit more and tried to search for other insane patterns, and so far that oddity in ntfs3 was the only related thing I've found. Linus