[Concept,15/33] ext4l: Move various stubs to proper linux/ headers

Message ID 20260121220857.2137568-16-sjg@u-boot.org
State New
Headers
Series Reorganise ext4l compatibility stubs |

Commit Message

Simon Glass Jan. 21, 2026, 10:08 p.m. UTC
  From: Simon Glass <simon.glass@canonical.com>

Move definitions to their appropriate standard headers:
- sync_mapping_buffers(), sync_inode_metadata() to linux/fs.h
- DAX stubs (IS_DAX, dax_break_layout_final, dax_writeback_mapping_range,
  dax_zero_range, dax_break_layout_inode, daxdev_mapping_supported) to
  linux/dax.h
- ktime_get_coarse_real_ts64() to linux/ktime.h
- Remove duplicate truncate_inode_pages_range (already in pagemap.h)

Also fix linux/dax.h to use mm_types.h for vm_fault_t and VM_FAULT_*
definitions, and update daxdev_mapping_supported to use the 3-arg
signature expected by ext4.

This reduces ext4_uboot.h from 545 to 528 lines.

Co-developed-by: Claude Opus 4.5 <noreply@anthropic.com>
Signed-off-by: Simon Glass <simon.glass@canonical.com>
---

 fs/ext4l/ext4_uboot.h | 19 +------------------
 include/linux/dax.h   | 23 +++++++++++++----------
 include/linux/fs.h    |  4 ++++
 include/linux/ktime.h |  9 +++++++++
 4 files changed, 27 insertions(+), 28 deletions(-)
  

Patch

