From: Christian Brauner Date: Thu, 22 Jan 2026 10:48:46 +0000 (+0100) Subject: mount: start iterating from start of rbtree X-Git-Tag: v7.1-rc1~172^2~8^2~5 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=0c0b046392b5b6e2402bf75215ab0c3a242d7af5;p=thirdparty%2Fkernel%2Flinux.git mount: start iterating from start of rbtree If the root of the namespace has an id that's greater than the child we'd not find it. Handle that case. Link: https://patch.msgid.link/20260122-work-fsmount-namespace-v1-1-5ef0a886e646@kernel.org Signed-off-by: Christian Brauner --- diff --git a/fs/namespace.c b/fs/namespace.c index 854f4fc664697..9fd5114e5eb71 100644 --- a/fs/namespace.c +++ b/fs/namespace.c @@ -5649,14 +5649,14 @@ static int grab_requested_root(struct mnt_namespace *ns, struct path *root) if (mnt_ns_empty(ns)) return -ENOENT; - first = child = ns->root; - for (;;) { - child = listmnt_next(child, false); - if (!child) - return -ENOENT; - if (child->mnt_parent == first) + first = ns->root; + for (child = node_to_mount(ns->mnt_first_node); child; + child = listmnt_next(child, false)) { + if (child != first && child->mnt_parent == first) break; } + if (!child) + return -ENOENT; root->mnt = mntget(&child->mnt); root->dentry = dget(root->mnt->mnt_root);