From: Simon Glass <simon.glass@canonical.com> Create linux/mbcache.h with mb_cache structure and cache operation stubs. Metadata block caching is not supported in U-Boot. Update ext4_uboot.h to use the new header instead of duplicating these definitions. Co-developed-by: Claude Opus 4.5 <noreply@anthropic.com> Signed-off-by: Simon Glass <simon.glass@canonical.com> --- fs/ext4l/ext4_uboot.h | 29 ++------------------ include/linux/mbcache.h | 60 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 62 insertions(+), 27 deletions(-) create mode 100644 include/linux/mbcache.h diff --git a/fs/ext4l/ext4_uboot.h b/fs/ext4l/ext4_uboot.h index b6744894169..ba90cce3e67 100644 --- a/fs/ext4l/ext4_uboot.h +++ b/fs/ext4l/ext4_uboot.h @@ -1477,33 +1477,8 @@ static inline void super_set_uuid(struct super_block *sb, const u8 *uuid, /* super_set_sysfs_name_bdev is now in linux/kobject.h */ -/* - * mb_cache - metadata block cache stubs for xattr.c - * Not supported in U-Boot - xattr caching disabled - */ -struct mb_cache { - int dummy; -}; - -struct mb_cache_entry { - u64 e_value; - unsigned long e_flags; -}; - -/* MB cache flags */ -#define MBE_REUSABLE_B 0 - -#define mb_cache_create(bits) kzalloc(sizeof(struct mb_cache), GFP_KERNEL) -#define mb_cache_destroy(cache) do { kfree(cache); } while (0) -#define mb_cache_entry_find_first(c, h) ((struct mb_cache_entry *)NULL) -#define mb_cache_entry_find_next(c, e) ((struct mb_cache_entry *)NULL) -#define mb_cache_entry_delete_or_get(c, k, v) ((struct mb_cache_entry *)NULL) -#define mb_cache_entry_get(c, k, v) ((struct mb_cache_entry *)NULL) -#define mb_cache_entry_put(c, e) do { (void)(c); (void)(e); } while (0) -#define mb_cache_entry_create(c, f, k, v, r) ({ (void)(c); (void)(f); (void)(k); (void)(v); (void)(r); 0; }) -#define mb_cache_entry_delete(c, k, v) do { (void)(c); (void)(k); (void)(v); } while (0) -#define mb_cache_entry_touch(c, e) do { (void)(c); (void)(e); } while (0) -#define mb_cache_entry_wait_unused(e) do { (void)(e); } while (0) +/* mb_cache - use linux/mbcache.h */ +#include <linux/mbcache.h> /* xattr helper stubs for xattr.c */ #define xattr_handler_can_list(h, d) ({ (void)(h); (void)(d); 0; }) diff --git a/include/linux/mbcache.h b/include/linux/mbcache.h new file mode 100644 index 00000000000..b2383891211 --- /dev/null +++ b/include/linux/mbcache.h @@ -0,0 +1,60 @@ +/* SPDX-License-Identifier: GPL-2.0 */ +/* + * Metadata block cache definitions for U-Boot + * + * Based on Linux mbcache.h - cache for filesystem metadata blocks. + * U-Boot stubs - metadata caching is not supported. + */ +#ifndef _LINUX_MBCACHE_H +#define _LINUX_MBCACHE_H + +#include <linux/types.h> +#include <linux/slab.h> + +/** + * struct mb_cache - metadata block cache + * + * U-Boot stub - caching not supported. + */ +struct mb_cache { + int dummy; +}; + +/** + * struct mb_cache_entry - cache entry + * @e_value: cached value + * @e_flags: entry flags + */ +struct mb_cache_entry { + u64 e_value; + unsigned long e_flags; +}; + +/* MB cache flags */ +#define MBE_REUSABLE_B 0 + +/* MB cache operations - all stubbed as no-ops */ +#define mb_cache_create(bits) \ + kzalloc(sizeof(struct mb_cache), GFP_KERNEL) +#define mb_cache_destroy(cache) \ + do { kfree(cache); } while (0) +#define mb_cache_entry_find_first(c, h) \ + ((struct mb_cache_entry *)NULL) +#define mb_cache_entry_find_next(c, e) \ + ((struct mb_cache_entry *)NULL) +#define mb_cache_entry_delete_or_get(c, k, v) \ + ((struct mb_cache_entry *)NULL) +#define mb_cache_entry_get(c, k, v) \ + ((struct mb_cache_entry *)NULL) +#define mb_cache_entry_put(c, e) \ + do { (void)(c); (void)(e); } while (0) +#define mb_cache_entry_create(c, f, k, v, r) \ + ({ (void)(c); (void)(f); (void)(k); (void)(v); (void)(r); 0; }) +#define mb_cache_entry_delete(c, k, v) \ + do { (void)(c); (void)(k); (void)(v); } while (0) +#define mb_cache_entry_touch(c, e) \ + do { (void)(c); (void)(e); } while (0) +#define mb_cache_entry_wait_unused(e) \ + do { (void)(e); } while (0) + +#endif /* _LINUX_MBCACHE_H */ -- 2.43.0