[Concept,01/16] ext4l: Move inode locking stubs to linux/fs.h

Message ID 20260119214846.3087611-2-sjg@u-boot.org
State New
Headers
Series ext4l: Move definitions to standard Linux headers |

Commit Message

Simon Glass Jan. 19, 2026, 9:48 p.m. UTC
  From: Simon Glass <simon.glass@canonical.com>

U-Boot is single-threaded, so inode locking is a no-op. Move the stub
macros (inode_lock, inode_unlock, inode_lock_shared, inode_unlock_shared,
inode_trylock, inode_trylock_shared, inode_dio_wait, inode_lock_nested)
and the I_MUTEX_* enum to include/linux/fs.h where they belong.

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

 fs/ext4l/ext4_uboot.h | 15 ++-------------
 include/linux/fs.h    | 13 +++++++++++++
 2 files changed, 15 insertions(+), 13 deletions(-)
  

Patch

diff --git a/fs/ext4l/ext4_uboot.h b/fs/ext4l/ext4_uboot.h
index ba462af45e4..8daf01779c5 100644
--- a/fs/ext4l/ext4_uboot.h
+++ b/fs/ext4l/ext4_uboot.h
@@ -719,15 +719,7 @@  static inline unsigned long memweight(const void *ptr, size_t bytes)
 #define bh_uptodate_or_lock(bh)		(1)
 /* ext4_read_bh is stubbed in interface.c */
 
-/* Inode locking */
-#define inode_lock(inode)		do { } while (0)
-#define inode_unlock(inode)		do { } while (0)
-#define inode_lock_shared(inode)	do { } while (0)
-#define inode_unlock_shared(inode)	do { } while (0)
-#define inode_trylock(inode)		(1)
-#define inode_trylock_shared(inode)	(1)
-#define inode_dio_wait(inode)		do { } while (0)
-
+/* Inode locking stubs are in linux/fs.h */
 /* Lock debugging stubs are in linux/lockdep.h */
 
 /* File operations */
@@ -1344,10 +1336,7 @@  static inline void super_set_uuid(struct super_block *sb, const u8 *uuid,
 #define xattr_handler_can_list(h, d)		({ (void)(h); (void)(d); 0; })
 #define xattr_prefix(h)				({ (void)(h); (const char *)NULL; })
 
-/* I_MUTEX_* inode lock classes are in linux/fs.h */
-
-/* Nested inode locking stub */
-#define inode_lock_nested(i, c)			do { (void)(i); (void)(c); } while (0)
+/* I_MUTEX_* constants and inode locking stubs are in linux/fs.h */
 
 /* PF_MEMALLOC_NOFS is in linux/sched.h */
 
diff --git a/include/linux/fs.h b/include/linux/fs.h
index 5c357cdacd2..6d8b9b5c79b 100644
--- a/include/linux/fs.h
+++ b/include/linux/fs.h
@@ -270,4 +270,17 @@  enum {
 	I_MUTEX_PARENT2,
 };
 
+/*
+ * Inode locking stubs - U-Boot is single-threaded, no locking needed.
+ */
+#define inode_lock(inode)		do { (void)(inode); } while (0)
+#define inode_unlock(inode)		do { (void)(inode); } while (0)
+#define inode_lock_shared(inode)	do { (void)(inode); } while (0)
+#define inode_unlock_shared(inode)	do { (void)(inode); } while (0)
+#define inode_trylock(inode)		({ (void)(inode); 1; })
+#define inode_trylock_shared(inode)	({ (void)(inode); 1; })
+#define inode_dio_wait(inode)		do { (void)(inode); } while (0)
+#define inode_lock_nested(inode, subclass) \
+	do { (void)(inode); (void)(subclass); } while (0)
+
 #endif /* _LINUX_FS_H */