diff --git a/fs/ext4l/ext4_uboot.h b/fs/ext4l/ext4_uboot.h
index f1c4a5a0fca..e21732da843 100644
--- a/fs/ext4l/ext4_uboot.h
+++ b/fs/ext4l/ext4_uboot.h
@@ -210,8 +210,6 @@  struct dx_hash_info {
 
 #define vfs_setpos(file, offset, maxsize)	({ (void)(file); (void)(maxsize); (offset); })
 
-#define daxdev_mapping_supported(f, i, d) ({ (void)(f); (void)(i); (void)(d); 1; })
-
 #include <linux/minmax.h>
 
 /* Memory retry wait */
@@ -254,18 +252,8 @@  struct dx_hash_info {
 #define finish_open_simple(f, e)		(e)
 #define ihold(i)				do { (void)(i); } while (0)
 
-/* Sync operations - stubs */
-#define sync_mapping_buffers(m)			({ (void)(m); 0; })
-#define sync_inode_metadata(i, w)		({ (void)(i); (void)(w); 0; })
-
-/* DAX stubs - DAX not supported in U-Boot */
-#define IS_DAX(inode)				(0)
-#define dax_break_layout_final(inode)		do { } while (0)
-#define dax_writeback_mapping_range(m, bd, wb)	({ (void)(m); (void)(bd); (void)(wb); 0; })
-#define dax_zero_range(i, p, l, d, op)		({ (void)(i); (void)(p); (void)(l); (void)(d); (void)(op); -EOPNOTSUPP; })
-#define dax_break_layout_inode(i, m)		({ (void)(i); (void)(m); 0; })
-
 #include <linux/path.h>
+#include <linux/dax.h>
 
 #include <linux/fsverity.h>
 #include <linux/iversion.h>
@@ -466,7 +454,6 @@  int sync_filesystem(void *sb);
 /* JBD2 checkpoint.c and commit.c stubs */
 #include <asm-generic/bitops/lock.h>
 /* smp_mb__after_atomic is now in linux/smp.h */
-#define ktime_get_coarse_real_ts64(ts)	do { (ts)->tv_sec = 0; (ts)->tv_nsec = 0; } while (0)
 #define crc32_be(crc, p, len)		crc32(crc, p, len)
 
 /* ext4l support functions (support.c) */
@@ -490,10 +477,6 @@  int bmap(struct inode *inode, sector_t *block);
 
 #include <linux/proc_fs.h>
 
-/* Block device operations for journal.c */
-#define truncate_inode_pages_range(m, s, e) \
-	do { (void)(m); (void)(s); (void)(e); } while (0)
-
 /* Memory allocation for journal.c */
 #define __get_free_pages(gfp, order)	((unsigned long)memalign(PAGE_SIZE, PAGE_SIZE << (order)))
 #define free_pages(addr, order)		free((void *)(addr))
diff --git a/include/linux/dax.h b/include/linux/dax.h
index adc0f9411a2..7e80fc97cd3 100644
--- a/include/linux/dax.h
+++ b/include/linux/dax.h
@@ -4,6 +4,7 @@ 
 
 #include <linux/types.h>
 #include <linux/pfn_t.h>
+#include <linux/mm_types.h>
 
 struct address_space;
 struct dax_device;
@@ -12,11 +13,8 @@  struct iomap_ops;
 struct kiocb;
 struct iov_iter;
 struct vm_fault;
-
-typedef unsigned int vm_fault_t;
-
-#define VM_FAULT_SIGBUS		0x0002
-#define VM_FAULT_NOPAGE		0x0100
+struct file;
+struct inode;
 
 /* DAX is not supported in U-Boot - provide stubs */
 static inline ssize_t
@@ -44,10 +42,15 @@  static inline bool dax_mapping(struct address_space *mapping)
 	return false;
 }
 
-static inline bool daxdev_mapping_supported(struct vm_area_struct *vma,
-					    struct dax_device *dax_dev)
-{
-	return false;
-}
+/* 3-arg version used by ext4 */
+#define daxdev_mapping_supported(f, i, d) ({ (void)(f); (void)(i); (void)(d); 1; })
+
+/* DAX stubs */
+#define IS_DAX(inode)				(0)
+#define dax_break_layout_final(inode)		do { } while (0)
+#define dax_writeback_mapping_range(m, bd, wb)	({ (void)(m); (void)(bd); (void)(wb); 0; })
+#define dax_zero_range(i, p, l, d, op) \
+	({ (void)(i); (void)(p); (void)(l); (void)(d); (void)(op); -EOPNOTSUPP; })
+#define dax_break_layout_inode(i, m)		({ (void)(i); (void)(m); 0; })
 
 #endif /* _LINUX_DAX_H */
diff --git a/include/linux/fs.h b/include/linux/fs.h
index 9ced2c78017..c8006d668b5 100644
--- a/include/linux/fs.h
+++ b/include/linux/fs.h
@@ -667,6 +667,10 @@  struct inode_operations {
 #define generic_buffers_fsync_noflush(f, s, e, d) \
 	({ (void)(f); (void)(s); (void)(e); (void)(d); 0; })
 
+/* Sync operations - stubs */
+#define sync_mapping_buffers(m)		({ (void)(m); 0; })
+#define sync_inode_metadata(i, w)	({ (void)(i); (void)(w); 0; })
+
 /* Generic attribute operations */
 #define generic_fillattr(m, req, i, s)	do { } while (0)
 #define generic_fill_statx_atomic_writes(s, u_m, u_M, g) do { } while (0)
diff --git a/include/linux/ktime.h b/include/linux/ktime.h
index c853e694823..04767da5305 100644
--- a/include/linux/ktime.h
+++ b/include/linux/ktime.h
@@ -67,4 +67,13 @@  static inline ktime_t ktime_add_ns(ktime_t kt, s64 ns)
  */
 #define ktime_get_ns()		(0ULL)
 
+/**
+ * ktime_get_coarse_real_ts64() - get coarse real time
+ * @ts: timespec64 to fill
+ *
+ * U-Boot stub - sets time to 0.
+ */
+#define ktime_get_coarse_real_ts64(ts) \
+	do { (ts)->tv_sec = 0; (ts)->tv_nsec = 0; } while (0)
+
 #endif /* _LINUX_KTIME_H */