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

From: Jens Axboe <[email-masked]>
Date: Thu, 12 Mar 2020 07:07:17 -0600

On 3/12/20 4:12 AM, Matteo Croce wrote:
> On Thu, Mar 12, 2020 at 3:55 AM Stephen Rothwell <[email-masked]> 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