Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

ext2: Resolve 'dereferencing pointer to incomplete type' when enabling EXT2_XATTR_DEBUG

When I enable EXT2_XATTR_DEBUG in fs/ext2/xattr.c I get a build error stating
the following:

CC fs/ext2/xattr.o
fs/ext2/xattr.c: In function 'ext2_xattr_cache_insert':
fs/ext2/xattr.c:841: error: dereferencing pointer to incomplete type
fs/ext2/xattr.c:846: error: dereferencing pointer to incomplete type
make[2]: *** [fs/ext2/xattr.o] Error 1
make[1]: *** [fs/ext2] Error 2
make: *** [fs] Error 2

These lines reference ext2_xattr_cache->c_entry_count which is defined
in struct mb_cache. struct mb_cache is currently only defined in fs/mbcache.c.
Moving struct mb_cache definition to include/linux/mbcache.h to resolve the
issue.

Signed-off-by: Josh Hunt <johunt@akamai.com>
Signed-off-by: Jan Kara <jack@suse.cz>

authored by

Josh Hunt and committed by
Jan Kara
d96336b0 8057b965

+11 -12
-12
fs/mbcache.c
··· 76 76 EXPORT_SYMBOL(mb_cache_entry_find_next); 77 77 #endif 78 78 79 - struct mb_cache { 80 - struct list_head c_cache_list; 81 - const char *c_name; 82 - atomic_t c_entry_count; 83 - int c_max_entries; 84 - int c_bucket_bits; 85 - struct kmem_cache *c_entry_cache; 86 - struct list_head *c_block_hash; 87 - struct list_head *c_index_hash; 88 - }; 89 - 90 - 91 79 /* 92 80 * Global data: list of all mbcache's, lru list, and a spinlock for 93 81 * accessing cache data structures on SMP machines. The lru list is
+11
include/linux/mbcache.h
··· 18 18 } e_index; 19 19 }; 20 20 21 + struct mb_cache { 22 + struct list_head c_cache_list; 23 + const char *c_name; 24 + atomic_t c_entry_count; 25 + int c_max_entries; 26 + int c_bucket_bits; 27 + struct kmem_cache *c_entry_cache; 28 + struct list_head *c_block_hash; 29 + struct list_head *c_index_hash; 30 + }; 31 + 21 32 /* Functions on caches */ 22 33 23 34 struct mb_cache *mb_cache_create(const char *, int);