Hi Chandan, [auto build test WARNING on tip/perf/core] [also build test WARNING on v4.6-rc4 next-20160418] [cannot apply to btrfs/next] [if your patch is applied to the wrong git tree, please drop us a note to help improving the system]
url: https://github.com/0day-ci/linux/commits/Chandan-Rajendra/Btrfs-subpage-blocksize-Define-extent_buffer_head/20160417-202933 config: ia64-allmodconfig (attached as .config) reproduce: wget https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # save the attached .config to linux build tree make.cross ARCH=ia64 All warnings (new ones prefixed by >>): fs/btrfs/extent_io.c: In function 'alloc_test_extent_buffer': fs/btrfs/extent_io.c:4953:4: error: 'struct extent_buffer' has no member named 'fs_info' eb->fs_info = fs_info; ^ fs/btrfs/extent_io.c:4971:41: error: 'struct extent_buffer' has no member named 'bflags' set_bit(EXTENT_BUFFER_HEAD_IN_TREE, &eb->bflags); ^ In file included from arch/ia64/include/asm/intrinsics.h:10:0, from arch/ia64/include/asm/bitops.h:18, from include/linux/bitops.h:36, from fs/btrfs/extent_io.c:1: fs/btrfs/extent_io.c:4979:16: error: 'struct extent_buffer' has no member named 'refs' atomic_inc(&eb->refs); ^ arch/ia64/include/uapi/asm/intrinsics.h:60:24: note: in definition of macro 'ia64_fetchadd' volatile __typeof__(*(v)) *_v = (v); \ ^ arch/ia64/include/asm/atomic.h:56:5: note: in expansion of macro 'ia64_fetch_and_add' ? ia64_fetch_and_add(__ia64_aar_i, &(v)->counter) \ ^ arch/ia64/include/asm/atomic.h:202:33: note: in expansion of macro 'atomic_add_return' #define atomic_add(i,v) (void)atomic_add_return((i), (v)) ^ arch/ia64/include/asm/atomic.h:204:25: note: in expansion of macro 'atomic_add' #define atomic_inc(v) atomic_add(1, (v)) ^ >> fs/btrfs/extent_io.c:4979:2: note: in expansion of macro 'atomic_inc' atomic_inc(&eb->refs); ^ fs/btrfs/extent_io.c:4979:16: error: 'struct extent_buffer' has no member named 'refs' atomic_inc(&eb->refs); ^ arch/ia64/include/uapi/asm/intrinsics.h:60:35: note: in definition of macro 'ia64_fetchadd' volatile __typeof__(*(v)) *_v = (v); \ ^ arch/ia64/include/asm/atomic.h:56:5: note: in expansion of macro 'ia64_fetch_and_add' ? ia64_fetch_and_add(__ia64_aar_i, &(v)->counter) \ ^ arch/ia64/include/asm/atomic.h:202:33: note: in expansion of macro 'atomic_add_return' #define atomic_add(i,v) (void)atomic_add_return((i), (v)) ^ arch/ia64/include/asm/atomic.h:204:25: note: in expansion of macro 'atomic_add' #define atomic_inc(v) atomic_add(1, (v)) ^ >> fs/btrfs/extent_io.c:4979:2: note: in expansion of macro 'atomic_inc' atomic_inc(&eb->refs); ^ fs/btrfs/extent_io.c:4979:16: error: 'struct extent_buffer' has no member named 'refs' atomic_inc(&eb->refs); ^ arch/ia64/include/uapi/asm/intrinsics.h:43:10: note: in definition of macro 'IA64_FETCHADD' switch (sz) { \ ^ arch/ia64/include/uapi/asm/intrinsics.h:83:34: note: in expansion of macro 'ia64_fetchadd' #define ia64_fetch_and_add(i,v) (ia64_fetchadd(i, v, rel) + (i)) /* return new value */ ^ arch/ia64/include/asm/atomic.h:56:5: note: in expansion of macro 'ia64_fetch_and_add' ? ia64_fetch_and_add(__ia64_aar_i, &(v)->counter) \ ^ arch/ia64/include/asm/atomic.h:202:33: note: in expansion of macro 'atomic_add_return' #define atomic_add(i,v) (void)atomic_add_return((i), (v)) ^ arch/ia64/include/asm/atomic.h:204:25: note: in expansion of macro 'atomic_add' #define atomic_inc(v) atomic_add(1, (v)) ^ >> fs/btrfs/extent_io.c:4979:2: note: in expansion of macro 'atomic_inc' atomic_inc(&eb->refs); ^ fs/btrfs/extent_io.c:4979:16: error: 'struct extent_buffer' has no member named 'refs' atomic_inc(&eb->refs); ^ arch/ia64/include/uapi/asm/intrinsics.h:43:10: note: in definition of macro 'IA64_FETCHADD' switch (sz) { \ ^ arch/ia64/include/uapi/asm/intrinsics.h:83:34: note: in expansion of macro 'ia64_fetchadd' #define ia64_fetch_and_add(i,v) (ia64_fetchadd(i, v, rel) + (i)) /* return new value */ ^ arch/ia64/include/asm/atomic.h:56:5: note: in expansion of macro 'ia64_fetch_and_add' ? ia64_fetch_and_add(__ia64_aar_i, &(v)->counter) \ ^ arch/ia64/include/asm/atomic.h:202:33: note: in expansion of macro 'atomic_add_return' #define atomic_add(i,v) (void)atomic_add_return((i), (v)) ^ arch/ia64/include/asm/atomic.h:204:25: note: in expansion of macro 'atomic_add' #define atomic_inc(v) atomic_add(1, (v)) ^ >> fs/btrfs/extent_io.c:4979:2: note: in expansion of macro 'atomic_inc' atomic_inc(&eb->refs); ^ fs/btrfs/extent_io.c:4979:16: error: 'struct extent_buffer' has no member named 'refs' atomic_inc(&eb->refs); ^ arch/ia64/include/uapi/asm/intrinsics.h:43:10: note: in definition of macro 'IA64_FETCHADD' switch (sz) { \ ^ arch/ia64/include/uapi/asm/intrinsics.h:83:34: note: in expansion of macro 'ia64_fetchadd' #define ia64_fetch_and_add(i,v) (ia64_fetchadd(i, v, rel) + (i)) /* return new value */ ^ arch/ia64/include/asm/atomic.h:56:5: note: in expansion of macro 'ia64_fetch_and_add' ? ia64_fetch_and_add(__ia64_aar_i, &(v)->counter) \ ^ arch/ia64/include/asm/atomic.h:202:33: note: in expansion of macro 'atomic_add_return' #define atomic_add(i,v) (void)atomic_add_return((i), (v)) ^ arch/ia64/include/asm/atomic.h:204:25: note: in expansion of macro 'atomic_add' #define atomic_inc(v) atomic_add(1, (v)) ^ >> fs/btrfs/extent_io.c:4979:2: note: in expansion of macro 'atomic_inc' atomic_inc(&eb->refs); ^ fs/btrfs/extent_io.c:4979:16: error: 'struct extent_buffer' has no member named 'refs' atomic_inc(&eb->refs); ^ arch/ia64/include/uapi/asm/intrinsics.h:43:10: note: in definition of macro 'IA64_FETCHADD' switch (sz) { \ ^ arch/ia64/include/uapi/asm/intrinsics.h:83:34: note: in expansion of macro 'ia64_fetchadd' #define ia64_fetch_and_add(i,v) (ia64_fetchadd(i, v, rel) + (i)) /* return new value */ ^ arch/ia64/include/asm/atomic.h:56:5: note: in expansion of macro 'ia64_fetch_and_add' ? ia64_fetch_and_add(__ia64_aar_i, &(v)->counter) \ ^ arch/ia64/include/asm/atomic.h:202:33: note: in expansion of macro 'atomic_add_return' #define atomic_add(i,v) (void)atomic_add_return((i), (v)) ^ arch/ia64/include/asm/atomic.h:204:25: note: in expansion of macro 'atomic_add' #define atomic_inc(v) atomic_add(1, (v)) ^ >> fs/btrfs/extent_io.c:4979:2: note: in expansion of macro 'atomic_inc' atomic_inc(&eb->refs); ^ fs/btrfs/extent_io.c:4979:16: error: 'struct extent_buffer' has no member named 'refs' atomic_inc(&eb->refs); ^ arch/ia64/include/uapi/asm/intrinsics.h:43:10: note: in definition of macro 'IA64_FETCHADD' switch (sz) { \ ^ arch/ia64/include/uapi/asm/intrinsics.h:83:34: note: in expansion of macro 'ia64_fetchadd' #define ia64_fetch_and_add(i,v) (ia64_fetchadd(i, v, rel) + (i)) /* return new value */ ^ arch/ia64/include/asm/atomic.h:56:5: note: in expansion of macro 'ia64_fetch_and_add' ? ia64_fetch_and_add(__ia64_aar_i, &(v)->counter) \ ^ arch/ia64/include/asm/atomic.h:202:33: note: in expansion of macro 'atomic_add_return' #define atomic_add(i,v) (void)atomic_add_return((i), (v)) ^ arch/ia64/include/asm/atomic.h:204:25: note: in expansion of macro 'atomic_add' #define atomic_inc(v) atomic_add(1, (v)) ^ >> fs/btrfs/extent_io.c:4979:2: note: in expansion of macro 'atomic_inc' atomic_inc(&eb->refs); ^ fs/btrfs/extent_io.c:4979:16: error: 'struct extent_buffer' has no member named 'refs' atomic_inc(&eb->refs); ^ arch/ia64/include/uapi/asm/intrinsics.h:43:10: note: in definition of macro 'IA64_FETCHADD' switch (sz) { \ ^ arch/ia64/include/uapi/asm/intrinsics.h:83:34: note: in expansion of macro 'ia64_fetchadd' #define ia64_fetch_and_add(i,v) (ia64_fetchadd(i, v, rel) + (i)) /* return new value */ ^ arch/ia64/include/asm/atomic.h:56:5: note: in expansion of macro 'ia64_fetch_and_add' ? ia64_fetch_and_add(__ia64_aar_i, &(v)->counter) \ ^ arch/ia64/include/asm/atomic.h:202:33: note: in expansion of macro 'atomic_add_return' #define atomic_add(i,v) (void)atomic_add_return((i), (v)) ^ arch/ia64/include/asm/atomic.h:204:25: note: in expansion of macro 'atomic_add' #define atomic_inc(v) atomic_add(1, (v)) ^ >> fs/btrfs/extent_io.c:4979:2: note: in expansion of macro 'atomic_inc' atomic_inc(&eb->refs); ^ fs/btrfs/extent_io.c:4979:16: error: 'struct extent_buffer' has no member named 'refs' atomic_inc(&eb->refs); ^ arch/ia64/include/uapi/asm/intrinsics.h:43:10: note: in definition of macro 'IA64_FETCHADD' switch (sz) { \ ^ arch/ia64/include/uapi/asm/intrinsics.h:83:34: note: in expansion of macro 'ia64_fetchadd' #define ia64_fetch_and_add(i,v) (ia64_fetchadd(i, v, rel) + (i)) /* return new value */ ^ arch/ia64/include/asm/atomic.h:56:5: note: in expansion of macro 'ia64_fetch_and_add' ? ia64_fetch_and_add(__ia64_aar_i, &(v)->counter) \ ^ arch/ia64/include/asm/atomic.h:202:33: note: in expansion of macro 'atomic_add_return' #define atomic_add(i,v) (void)atomic_add_return((i), (v)) ^ arch/ia64/include/asm/atomic.h:204:25: note: in expansion of macro 'atomic_add' #define atomic_inc(v) atomic_add(1, (v)) ^ >> fs/btrfs/extent_io.c:4979:2: note: in expansion of macro 'atomic_inc' atomic_inc(&eb->refs); ^ fs/btrfs/extent_io.c:4979:16: error: 'struct extent_buffer' has no member named 'refs' atomic_inc(&eb->refs); ^ arch/ia64/include/uapi/asm/intrinsics.h:43:10: note: in definition of macro 'IA64_FETCHADD' switch (sz) { \ ^ arch/ia64/include/uapi/asm/intrinsics.h:83:34: note: in expansion of macro 'ia64_fetchadd' #define ia64_fetch_and_add(i,v) (ia64_fetchadd(i, v, rel) + (i)) /* return new value */ ^ arch/ia64/include/asm/atomic.h:56:5: note: in expansion of macro 'ia64_fetch_and_add' ? ia64_fetch_and_add(__ia64_aar_i, &(v)->counter) \ ^ arch/ia64/include/asm/atomic.h:202:33: note: in expansion of macro 'atomic_add_return' #define atomic_add(i,v) (void)atomic_add_return((i), (v)) ^ arch/ia64/include/asm/atomic.h:204:25: note: in expansion of macro 'atomic_add' #define atomic_inc(v) atomic_add(1, (v)) ^ >> fs/btrfs/extent_io.c:4979:2: note: in expansion of macro 'atomic_inc' atomic_inc(&eb->refs); ^ fs/btrfs/extent_io.c:4979:16: error: 'struct extent_buffer' has no member named 'refs' atomic_inc(&eb->refs); ^ arch/ia64/include/uapi/asm/intrinsics.h:80:16: note: in definition of macro 'ia64_fetchadd' (__typeof__(*(v))) (_tmp); /* return old value */ \ ^ arch/ia64/include/asm/atomic.h:56:5: note: in expansion of macro 'ia64_fetch_and_add' ? ia64_fetch_and_add(__ia64_aar_i, &(v)->counter) \ ^ arch/ia64/include/asm/atomic.h:202:33: note: in expansion of macro 'atomic_add_return' #define atomic_add(i,v) (void)atomic_add_return((i), (v)) ^ arch/ia64/include/asm/atomic.h:204:25: note: in expansion of macro 'atomic_add' #define atomic_inc(v) atomic_add(1, (v)) ^ >> fs/btrfs/extent_io.c:4979:2: note: in expansion of macro 'atomic_inc' atomic_inc(&eb->refs); ^ In file included from include/linux/atomic.h:4:0, from arch/ia64/include/asm/processor.h:80, from arch/ia64/include/asm/thread_info.h:11, from include/linux/thread_info.h:54, from include/asm-generic/preempt.h:4, from arch/ia64/include/generated/asm/preempt.h:1, from include/linux/preempt.h:59, from include/linux/spinlock.h:50, from include/linux/mmzone.h:7, from include/linux/gfp.h:5, from include/linux/slab.h:14, from fs/btrfs/extent_io.c:2: fs/btrfs/extent_io.c:4979:16: error: 'struct extent_buffer' has no member named 'refs' atomic_inc(&eb->refs); ^ arch/ia64/include/asm/atomic.h:57:35: note: in definition of macro 'atomic_add_return' : ia64_atomic_add(__ia64_aar_i, v); \ ^ arch/ia64/include/asm/atomic.h:204:25: note: in expansion of macro 'atomic_add' #define atomic_inc(v) atomic_add(1, (v)) ^ >> fs/btrfs/extent_io.c:4979:2: note: in expansion of macro 'atomic_inc' atomic_inc(&eb->refs); ^ In file included from arch/ia64/include/asm/bitops.h:16:0, from include/linux/bitops.h:36, from fs/btrfs/extent_io.c:1: fs/btrfs/extent_io.c: In function 'release_extent_buffer': fs/btrfs/extent_io.c:5149:16: error: 'buf' undeclared (first use in this function) &eb_head(buf)->bflags))) { ^ include/linux/compiler.h:170:42: note: in definition of macro 'unlikely' # define unlikely(x) __builtin_expect(!!(x), 0) ^ fs/btrfs/extent_io.c:5149:16: note: each undeclared identifier is reported only once for each function it appears in &eb_head(buf)->bflags))) { ^ include/linux/compiler.h:170:42: note: in definition of macro 'unlikely' # define unlikely(x) __builtin_expect(!!(x), 0) ^ fs/btrfs/extent_io.c:5150:33: error: 'eb' undeclared (first use in this function) __free_extent_buffer(eb_head(eb)); ^ vim +/atomic_inc +4979 fs/btrfs/extent_io.c faa2dbf0 Josef Bacik 2014-05-07 4963 if (ret == -EEXIST) { faa2dbf0 Josef Bacik 2014-05-07 4964 exists = find_extent_buffer(fs_info, start); faa2dbf0 Josef Bacik 2014-05-07 4965 if (exists) faa2dbf0 Josef Bacik 2014-05-07 4966 goto free_eb; faa2dbf0 Josef Bacik 2014-05-07 4967 else faa2dbf0 Josef Bacik 2014-05-07 4968 goto again; faa2dbf0 Josef Bacik 2014-05-07 4969 } faa2dbf0 Josef Bacik 2014-05-07 4970 check_buffer_tree_ref(eb); e6fa7cb7 Chandan Rajendra 2016-04-17 4971 set_bit(EXTENT_BUFFER_HEAD_IN_TREE, &eb->bflags); faa2dbf0 Josef Bacik 2014-05-07 4972 faa2dbf0 Josef Bacik 2014-05-07 4973 /* faa2dbf0 Josef Bacik 2014-05-07 4974 * We will free dummy extent buffer's if they come into faa2dbf0 Josef Bacik 2014-05-07 4975 * free_extent_buffer with a ref count of 2, but if we are using this we faa2dbf0 Josef Bacik 2014-05-07 4976 * want the buffers to stay in memory until we're done with them, so faa2dbf0 Josef Bacik 2014-05-07 4977 * bump the ref count again. faa2dbf0 Josef Bacik 2014-05-07 4978 */ faa2dbf0 Josef Bacik 2014-05-07 @4979 atomic_inc(&eb->refs); faa2dbf0 Josef Bacik 2014-05-07 4980 return eb; faa2dbf0 Josef Bacik 2014-05-07 4981 free_eb: faa2dbf0 Josef Bacik 2014-05-07 4982 btrfs_release_extent_buffer(eb); faa2dbf0 Josef Bacik 2014-05-07 4983 return exists; faa2dbf0 Josef Bacik 2014-05-07 4984 } faa2dbf0 Josef Bacik 2014-05-07 4985 #endif faa2dbf0 Josef Bacik 2014-05-07 4986 f28491e0 Josef Bacik 2013-12-16 4987 struct extent_buffer *alloc_extent_buffer(struct btrfs_fs_info *fs_info, :::::: The code at line 4979 was first introduced by commit :::::: faa2dbf004e89e8f7ccd28fbe6f07c308417b8ae Btrfs: add sanity tests for new qgroup accounting code :::::: TO: Josef Bacik <jba...@fb.com> :::::: CC: Chris Mason <c...@fb.com> --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation
.config.gz
Description: Binary data