Hi Damien, I love your patch! Yet something to improve: [auto build test ERROR on linus/master] [cannot apply to v5.3-rc6 next-20190830] [if your patch is applied to the wrong git tree, please drop us a note to help improve the system] url: https://github.com/0day-ci/linux/commits/Damien-Le-Moal/fs-New-zonefs-file-system/20190826-212833 config: s390-allmodconfig (attached as .config) compiler: s390-linux-gcc (GCC) 7.4.0 reproduce: wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # save the attached .config to linux build tree GCC_VERSION=7.4.0 make.cross ARCH=s390 If you fix the issue, kindly add following tag Reported-by: kbuild test robot All errors (new ones prefixed by >>): fs//zonefs/super.c:84:37: warning: 'struct iomap_writepage_ctx' declared inside parameter list will not be visible outside of this definition or declaration static int zonefs_map_blocks(struct iomap_writepage_ctx *wpc, ^~~~~~~~~~~~~~~~~~~ fs//zonefs/super.c: In function 'zonefs_map_blocks': >> fs//zonefs/super.c:87:19: error: dereferencing pointer to incomplete type 'struct iomap_writepage_ctx' if (offset >= wpc->iomap.offset && ^~ fs//zonefs/super.c: At top level: >> fs//zonefs/super.c:96:21: error: variable 'zonefs_writeback_ops' has initializer but incomplete type static const struct iomap_writeback_ops zonefs_writeback_ops = { ^~~~~~~~~~~~~~~~~~~ >> fs//zonefs/super.c:97:3: error: 'const struct iomap_writeback_ops' has no member named 'map_blocks' .map_blocks = zonefs_map_blocks, ^~~~~~~~~~ fs//zonefs/super.c:97:17: warning: excess elements in struct initializer .map_blocks = zonefs_map_blocks, ^~~~~~~~~~~~~~~~~ fs//zonefs/super.c:97:17: note: (near initialization for 'zonefs_writeback_ops') fs//zonefs/super.c: In function 'zonefs_writepage': >> fs//zonefs/super.c:102:9: error: variable 'wpc' has initializer but incomplete type struct iomap_writepage_ctx wpc = { }; ^~~~~~~~~~~~~~~~~~~ >> fs//zonefs/super.c:102:29: error: storage size of 'wpc' isn't known struct iomap_writepage_ctx wpc = { }; ^~~ >> fs//zonefs/super.c:104:9: error: implicit declaration of function 'iomap_writepage'; did you mean 'iomap_readpage'? [-Werror=implicit-function-declaration] return iomap_writepage(page, wbc, &wpc, &zonefs_writeback_ops); ^~~~~~~~~~~~~~~ iomap_readpage fs//zonefs/super.c:102:29: warning: unused variable 'wpc' [-Wunused-variable] struct iomap_writepage_ctx wpc = { }; ^~~ fs//zonefs/super.c: In function 'zonefs_writepages': fs//zonefs/super.c:110:9: error: variable 'wpc' has initializer but incomplete type struct iomap_writepage_ctx wpc = { }; ^~~~~~~~~~~~~~~~~~~ fs//zonefs/super.c:110:29: error: storage size of 'wpc' isn't known struct iomap_writepage_ctx wpc = { }; ^~~ >> fs//zonefs/super.c:112:9: error: implicit declaration of function 'iomap_writepages'; did you mean 'do_writepages'? [-Werror=implicit-function-declaration] return iomap_writepages(mapping, wbc, &wpc, &zonefs_writeback_ops); ^~~~~~~~~~~~~~~~ do_writepages fs//zonefs/super.c:110:29: warning: unused variable 'wpc' [-Wunused-variable] struct iomap_writepage_ctx wpc = { }; ^~~ fs//zonefs/super.c: At top level: >> fs//zonefs/super.c:96:41: error: storage size of 'zonefs_writeback_ops' isn't known static const struct iomap_writeback_ops zonefs_writeback_ops = { ^~~~~~~~~~~~~~~~~~~~ fs//zonefs/super.c: In function 'zonefs_writepage': fs//zonefs/super.c:105:1: warning: control reaches end of non-void function [-Wreturn-type] } ^ fs//zonefs/super.c: In function 'zonefs_writepages': fs//zonefs/super.c:113:1: warning: control reaches end of non-void function [-Wreturn-type] } ^ cc1: some warnings being treated as errors vim +87 fs//zonefs/super.c 83 > 84 static int zonefs_map_blocks(struct iomap_writepage_ctx *wpc, 85 struct inode *inode, loff_t offset) 86 { > 87 if (offset >= wpc->iomap.offset && 88 offset < wpc->iomap.offset + wpc->iomap.length) 89 return 0; 90 91 memset(&wpc->iomap, 0, sizeof(wpc->iomap)); 92 return zonefs_iomap_begin(inode, offset, zonefs_file_max_size(inode), 93 0, &wpc->iomap); 94 } 95 > 96 static const struct iomap_writeback_ops zonefs_writeback_ops = { > 97 .map_blocks = zonefs_map_blocks, 98 }; 99 100 static int zonefs_writepage(struct page *page, struct writeback_control *wbc) 101 { > 102 struct iomap_writepage_ctx wpc = { }; 103 > 104 return iomap_writepage(page, wbc, &wpc, &zonefs_writeback_ops); 105 } 106 107 static int zonefs_writepages(struct address_space *mapping, 108 struct writeback_control *wbc) 109 { > 110 struct iomap_writepage_ctx wpc = { }; 111 > 112 return iomap_writepages(mapping, wbc, &wpc, &zonefs_writeback_ops); 113 } 114 --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation