[Concept,09/10] ext4l: Add readpage.c to build
Commit Message
From: Simon Glass <simon.glass@canonical.com>
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 <noreply@anthropic.com>
Signed-off-by: Simon Glass <simon.glass@canonical.com>
---
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(-)
@@ -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
@@ -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__ */
@@ -28,21 +28,7 @@
*
*/
-#include <linux/kernel.h>
-#include <linux/export.h>
-#include <linux/mm.h>
-#include <linux/kdev_t.h>
-#include <linux/gfp.h>
-#include <linux/bio.h>
-#include <linux/fs.h>
-#include <linux/buffer_head.h>
-#include <linux/blkdev.h>
-#include <linux/highmem.h>
-#include <linux/prefetch.h>
-#include <linux/mpage.h>
-#include <linux/writeback.h>
-#include <linux/backing-dev.h>
-#include <linux/pagevec.h>
+#include "ext4_uboot.h"
#include "ext4.h"
@@ -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 */