---- On Tue, 19 Aug 2025 12:21:33 +0400 Christian Brauner <brauner@xxxxxxxxxx> wrote --- > On Mon, Aug 18, 2025 at 03:31:27PM +1000, Aleksa Sarai wrote: > > I would merge the first three patches -- adding and removing code like > Agreed. May I still not merge these patches? All they may (hypothetically) fail on their own. If they do, then it will be valuable to know from bisection which of them failed. Let's discuss them one-by-one. The first patch moves checks from handle_mounts to traverse_mounts. But handle_mounts is not the only caller of traverse_mounts. traverse_mounts is also called by follow_down. I. e. theoretically follow_down-related code paths can lead to problems. I just checked all them, none of them set LOOKUP_NO_XDEV. So, they should not lead to problems. But in kernel we, of course, never can be sure. They should not lead to problems, but still can. The second patch removes LOOKUP_NO_XDEV check. This is okay, because if "jumped" is set and "LOOKUP_NO_XDEV" is set, then this means that we already set error, and thus ND_JUMPED should not be read, because it is not read in error path. But this is not obvious, and so Al asked me add comment ( https://lore.kernel.org/linux-fsdevel/20250817180057.GA222315@ZenIV/ ), and, of course, I will add it in the second version in any case. So, ND_JUMPED should not be checked in error path, and thus this should not lead to problems. But still can. The third patch makes traverse_mounts fail immidiately after first mount-crossing (if LOOKUP_NO_XDEV is set). As opposed to very end. This should not lead to problems. But can. So, again, any of these 3 patches can (hypothetically) lead to its own problems. So, for bisection reasons I want to keep them separate. So, may I keep them separate? (And I agree with all other complains in this thread, and will fix them in second version.) -- Askar Safin https://types.pl/@safinaskar