From nobody Sat Feb 7 09:29:21 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 2CB5734F251; Wed, 22 Oct 2025 16:07:41 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761149262; cv=none; b=tTdA6eyxO6YSEar5Ar7/82G0RxjsYFL78eJmhoyAJQD53jEGU3ed52GsyvjScACZfIsUCvilCvQLrabR5meAcmOMELwiqAiYV0eWrPoOw21BzS6scxTREQRX7/mN0G4AGT3RmBuTQIyh0TEd+f9ZEIq4Wh2zdEKhwMI89yn/Vmc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761149262; c=relaxed/simple; bh=1Vbdfejrzu8I2m1UigJuDF0ynX7SsD3EwMJY3zP1DiU=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=SZEPJZLv0hjqAusXYX8YD7SmtYYKm3fMYyhrsZrjSwgir51ziAlxDCQ9hHF6MBwkt8PiL2MHt9LuKEwAJVt/7h79f+jEzlnevhdejOhH+sb55/HPjSQAs9oLU2z9ZpxKRd9R40B9rvhUCZLLrCKXQvKFmhAIkLF8x0Y+yEruAEA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=ASBbj6ME; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="ASBbj6ME" Received: by smtp.kernel.org (Postfix) with ESMTPSA id DE8CCC4CEE7; Wed, 22 Oct 2025 16:07:36 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1761149261; bh=1Vbdfejrzu8I2m1UigJuDF0ynX7SsD3EwMJY3zP1DiU=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=ASBbj6MEprXMqyvfD5do/DikYaPNn5tNyzkWEbSE8UhBJzzC1sE6yugIZ+3lEjtMO MR+m6Eh05EGTHKygxm3aNg+8xE2hWy7DYowB2M0tqHUYSV3ao8YyB23p2ZdS25aPI8 jTtETgucd9w+qUdShE2woMEFv3pPS3SQKEuyzbDMr6HwReh4zayNCh7k3MtYbx3Lr3 Wsu0wxh70v1ktKKfdQSpJwSUUx0FRkXpRlkoxX7vF5Fxk1McorOrj50KY3izUn0x6p CRJ09rd2a54vC0d+gXLdZB1kpZamSbSQph4QTfbmtwHldB09nHKSLHyggxUEJF5dom EfRRLbDuSB0MQ== From: Christian Brauner Date: Wed, 22 Oct 2025 18:05:56 +0200 Subject: [PATCH v2 18/63] nsfs: update tools header Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251022-work-namespace-nstree-listns-v2-18-71a588572371@kernel.org> References: <20251022-work-namespace-nstree-listns-v2-0-71a588572371@kernel.org> In-Reply-To: <20251022-work-namespace-nstree-listns-v2-0-71a588572371@kernel.org> To: linux-fsdevel@vger.kernel.org, Josef Bacik , Jeff Layton Cc: Jann Horn , Mike Yuan , =?utf-8?q?Zbigniew_J=C4=99drzejewski-Szmek?= , Lennart Poettering , Daan De Meyer , Aleksa Sarai , Amir Goldstein , Tejun Heo , Johannes Weiner , Thomas Gleixner , Alexander Viro , Jan Kara , linux-kernel@vger.kernel.org, cgroups@vger.kernel.org, bpf@vger.kernel.org, Eric Dumazet , Jakub Kicinski , netdev@vger.kernel.org, Arnd Bergmann , Christian Brauner X-Mailer: b4 0.15-dev-96507 X-Developer-Signature: v=1; a=openpgp-sha256; l=2616; i=brauner@kernel.org; h=from:subject:message-id; bh=1Vbdfejrzu8I2m1UigJuDF0ynX7SsD3EwMJY3zP1DiU=; b=owGbwMvMwCU28Zj0gdSKO4sYT6slMWT8ZHhqHNZ3mCP+X/OZTSyxx6W4dKaJbjuzIn72+y98w a+3PQ7R6ChlYRDjYpAVU2RxaDcJl1vOU7HZKFMDZg4rE8gQBi5OAZjIjXCG/0WR/HWRq4tFPEOc q1d1q/ypvLbxt/nUlr7AosapJ3tllRj+2VhJ129abtu4/sOj39x6q+JrdbWeLQrn6HH+xyVy68g aLgA= X-Developer-Key: i=brauner@kernel.org; a=openpgp; fpr=4880B8C9BD0E5106FC070F4F7B3C391EFEA93624 Ensure all the new uapi bits are visible for the selftests. Signed-off-by: Christian Brauner --- tools/include/uapi/linux/nsfs.h | 70 +++++++++++++++++++++++++++++++++++++= ++++ 1 file changed, 70 insertions(+) diff --git a/tools/include/uapi/linux/nsfs.h b/tools/include/uapi/linux/nsf= s.h index 33c9b578b3b2..a25e38d1c874 100644 --- a/tools/include/uapi/linux/nsfs.h +++ b/tools/include/uapi/linux/nsfs.h @@ -53,6 +53,76 @@ enum init_ns_ino { TIME_NS_INIT_INO =3D 0xEFFFFFFAU, NET_NS_INIT_INO =3D 0xEFFFFFF9U, MNT_NS_INIT_INO =3D 0xEFFFFFF8U, +#ifdef __KERNEL__ + MNT_NS_ANON_INO =3D 0xEFFFFFF7U, +#endif }; =20 +struct nsfs_file_handle { + __u64 ns_id; + __u32 ns_type; + __u32 ns_inum; +}; + +#define NSFS_FILE_HANDLE_SIZE_VER0 16 /* sizeof first published struct */ +#define NSFS_FILE_HANDLE_SIZE_LATEST sizeof(struct nsfs_file_handle) /* si= zeof latest published struct */ + +enum init_ns_id { + IPC_NS_INIT_ID =3D 1ULL, + UTS_NS_INIT_ID =3D 2ULL, + USER_NS_INIT_ID =3D 3ULL, + PID_NS_INIT_ID =3D 4ULL, + CGROUP_NS_INIT_ID =3D 5ULL, + TIME_NS_INIT_ID =3D 6ULL, + NET_NS_INIT_ID =3D 7ULL, + MNT_NS_INIT_ID =3D 8ULL, +#ifdef __KERNEL__ + NS_LAST_INIT_ID =3D MNT_NS_INIT_ID, +#endif +}; + +enum ns_type { + TIME_NS =3D (1ULL << 7), /* CLONE_NEWTIME */ + MNT_NS =3D (1ULL << 17), /* CLONE_NEWNS */ + CGROUP_NS =3D (1ULL << 25), /* CLONE_NEWCGROUP */ + UTS_NS =3D (1ULL << 26), /* CLONE_NEWUTS */ + IPC_NS =3D (1ULL << 27), /* CLONE_NEWIPC */ + USER_NS =3D (1ULL << 28), /* CLONE_NEWUSER */ + PID_NS =3D (1ULL << 29), /* CLONE_NEWPID */ + NET_NS =3D (1ULL << 30), /* CLONE_NEWNET */ +}; + +/** + * struct ns_id_req - namespace ID request structure + * @size: size of this structure + * @spare: reserved for future use + * @filter: filter mask + * @ns_id: last namespace id + * @user_ns_id: owning user namespace ID + * + * Structure for passing namespace ID and miscellaneous parameters to + * statns(2) and listns(2). + * + * For statns(2) @param represents the request mask. + * For listns(2) @param represents the last listed mount id (or zero). + */ +struct ns_id_req { + __u32 size; + __u32 spare; + __u64 ns_id; + struct /* listns */ { + __u32 ns_type; + __u32 spare2; + __u64 user_ns_id; + }; +}; + +/* + * Special @user_ns_id value that can be passed to listns() + */ +#define LISTNS_CURRENT_USER 0xffffffffffffffff /* Caller's userns */ + +/* List of all ns_id_req versions. */ +#define NS_ID_REQ_SIZE_VER0 32 /* sizeof first published struct */ + #endif /* __LINUX_NSFS_H */ --=20 2.47.3