On Thu, Mar 12, 2020 at 2:07 PM Jens Axboe <axboe@xxxxxxxxx> wrote: > > On 3/12/20 4:12 AM, Matteo Croce wrote: > > On Thu, Mar 12, 2020 at 3:55 AM Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx> wrote: > >> > >> Hi all, > >> > >> After merging the block tree, today's linux-next build (x86_64 > >> allmodconfig) failed like this: > >> > >> In file included from fs/erofs/xattr.h:10, > >> from fs/erofs/inode.c:7: > >> fs/erofs/inode.c: In function 'erofs_read_inode': > >> fs/erofs/internal.h:197:31: error: 'PAGE_SECTORS_SHIFT' undeclared (first use in this function); did you mean 'PA_SECTION_SHIFT'? > >> 197 | #define LOG_SECTORS_PER_BLOCK PAGE_SECTORS_SHIFT > >> | ^~~~~~~~~~~~~~~~~~ > >> fs/erofs/inode.c:122:30: note: in expansion of macro 'LOG_SECTORS_PER_BLOCK' > >> 122 | inode->i_blocks = nblks << LOG_SECTORS_PER_BLOCK; > >> | ^~~~~~~~~~~~~~~~~~~~~ > >> fs/erofs/internal.h:197:31: note: each undeclared identifier is reported only once for each function it appears in > >> 197 | #define LOG_SECTORS_PER_BLOCK PAGE_SECTORS_SHIFT > >> | ^~~~~~~~~~~~~~~~~~ > >> fs/erofs/inode.c:122:30: note: in expansion of macro 'LOG_SECTORS_PER_BLOCK' > >> 122 | inode->i_blocks = nblks << LOG_SECTORS_PER_BLOCK; > >> | ^~~~~~~~~~~~~~~~~~~~~ > >> In file included from fs/erofs/data.c:7: > >> fs/erofs/data.c: In function 'erofs_read_raw_page': > >> fs/erofs/internal.h:197:31: error: 'PAGE_SECTORS_SHIFT' undeclared (first use in this function); did you mean 'PA_SECTION_SHIFT'? > >> 197 | #define LOG_SECTORS_PER_BLOCK PAGE_SECTORS_SHIFT > >> | ^~~~~~~~~~~~~~~~~~ > >> fs/erofs/data.c:226:4: note: in expansion of macro 'LOG_SECTORS_PER_BLOCK' > >> 226 | LOG_SECTORS_PER_BLOCK; > >> | ^~~~~~~~~~~~~~~~~~~~~ > >> fs/erofs/internal.h:197:31: note: each undeclared identifier is reported only once for each function it appears in > >> 197 | #define LOG_SECTORS_PER_BLOCK PAGE_SECTORS_SHIFT > >> | ^~~~~~~~~~~~~~~~~~ > >> fs/erofs/data.c:226:4: note: in expansion of macro 'LOG_SECTORS_PER_BLOCK' > >> 226 | LOG_SECTORS_PER_BLOCK; > >> | ^~~~~~~~~~~~~~~~~~~~~ > >> fs/erofs/data.c: In function 'erofs_bmap': > >> fs/erofs/internal.h:197:31: error: 'PAGE_SECTORS_SHIFT' undeclared (first use in this function); did you mean 'PA_SECTION_SHIFT'? > >> 197 | #define LOG_SECTORS_PER_BLOCK PAGE_SECTORS_SHIFT > >> | ^~~~~~~~~~~~~~~~~~ > >> fs/erofs/data.c:351:16: note: in expansion of macro 'LOG_SECTORS_PER_BLOCK' > >> 351 | if (block >> LOG_SECTORS_PER_BLOCK >= blks) > >> | ^~~~~~~~~~~~~~~~~~~~~ > >> > >> Caused by commit > >> > >> 61c7d3d5e015 ("block: refactor duplicated macros") > >> > >> I have used the block tree from next-20200311 for today. > >> > >> -- > >> Cheers, > >> Stephen Rothwell > > > > Hi, > > > > I was building a kernel without erofs. Just including > > include/linux/blkdev.h will fix it, should I amend the > > patch or send a fix? > > I'll drop the patch. I was worried about the patch to begin with, > something like this really should be done through cocinelle so there's > less concern of a stupid mistake. > > On top of that, somewhat miffed that you'd have a v3 of a patch, yet > haven't bothered to even _compile_ the parts you touch. That's > inexcusable. > > -- > Jens Axboe > I apologize, I was using a config with all in it but erofs, which was moved from staging in 5.4: $ grep -e BRD -e ZRAM -e DAX -e MD_RAID -e SDHCI= -e EXT2 -e SWAP -e DM_RAID -e EROFS .config CONFIG_SWAP=y # CONFIG_MEMCG_SWAP is not set CONFIG_ARCH_USE_BUILTIN_BSWAP=y CONFIG_ARCH_WANTS_THP_SWAP=y CONFIG_THP_SWAP=y # CONFIG_FRONTSWAP is not set CONFIG_MD_RAID0=y CONFIG_MD_RAID1=y CONFIG_MD_RAID10=y CONFIG_MD_RAID456=y CONFIG_DM_RAID=y CONFIG_MMC_SDHCI=y CONFIG_DAX=y CONFIG_DEV_DAX=y CONFIG_EXT2_FS=y # CONFIG_EXT2_FS_XATTR is not set # CONFIG_FS_DAX is not set # CONFIG_EROFS_FS is not set I'm running coccinelle with this change appended, and also an all allyesconfig --- a/fs/erofs/internal.h +++ b/fs/erofs/internal.h @@ -16,6 +16,7 @@ #include <linux/magic.h> #include <linux/slab.h> #include <linux/vmalloc.h> +#include <linux/blkdev.h> #include "erofs_fs.h" Regards, -- Matteo Croce per aspera ad upstream