From: Simon Glass <simon.glass@canonical.com> Move sb_rdonly(), inode_is_locked(), i_size_write(), i_size_read(), i_blocksize(), inode_newsize_ok(), IS_SYNC(), IS_APPEND(), and IS_IMMUTABLE() macros 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 | 16 +++------------- include/linux/fs.h | 22 ++++++++++++++++++++++ 2 files changed, 25 insertions(+), 13 deletions(-) diff --git a/fs/ext4l/ext4_uboot.h b/fs/ext4l/ext4_uboot.h index d6b7acc66b3..0b3b2d6f2e5 100644 --- a/fs/ext4l/ext4_uboot.h +++ b/fs/ext4l/ext4_uboot.h @@ -284,10 +284,7 @@ int __ext4_xattr_set_credits(struct super_block *sb, struct inode *inode, #define sb_issue_zeroout(sb, blk, num, gfp) ({ (void)(sb); (void)(blk); (void)(num); (void)(gfp); 0; }) #define blkdev_issue_flush(bdev) ({ (void)(bdev); 0; }) -/* Inode locking - stubs */ -#define inode_is_locked(i) (1) -#define i_size_write(i, s) do { (i)->i_size = (s); } while (0) -#define i_size_read(i) ((i)->i_size) +/* inode_is_locked, i_size_write, i_size_read are in linux/fs.h */ /* spin_trylock is defined in linux/spinlock.h */ @@ -707,14 +704,9 @@ static inline unsigned long memweight(const void *ptr, size_t bytes) /* DAX device mapping check - always false in U-Boot */ #define daxdev_mapping_supported(f, i, d) ({ (void)(f); (void)(i); (void)(d); 1; }) -/* Inode time/size operations */ -#define inode_newsize_ok(i, s) ({ (void)(i); (void)(s); 0; }) +/* Inode time/size operations - inode_newsize_ok, i_blocksize, IS_SYNC are in linux/fs.h */ #define inode_set_ctime_current(i) ({ (void)(i); (struct timespec64){}; }) #define inode_set_mtime_to_ts(i, ts) ({ (void)(i); (ts); }) -#define i_blocksize(i) (1U << (i)->i_blkbits) - -/* IS_SYNC macro */ -#define IS_SYNC(inode) (0) /* Case-folding stubs - not supported in U-Boot */ #define sb_no_casefold_compat_fallback(sb) ({ (void)(sb); 1; }) @@ -925,9 +917,7 @@ extern struct inode *iget_locked(struct super_block *sb, unsigned long ino); #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) -/* Inode flag macros */ -#define IS_APPEND(inode) ((inode)->i_flags & S_APPEND) -#define IS_IMMUTABLE(inode) ((inode)->i_flags & S_IMMUTABLE) +/* IS_APPEND, IS_IMMUTABLE are in linux/fs.h */ /* File operations */ #define file_update_time(f) do { } while (0) diff --git a/include/linux/fs.h b/include/linux/fs.h index f295086523a..75e4bd3e951 100644 --- a/include/linux/fs.h +++ b/include/linux/fs.h @@ -283,4 +283,26 @@ enum { #define inode_lock_nested(inode, subclass) \ do { (void)(inode); (void)(subclass); } while (0) +/* + * Inode helper functions + */ + +/* inode_is_locked - check if inode lock is held (always true in U-Boot) */ +#define inode_is_locked(i) (1) + +/* i_size accessors */ +#define i_size_write(i, s) do { (i)->i_size = (s); } while (0) +#define i_size_read(i) ((i)->i_size) + +/* i_blocksize - get block size from inode */ +#define i_blocksize(i) (1U << (i)->i_blkbits) + +/* inode_newsize_ok - check if new size is valid (always ok in U-Boot) */ +#define inode_newsize_ok(i, s) ({ (void)(i); (void)(s); 0; }) + +/* IS_SYNC, IS_APPEND, IS_IMMUTABLE - inode flag checks */ +#define IS_SYNC(inode) (0) +#define IS_APPEND(inode) ((inode)->i_flags & S_APPEND) +#define IS_IMMUTABLE(inode) ((inode)->i_flags & S_IMMUTABLE) + #endif /* _LINUX_FS_H */ -- 2.43.0