On Thu, Apr 25, 2019 at 10:22:30PM +0800, Qu Wenruo wrote: > > > On 2019/4/25 下午10:13, David Sterba wrote: > > On Thu, Apr 25, 2019 at 08:30:38AM +0800, Qu Wenruo wrote: > >> > >> > >> On 2019/4/25 上午1:45, David Sterba wrote: > >>> On Wed, Apr 24, 2019 at 03:22:53PM +0800, Qu Wenruo wrote: > >>>> Allowing error injection for btrfs_check_leaf_full() and > >>>> btrfs_check_node() is useful to test the failure path of btrfs write > >>>> time tree check. > >>>> > >>>> Signed-off-by: Qu Wenruo <w...@suse.com> > >>> > >>> Does not compile: > >>> > >>> CC [M] fs/btrfs/tests/extent-map-tests.o > >>> In file included from fs/btrfs/tree-checker.c:18: > >>> ./include/linux/error-injection.h:15:15: error: unknown type name ‘bool’ > >>> static inline bool within_error_injection_list(unsigned long addr) > >>> ^~~~ > >>> ./include/linux/error-injection.h: In function > >>> ‘within_error_injection_list’: > >>> ./include/linux/error-injection.h:17:9: error: ‘false’ undeclared (first > >>> use in this function) > >>> return false; > >>> ^~~~~ > >>> ./include/linux/error-injection.h:17:9: note: each undeclared identifier > >>> is reported only once for each function it appears in > >>> make[1]: *** [scripts/Makefile.build:275: fs/btrfs/tree-checker.o] Error 1 > >>> make[1]: *** Waiting for unfinished jobs.... > >>> make: *** [Makefile:1737: fs/btrfs/] Error 2 > >> > >> Compiles without problem here using 8.2.1 gcc. > >> > >> ... > >> CC [M] fs/btrfs/check-integrity.o > >> CC [M] fs/btrfs/ref-verify.o > >> CC [M] fs/btrfs/tests/free-space-tests.o > >> CC [M] fs/btrfs/tests/extent-buffer-tests.o > >> CC [M] fs/btrfs/tests/btrfs-tests.o > >> CC [M] fs/btrfs/tests/extent-io-tests.o > >> CC [M] fs/btrfs/tests/inode-tests.o > >> CC [M] fs/btrfs/tests/qgroup-tests.o > >> CC [M] fs/btrfs/tests/free-space-tree-tests.o > >> CC [M] fs/btrfs/tests/extent-map-tests.o > >> LD [M] fs/btrfs/btrfs.o > >> Building modules, stage 2. > >> MODPOST 1 modules > >> CC fs/btrfs/btrfs.mod.o > >> LD [M] fs/btrfs/btrfs.ko > >> > >>> > >>> > >>> gcc is 8.3.1 > >>> > >> > >> Upgrading to gcc 8.3.0, still passes. > >> > >> Is that a regression in gcc 8.3.1? > > > > I don't think it's caused by compiler but config options. And the build > > bot sees the compilation failure too, so it's not specific to my setup: > > > > https://lists.01.org/pipermail/kbuild-all/2019-April/060303.html > > > > Got it reproduced, not sure why the config could affect this problem. > > But the fix is always straightforward, include types for bool and stddef > for true/false.
As this is only a minor compilation issue, I'll add the includes so we don't have to wait on the proper fix to land and you can use the injection.