From patchwork Sun Jan 18 20:37:32 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Glass X-Patchwork-Id: 1589 Return-Path: X-Original-To: u-boot-concept@u-boot.org Delivered-To: u-boot-concept@u-boot.org DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=u-boot.org; s=default; t=1768768765; bh=JLQivxf06imC4d4qsVZYk2QrmiY75/Bt6mRLcktXIWw=; h=From:To:Date:In-Reply-To:References:CC:Subject:List-Id: List-Archive:List-Help:List-Owner:List-Post:List-Subscribe: List-Unsubscribe:From; b=Y9GbErGC1UqqejglkZahJob0mgkoGxYaOMOdF1xqHNWIi9bXXe91UBNktxx7i+bUc DhBZHgB3bGG1pgSPLYhTwXOuso9ybO9Xz4OlaMqkPqfKZtxEuFmo5Y4VPIhTWPlZqd Whe9y1Tp5oe+IFlYzITVJXLeqI2zSstD8AzhpnQ9ceGqwuhFSeDYDzedMbawPT+B0n WLLMc5nxAtLDMVbNHci2RutogdY8JaVPzGGSirUpzNe/9taaRmJLXlTQOiATaOpD47 7PU3h73V6UQyRshNZWOdkG8O1noAeN79bR72oHeY35m9dkpMP01NKKOZ7VpLmka4pm OFtOmqu4Aa5xg== Received: from localhost (localhost [127.0.0.1]) by mail.u-boot.org (Postfix) with ESMTP id 9F67C6948C for ; Sun, 18 Jan 2026 13:39:25 -0700 (MST) X-Virus-Scanned: Debian amavis at Received: from mail.u-boot.org ([127.0.0.1]) by localhost (mail.u-boot.org [127.0.0.1]) (amavis, port 10024) with ESMTP id Zpj2NpL2V4Sg for ; Sun, 18 Jan 2026 13:39:25 -0700 (MST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=u-boot.org; s=default; t=1768768765; bh=JLQivxf06imC4d4qsVZYk2QrmiY75/Bt6mRLcktXIWw=; h=From:To:Date:In-Reply-To:References:CC:Subject:List-Id: List-Archive:List-Help:List-Owner:List-Post:List-Subscribe: List-Unsubscribe:From; b=Y9GbErGC1UqqejglkZahJob0mgkoGxYaOMOdF1xqHNWIi9bXXe91UBNktxx7i+bUc DhBZHgB3bGG1pgSPLYhTwXOuso9ybO9Xz4OlaMqkPqfKZtxEuFmo5Y4VPIhTWPlZqd Whe9y1Tp5oe+IFlYzITVJXLeqI2zSstD8AzhpnQ9ceGqwuhFSeDYDzedMbawPT+B0n WLLMc5nxAtLDMVbNHci2RutogdY8JaVPzGGSirUpzNe/9taaRmJLXlTQOiATaOpD47 7PU3h73V6UQyRshNZWOdkG8O1noAeN79bR72oHeY35m9dkpMP01NKKOZ7VpLmka4pm OFtOmqu4Aa5xg== Received: from mail.u-boot.org (localhost [127.0.0.1]) by mail.u-boot.org (Postfix) with ESMTP id 878F4693A2 for ; Sun, 18 Jan 2026 13:39:25 -0700 (MST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=u-boot.org; s=default; t=1768768764; bh=elCunPi9SEc0VtlIVpg/jsZS0KBUrN21GEDbtziUfP8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=pW855cvInY3+69jyv0vT5Hrbl9QjmCW96vSicHil53QHgiBSU3kCxMkP8H1ycmYGv Q8Vqob+9f1zIQ9SSKNPrZoBYYfKvkFF/EQ2VNm7RgR7wFEStjO4LoyQWd4Wvjjea3l BcPeaCO/5c0WOQV1QuMzP+JRAGedBMPwHvNmNtFtPOSJasxci6t2aiB0VBwJQ10aHK eq1lgCJyElLgbsj8Qpjon1rgjNQfjB2ij7oouxjVE41l6XtO2s0CALskZhTiGG8Un3 TbDK6B3fq5cC2QYmnCs6kT99Mp+1bIKtbf2nLTa57gWlePWQ/+glpJqVmrMyJ1IQsi 6lOQ9j7qOG4hg== Received: from localhost (localhost [127.0.0.1]) by mail.u-boot.org (Postfix) with ESMTP id 67C9B693A2; Sun, 18 Jan 2026 13:39:24 -0700 (MST) X-Virus-Scanned: Debian amavis at Received: from mail.u-boot.org ([127.0.0.1]) by localhost (mail.u-boot.org [127.0.0.1]) (amavis, port 10026) with ESMTP id z1VuIeVhVwR7; Sun, 18 Jan 2026 13:39:24 -0700 (MST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=u-boot.org; s=default; t=1768768757; bh=jTjgGtpafFNHALE4TDt4OeFSBJR+2kUIdDNLyel7+ok=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=dFVgXddl/LjjndvupUk6R/nn46CPURhAnrK7nydNehqNZpKW7wM6/vfxEEKTvCs4N Rb4Ccyam/y65o8hp/7jJofKemn9L+Fbv9ZhxDg1AU8r6qPAnh6Kec2rFJ3GuEBeSiX Nt+m6pAUDDhc2T8kCq8KvgN+abSRbWh3TSpAo3sGPii2iqFmeoI+1xTFbFW1d/gNRz U8Af1n8bTXC7Hrl6+a3+8sfMEl7BXPN+SUAtdtYkmdvg2LAu6NmkU+v0ZXYiZAgWYw cOl1VOhJJ6TUPitfBOYI4UFUq9WELwbx4W3jCPMhSWtxTk8wNQFyDRVMqXXMYnzSH7 n2+uG1j7UKB3g== Received: from u-boot.org (unknown [73.34.74.121]) by mail.u-boot.org (Postfix) with ESMTPSA id 7D1AA69382; Sun, 18 Jan 2026 13:39:17 -0700 (MST) From: Simon Glass To: U-Boot Concept Date: Sun, 18 Jan 2026 13:37:32 -0700 Message-ID: <20260118133734.10.a7895a8044577cfe3ec8c1f0b62bce647fcf53e0@changeid> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260118203739.1974323-1-sjg@u-boot.org> References: <20260118203739.1974323-1-sjg@u-boot.org> MIME-Version: 1.0 Message-ID-Hash: G5IXIZMATCSDGC3LZFTTXXWUDGCVWWKW X-Message-ID-Hash: G5IXIZMATCSDGC3LZFTTXXWUDGCVWWKW X-MailFrom: sjg@u-boot.org X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header CC: Simon Glass , "Claude Opus 4 . 5" X-Mailman-Version: 3.3.10 Precedence: list Subject: [Concept] [PATCH 10/12] linux: Add projid.h and mnt_idmapping.h headers List-Id: Discussion and patches related to U-Boot Concept Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: From: Simon Glass Create linux/projid.h with kprojid_t type definition and INVALID_PROJID constant for filesystem project quotas. Create linux/mnt_idmapping.h with mnt_idmap structure stub for mount ID mapping. U-Boot does not support ID mapping, so this provides only the nop_mnt_idmap reference. Update ext4_uboot.h to use these headers instead of duplicating the definitions. Co-developed-by: Claude Opus 4.5 Signed-off-by: Simon Glass --- fs/ext4l/ext4_uboot.h | 18 ++++----------- include/linux/mnt_idmapping.h | 23 +++++++++++++++++++ include/linux/projid.h | 43 +++++++++++++++++++++++++++++++++++ 3 files changed, 71 insertions(+), 13 deletions(-) create mode 100644 include/linux/mnt_idmapping.h create mode 100644 include/linux/projid.h diff --git a/fs/ext4l/ext4_uboot.h b/fs/ext4l/ext4_uboot.h index b5df747b963..4bc25b73f76 100644 --- a/fs/ext4l/ext4_uboot.h +++ b/fs/ext4l/ext4_uboot.h @@ -105,12 +105,8 @@ #include #include -/* Project ID type */ -typedef struct { unsigned int val; } kprojid_t; - -#define make_kprojid(ns, id) ((kprojid_t){ .val = (id) }) -#define from_kprojid(ns, kprojid) ((kprojid).val) -#define projid_eq(a, b) ((a).val == (b).val) +/* Project ID type - use linux/projid.h */ +#include /* kobject is now in linux/kobject.h */ #include @@ -421,11 +417,8 @@ typedef long long qsize_t; /* DT_* directory entry types are in linux/fs.h */ -/* mnt_idmap - stub */ -struct mnt_idmap { - int dummy; -}; -extern struct mnt_idmap nop_mnt_idmap; +/* mnt_idmap - use linux/mnt_idmapping.h */ +#include /* fstrim_range - stub */ struct fstrim_range { @@ -900,8 +893,7 @@ void folio_put(struct folio *folio); void folio_get(struct folio *folio); void mapping_clear_folio_cache(struct address_space *mapping); -/* projid_t - project ID type */ -typedef unsigned int projid_t; +/* projid_t is now in linux/projid.h */ /* * Additional stubs for inode.c diff --git a/include/linux/mnt_idmapping.h b/include/linux/mnt_idmapping.h new file mode 100644 index 00000000000..3f4e35951da --- /dev/null +++ b/include/linux/mnt_idmapping.h @@ -0,0 +1,23 @@ +/* SPDX-License-Identifier: GPL-2.0 */ +/* + * Mount ID mapping definitions for U-Boot + * + * Based on Linux mnt_idmapping.h - user ID mapping for mounts. + * U-Boot stub - ID mapping not supported. + */ +#ifndef _LINUX_MNT_IDMAPPING_H +#define _LINUX_MNT_IDMAPPING_H + +/** + * struct mnt_idmap - mount ID mapping + * + * U-Boot stub - ID mapping not used. + */ +struct mnt_idmap { + int dummy; +}; + +/* Global no-op ID map */ +extern struct mnt_idmap nop_mnt_idmap; + +#endif /* _LINUX_MNT_IDMAPPING_H */ diff --git a/include/linux/projid.h b/include/linux/projid.h new file mode 100644 index 00000000000..d736630a957 --- /dev/null +++ b/include/linux/projid.h @@ -0,0 +1,43 @@ +/* SPDX-License-Identifier: GPL-2.0 */ +/* + * Project ID definitions for U-Boot + * + * Based on Linux projid.h - filesystem project IDs for quotas. + */ +#ifndef _LINUX_PROJID_H +#define _LINUX_PROJID_H + +/** + * typedef kprojid_t - kernel project ID + * + * Wrapper type for project IDs used in filesystem quotas. + */ +typedef struct { unsigned int val; } kprojid_t; + +/** + * typedef projid_t - user-space project ID + */ +typedef unsigned int projid_t; + +/** + * make_kprojid() - create a kernel project ID + * @ns: user namespace (ignored in U-Boot) + * @id: project ID value + */ +#define make_kprojid(ns, id) ((kprojid_t){ .val = (id) }) + +/** + * from_kprojid() - extract project ID value + * @ns: user namespace (ignored in U-Boot) + * @kprojid: kernel project ID + */ +#define from_kprojid(ns, kprojid) ((kprojid).val) + +/** + * projid_eq() - compare two project IDs + * @a: first project ID + * @b: second project ID + */ +#define projid_eq(a, b) ((a).val == (b).val) + +#endif /* _LINUX_PROJID_H */