From patchwork Sun Dec 21 11:38:15 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Glass X-Patchwork-Id: 1013 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=1766317149; bh=wvC1czbRS6na2EMdSQXzxUC6FynpfGI+sHUowE0IPBQ=; 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=c0KyZ1eo6w0PXDxfrZaNZlthq7hZGn0axqaDVyxtL4nmBDjV4nlgi1ishYiBjjPaf p8BTkfPWs0xKCVy46TsNNVRHe5BvuqblqDe6S7WCcu8a9Wl8q9kIvr+clUpiz3UIIw jzIcczYahhix+s6bdWUydkldmP0DduOCmsMXl/HnVTFp7/j+pTDzPR6JD1pgCgOTdv WRNBEBiUGoE/6Tl9LfYswpDj0aPjuqFjcEQPl+uQXHztSCm9rqIGvi5H4vgar4/lOP ekT+p455Ss72+n0UM0QGVIGNK60SAoVWDipuYXoXz9ciTaI2+RURmUWIwgIXu4UZo9 +hndsmVd9s8vw== Received: from localhost (localhost [127.0.0.1]) by mail.u-boot.org (Postfix) with ESMTP id 57E4964CFE for ; Sun, 21 Dec 2025 04:39:09 -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 Ug7kvMv40Umv for ; Sun, 21 Dec 2025 04:39:09 -0700 (MST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=u-boot.org; s=default; t=1766317148; bh=wvC1czbRS6na2EMdSQXzxUC6FynpfGI+sHUowE0IPBQ=; 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=Jgzg/ccFBZBvC8xcumqc0NYVJ1JLoYmyY92Osm9uT4liId2yQP+bagUPTakG6St1U TuQ8KqtWRNw8jDxb/yHtSw0GDS0KlVn9W1nD0M5Z0MnYNThINA0GIWvku7/nMY4iBm macA3VN3IKZMBj4gJUqSjbzhNPGGm9o7evhEEjmLruCI+tkW/HAMvhW3zPcGOKqHTY j1WXsWS26RiUqpGA0/61p8akyHHj1D7KFeBF7cr+gleRLf35vP0ZvKeRjbh+OcFz7r Q5b+mUd3bu6bbmAvVRNTHCX6XLk2l6Z8yFm9jSWasUBErFOYcQsqR/DNaybjtLW1e8 meeYt9jBDa1KQ== Received: from mail.u-boot.org (localhost [127.0.0.1]) by mail.u-boot.org (Postfix) with ESMTP id 1097364D05 for ; Sun, 21 Dec 2025 04:39:08 -0700 (MST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=u-boot.org; s=default; t=1766317145; bh=z8EHja4dZkfjyysVGZn6b76ZAnUcRVY0Rue1x9srEuU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Ldgz+YIvMUuOAAJDwFq22fzMWDSn5v3Je2VcWMaFwrdBtQK04UF863S2vLvCDNvAQ w2yEED8x0P8i8NNaZfer0UPXsGW+SvTmsmEWZcscnuBBe5HiMXTMbxF1ph818Px9JC 1+fvtCRLPaXWqEamfGju1VFFByUheWKaxjOxWUOJdDvp1XKtpk91fssHhHaPWkKbmq Hquy1+bZ4SyHrAcs0nWaGw3mKbx/nnigfDuCKKxCclq0fbTnQvVDoAL9QNLtdV4KQ0 RtDXvdvNar4nqyeM/tbejDl3DOH7WBLyG1FrGpr/B/3n0vDQzNYxpKYzGTLpdDiDw0 7X6cTXbnsQKUQ== Received: from localhost (localhost [127.0.0.1]) by mail.u-boot.org (Postfix) with ESMTP id C9B4064CEA; Sun, 21 Dec 2025 04:39:05 -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 R4JLo4pWXm1V; Sun, 21 Dec 2025 04:39:05 -0700 (MST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=u-boot.org; s=default; t=1766317145; bh=wZ++8HvGxj1nK2rCYIO4hlgCAlyRhrJBcHPUQhOoEuY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=e7JA288E/MtGxFBAGi0mSCBDF4mAJW4Po6BRO06ydHzojSNYIqTwa96n0c2Q5jzR/ Fl0yx+Z+2PmQmqnsc3lq9LU7ZoWPlNmQg6Q3QDSd9HRC/SWnoAeYjqpobyvcG3TEJF hbQoSh+bAWOopuQd/wlBe/BUBVy6250TgFmdIbywxSGpPlw645POzo7tC6+Hx3nLga TLdfS5uYYEumyky6g4/1la8WlCdd6Usfy6IqE1Fprbjkax0gA7eKFy0imJ3adMeeje oWa2QeunQwX+ez2dTqwGz1GsIzI6zOnT1JeM6AYf9JX9lAm4iPabMXLn23jamEuKms hIaPCa48zf/hA== Received: from u-boot.org (unknown [73.34.74.121]) by mail.u-boot.org (Postfix) with ESMTPSA id 372B664CF1; Sun, 21 Dec 2025 04:39:05 -0700 (MST) From: Simon Glass To: U-Boot Concept Date: Sun, 21 Dec 2025 04:38:15 -0700 Message-ID: <20251221113820.812060-10-sjg@u-boot.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20251221113820.812060-1-sjg@u-boot.org> References: <20251221113820.812060-1-sjg@u-boot.org> MIME-Version: 1.0 Message-ID-Hash: 6QZACFDQBH34NBI4RTNYPM3ZYANVX6FG X-Message-ID-Hash: 6QZACFDQBH34NBI4RTNYPM3ZYANVX6FG 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 09/10] ext4l: Add readpage.c to build 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 Add the readpage module (readpage.c) to the build. This implements ext4's page reading infrastructure for reading file data. Stubs added for: - mempool operations (mempool_t, mempool_alloc, etc.) - folio read operations (folio_end_read, folio_set_mappedtodisk) - fscrypt read operations (fscrypt_decrypt_bio, etc.) - fsverity operations (fsverity_verify_bio, etc.) - readahead operations (readahead_count, readahead_folio) - prefetchw and block_read_full_folio Remove ext4_mpage_readpages stub now implemented in readpage.c. Co-developed-by: Claude Opus 4.5 Signed-off-by: Simon Glass --- fs/ext4l/Makefile | 3 ++- fs/ext4l/ext4_uboot.h | 40 ++++++++++++++++++++++++++++++++++++++++ fs/ext4l/readpage.c | 16 +--------------- fs/ext4l/stub.c | 6 +----- 4 files changed, 44 insertions(+), 21 deletions(-) diff --git a/fs/ext4l/Makefile b/fs/ext4l/Makefile index 506e76b959e..3116ac3be39 100644 --- a/fs/ext4l/Makefile +++ b/fs/ext4l/Makefile @@ -8,6 +8,7 @@ obj-y := interface.o stub.o obj-y += balloc.o bitmap.o block_validity.o dir.o ext4_jbd2.o extents.o \ extents_status.o file.o fsync.o hash.o ialloc.o \ indirect.o inline.o inode.o mballoc.o \ - namei.o page_io.o super.o symlink.o xattr.o \ + namei.o page-io.o readpage.o \ + super.o symlink.o xattr.o \ xattr_hurd.o xattr_trusted.o \ xattr_user.o orphan.o diff --git a/fs/ext4l/ext4_uboot.h b/fs/ext4l/ext4_uboot.h index c5895dc902a..a6ffc91b7de 100644 --- a/fs/ext4l/ext4_uboot.h +++ b/fs/ext4l/ext4_uboot.h @@ -2664,4 +2664,44 @@ bool __folio_start_writeback(struct folio *folio, bool keep_write); #define bio_add_folio(bio, folio, len, off) \ ({ (void)(bio); (void)(folio); (void)(len); (void)(off); 1; }) +/* + * Stubs for readpage.c + */ + +/* mempool - memory pool stubs */ +typedef void *mempool_t; +#define mempool_alloc(pool, gfp) ({ (void)(pool); (void)(gfp); (void *)NULL; }) +#define mempool_free(elem, pool) do { (void)(elem); (void)(pool); } while (0) +#define mempool_create_slab_pool(n, c) ({ (void)(n); (void)(c); (mempool_t *)NULL; }) +#define mempool_destroy(pool) do { (void)(pool); } while (0) + +/* folio read operations */ +#define folio_end_read(f, success) do { (void)(f); (void)(success); } while (0) +#define folio_set_mappedtodisk(f) do { (void)(f); } while (0) + +/* fscrypt stubs for readpage.c */ +#define fscrypt_decrypt_bio(bio) ({ (void)(bio); 0; }) +#define fscrypt_enqueue_decrypt_work(work) do { (void)(work); } while (0) +#define fscrypt_mergeable_bio(bio, inode, blk) \ + ({ (void)(bio); (void)(inode); (void)(blk); 1; }) +#define fscrypt_set_bio_crypt_ctx(bio, inode, blk, gfp) \ + do { (void)(bio); (void)(inode); (void)(blk); (void)(gfp); } while (0) + +/* fsverity stubs */ +#define fsverity_verify_bio(bio) do { (void)(bio); } while (0) +#define fsverity_enqueue_verify_work(work) do { (void)(work); } while (0) +#define fsverity_verify_folio(f) ({ (void)(f); 1; }) +#define IS_VERITY(inode) (0) + +/* readahead operations */ +#define readahead_count(rac) ({ (void)(rac); 0UL; }) +#define readahead_folio(rac) ({ (void)(rac); (struct folio *)NULL; }) + +/* prefetch operations */ +#define prefetchw(addr) do { (void)(addr); } while (0) + +/* block read operations */ +#define block_read_full_folio(folio, get_block) \ + ({ (void)(folio); (void)(get_block); 0; }) + #endif /* __EXT4_UBOOT_H__ */ diff --git a/fs/ext4l/readpage.c b/fs/ext4l/readpage.c index f329daf6e5c..94361c01f08 100644 --- a/fs/ext4l/readpage.c +++ b/fs/ext4l/readpage.c @@ -28,21 +28,7 @@ * */ -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include +#include "ext4_uboot.h" #include "ext4.h" diff --git a/fs/ext4l/stub.c b/fs/ext4l/stub.c index 935e93f49f1..87637ecbd8c 100644 --- a/fs/ext4l/stub.c +++ b/fs/ext4l/stub.c @@ -240,11 +240,7 @@ int jbd2_transaction_committed(void *journal, unsigned int tid) /* __ext4_warning_inode is now in super.c */ -/* Readahead */ -int ext4_mpage_readpages(void *mapping, void *rac, void *folio) -{ - return 0; -} +/* ext4_mpage_readpages is now in readpage.c */ /* ext4_readpage_inline is now in inline.c */