openat2 had a bug: if we pass RESOLVE_NO_XDEV, then openat2 doesn't traverse through automounts, but may still trigger them. See this link for full bug report with reproducer: https://lore.kernel.org/linux-fsdevel/20250817075252.4137628-1-safinaskar@xxxxxxxxxxxx/ This patchset fixes the bug. RESOLVE_NO_XDEV logic hopefully becomes more clear: now we immediately fail when we cross mountpoints. I think 4th patch should go to -fixes and stable trees. I split everything to very small commits to make everything as bisectable as possible. Minimal testing was performed. I tested that my original reproducer doesn't reproduce anymore. And I did boot-test with localmodconfig in qemu I'm not very attached to this patchset. I. e. I will not be offended if someone else will submit different fix for this bug. v1: https://lore.kernel.org/linux-fsdevel/20250817171513.259291-1-safinaskar@xxxxxxxxxxxx/ v1 -> v2: - Commit messages - Comments - Clarified that 4th patch should go to stable - Whitespace Askar Safin (4): namei: move cross-device check to traverse_mounts namei: remove LOOKUP_NO_XDEV check from handle_mounts namei: move cross-device check to __traverse_mounts openat2: don't trigger automounts with RESOLVE_NO_XDEV fs/namei.c | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) -- 2.47.2