Re: linux-next: build failure after merge of the block tree

From: Jens Axboe
Date: Thu Mar 12 2020 - 09:07:23 EST


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