ext2: Resolve 'dereferencing pointer to incomplete type' when enabling EXT2_XATTR_DEBUG
authorJosh Hunt <johunt@akamai.com>
Mon, 27 Dec 2010 21:46:38 +0000 (13:46 -0800)
committerJan Kara <jack@suse.cz>
Mon, 10 Jan 2011 18:04:08 +0000 (19:04 +0100)
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>
fs/mbcache.c
include/linux/mbcache.h

index 93444747237b98c03d5192870bd9740311da93f7..a25444ab2baf8562a2a0d73da30c7ba4cfd41d39 100644 (file)
@@ -76,18 +76,6 @@ EXPORT_SYMBOL(mb_cache_entry_find_first);
 EXPORT_SYMBOL(mb_cache_entry_find_next);
 #endif
 
-struct mb_cache {
-       struct list_head                c_cache_list;
-       const char                      *c_name;
-       atomic_t                        c_entry_count;
-       int                             c_max_entries;
-       int                             c_bucket_bits;
-       struct kmem_cache               *c_entry_cache;
-       struct list_head                *c_block_hash;
-       struct list_head                *c_index_hash;
-};
-
-
 /*
  * Global data: list of all mbcache's, lru list, and a spinlock for
  * accessing cache data structures on SMP machines. The lru list is
index 54cbbac1e71dafbdd8802ea3df5cab51f6a9ab1b..5525d370701db049e176456292cdb725366d59f7 100644 (file)
@@ -18,6 +18,17 @@ struct mb_cache_entry {
        } e_index;
 };
 
+struct mb_cache {
+       struct list_head                c_cache_list;
+       const char                      *c_name;
+       atomic_t                        c_entry_count;
+       int                             c_max_entries;
+       int                             c_bucket_bits;
+       struct kmem_cache               *c_entry_cache;
+       struct list_head                *c_block_hash;
+       struct list_head                *c_index_hash;
+};
+
 /* Functions on caches */
 
 struct mb_cache *mb_cache_create(const char *, int);