Thread (88 messages) 88 messages, 6 authors, 2025-10-29

Re: [PATCH v3 14/70] nstree: allow lookup solely based on inode

From: Jeff Layton <jlayton@kernel.org>
Date: 2025-10-27 13:48:18
Also in: bpf, cgroups, linux-fsdevel, lkml

On Fri, 2025-10-24 at 12:52 +0200, Christian Brauner wrote:
The namespace file handle struct nsfs_file_handle is uapi and userspace
is expressly allowed to generate file handles without going through
name_to_handle_at().

Allow userspace to generate a file handle where both the inode number
and the namespace type are zero and just pass in the unique namespace
id. The kernel uses the unified namespace tree to find the namespace and
open the file handle.

When the kernel creates a file handle via name_to_handle_at() it will
always fill in the type and the inode number allowing userspace to
retrieve core information.
Where is the nsfs filehandle format documented? I didn't see any
reference to it in the manpages.
quoted hunk ↗ jump to hunk
Signed-off-by: Christian Brauner <brauner@kernel.org>
---
 fs/nsfs.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/fs/nsfs.c b/fs/nsfs.c
index 8b9bebd11c49..19dc28742a42 100644
--- a/fs/nsfs.c
+++ b/fs/nsfs.c
@@ -502,8 +502,8 @@ static struct dentry *nsfs_fh_to_dentry(struct super_block *sb, struct fid *fh,
 			return NULL;
 
 		VFS_WARN_ON_ONCE(ns->ns_id != fid->ns_id);
-		VFS_WARN_ON_ONCE(ns->ns_type != fid->ns_type);
-		VFS_WARN_ON_ONCE(ns->inum != fid->ns_inum);
+		if (fid->ns_inum && (fid->ns_inum != ns->inum))
+			return NULL;
 
 		/*
 		 * This is racy because we're not actually taking an
-- 
Jeff Layton [off-list ref]
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help