tree:   https://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs.git dev-test
head:   33656c801bc94615e8b02f01f36eff752dc5086b
commit: 33656c801bc94615e8b02f01f36eff752dc5086b [7/7] erofs: implement 
metadata compression
config: arc-randconfig-002-20250717 
(https://download.01.org/0day-ci/archive/20250717/[email protected]/config)
compiler: arc-linux-gcc (GCC) 15.1.0
reproduce (this is a W=1 build): 
(https://download.01.org/0day-ci/archive/20250717/[email protected]/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <[email protected]>
| Closes: 
https://lore.kernel.org/oe-kbuild-all/[email protected]/

All error/warnings (new ones prefixed by >>):

   In file included from include/linux/bits.h:6,
                    from include/linux/ratelimit_types.h:5,
                    from include/linux/printk.h:9,
                    from include/asm-generic/bug.h:22,
                    from arch/arc/include/asm/bug.h:30,
                    from include/linux/bug.h:5,
                    from include/linux/vfsdebug.h:5,
                    from include/linux/fs.h:5,
                    from fs/erofs/internal.h:10,
                    from fs/erofs/xattr.h:9,
                    from fs/erofs/inode.c:7:
   fs/erofs/internal.h: In function 'erofs_inode_in_metabox':
>> include/vdso/bits.h:7:40: warning: left shift count >= width of type 
>> [-Wshift-count-overflow]
       7 | #define BIT(nr)                 (UL(1) << (nr))
         |                                        ^~
   fs/erofs/internal.h:288:38: note: in expansion of macro 'BIT'
     288 |         return EROFS_I(inode)->nid & 
BIT(EROFS_DIRENT_NID_METABOX_BIT);
         |                                      ^~~
   fs/erofs/internal.h: In function 'erofs_iloc':
>> include/vdso/bits.h:7:40: warning: left shift count >= width of type 
>> [-Wshift-count-overflow]
       7 | #define BIT(nr)                 (UL(1) << (nr))
         |                                        ^~
   fs/erofs/erofs_fs.h:275:42: note: in expansion of macro 'BIT'
     275 | #define EROFS_DIRENT_NID_MASK           
(BIT(EROFS_DIRENT_NID_METABOX_BIT) - 1)
         |                                          ^~~
   fs/erofs/internal.h:294:52: note: in expansion of macro 
'EROFS_DIRENT_NID_MASK'
     294 |         erofs_nid_t nid_lo = EROFS_I(inode)->nid & 
EROFS_DIRENT_NID_MASK;
         |                                                    
^~~~~~~~~~~~~~~~~~~~~
--
   In file included from include/linux/bits.h:6,
                    from include/linux/string_helpers.h:5,
                    from include/linux/seq_file.h:7,
                    from fs/erofs/super.c:8:
   fs/erofs/internal.h: In function 'erofs_inode_in_metabox':
>> include/vdso/bits.h:7:40: warning: left shift count >= width of type 
>> [-Wshift-count-overflow]
       7 | #define BIT(nr)                 (UL(1) << (nr))
         |                                        ^~
   fs/erofs/internal.h:288:38: note: in expansion of macro 'BIT'
     288 |         return EROFS_I(inode)->nid & 
BIT(EROFS_DIRENT_NID_METABOX_BIT);
         |                                      ^~~
   fs/erofs/internal.h: In function 'erofs_iloc':
>> include/vdso/bits.h:7:40: warning: left shift count >= width of type 
>> [-Wshift-count-overflow]
       7 | #define BIT(nr)                 (UL(1) << (nr))
         |                                        ^~
   fs/erofs/erofs_fs.h:275:42: note: in expansion of macro 'BIT'
     275 | #define EROFS_DIRENT_NID_MASK           
(BIT(EROFS_DIRENT_NID_METABOX_BIT) - 1)
         |                                          ^~~
   fs/erofs/internal.h:294:52: note: in expansion of macro 
'EROFS_DIRENT_NID_MASK'
     294 |         erofs_nid_t nid_lo = EROFS_I(inode)->nid & 
EROFS_DIRENT_NID_MASK;
         |                                                    
^~~~~~~~~~~~~~~~~~~~~
   fs/erofs/super.c: In function 'erofs_read_superblock':
>> include/vdso/bits.h:7:40: warning: left shift count >= width of type 
>> [-Wshift-count-overflow]
       7 | #define BIT(nr)                 (UL(1) << (nr))
         |                                        ^~
   fs/erofs/super.c:327:40: note: in expansion of macro 'BIT'
     327 |                 if (sbi->metabox_nid & 
BIT(EROFS_DIRENT_NID_METABOX_BIT))
         |                                        ^~~
--
   In file included from include/linux/bits.h:6,
                    from include/linux/bitops.h:6,
                    from include/linux/kernel.h:23,
                    from include/linux/fs_context.h:11,
                    from include/linux/pseudo_fs.h:4,
                    from fs/erofs/fscache.c:6:
   fs/erofs/internal.h: In function 'erofs_inode_in_metabox':
>> include/vdso/bits.h:7:40: warning: left shift count >= width of type 
>> [-Wshift-count-overflow]
       7 | #define BIT(nr)                 (UL(1) << (nr))
         |                                        ^~
   fs/erofs/internal.h:288:38: note: in expansion of macro 'BIT'
     288 |         return EROFS_I(inode)->nid & 
BIT(EROFS_DIRENT_NID_METABOX_BIT);
         |                                      ^~~
   fs/erofs/internal.h: In function 'erofs_iloc':
>> include/vdso/bits.h:7:40: warning: left shift count >= width of type 
>> [-Wshift-count-overflow]
       7 | #define BIT(nr)                 (UL(1) << (nr))
         |                                        ^~
   fs/erofs/erofs_fs.h:275:42: note: in expansion of macro 'BIT'
     275 | #define EROFS_DIRENT_NID_MASK           
(BIT(EROFS_DIRENT_NID_METABOX_BIT) - 1)
         |                                          ^~~
   fs/erofs/internal.h:294:52: note: in expansion of macro 
'EROFS_DIRENT_NID_MASK'
     294 |         erofs_nid_t nid_lo = EROFS_I(inode)->nid & 
EROFS_DIRENT_NID_MASK;
         |                                                    
^~~~~~~~~~~~~~~~~~~~~
   fs/erofs/fscache.c: In function 'erofs_fscache_data_read_slice':
>> fs/erofs/fscache.c:277:23: error: too few arguments to function 
>> 'erofs_read_metabuf'; expected 4, have 3
     277 |                 src = erofs_read_metabuf(&buf, sb, map.m_pa);
         |                       ^~~~~~~~~~~~~~~~~~
   In file included from fs/erofs/fscache.c:8:
   fs/erofs/internal.h:400:7: note: declared here
     400 | void *erofs_read_metabuf(struct erofs_buf *buf, struct super_block 
*sb,
         |       ^~~~~~~~~~~~~~~~~~


vim +/erofs_read_metabuf +277 fs/erofs/fscache.c

5375e7c8b0fef1 Jeffle Xu 2022-04-25  253  
f2151df5743536 Jingbo Xu 2024-03-08  254  static int 
erofs_fscache_data_read_slice(struct erofs_fscache_rq *req)
bd735bdaa62fb6 Jeffle Xu 2022-04-25  255  {
f2151df5743536 Jingbo Xu 2024-03-08  256        struct address_space *mapping = 
req->mapping;
1ae9470c3e1462 Jingbo Xu 2022-09-22  257        struct inode *inode = 
mapping->host;
1ae9470c3e1462 Jingbo Xu 2022-09-22  258        struct super_block *sb = 
inode->i_sb;
f2151df5743536 Jingbo Xu 2024-03-08  259        struct erofs_fscache_io *io;
1ae9470c3e1462 Jingbo Xu 2022-09-22  260        struct erofs_map_blocks map;
1ae9470c3e1462 Jingbo Xu 2022-09-22  261        struct erofs_map_dev mdev;
f2151df5743536 Jingbo Xu 2024-03-08  262        loff_t pos = req->start + 
req->submitted;
1ae9470c3e1462 Jingbo Xu 2022-09-22  263        size_t count;
1ae9470c3e1462 Jingbo Xu 2022-09-22  264        int ret;
1ae9470c3e1462 Jingbo Xu 2022-09-22  265  
1ae9470c3e1462 Jingbo Xu 2022-09-22  266        map.m_la = pos;
8b58f9f0216212 Jingbo Xu 2023-02-09  267        ret = erofs_map_blocks(inode, 
&map);
1ae9470c3e1462 Jingbo Xu 2022-09-22  268        if (ret)
1ae9470c3e1462 Jingbo Xu 2022-09-22  269                return ret;
1ae9470c3e1462 Jingbo Xu 2022-09-22  270  
1ae9470c3e1462 Jingbo Xu 2022-09-22  271        if (map.m_flags & 
EROFS_MAP_META) {
bd735bdaa62fb6 Jeffle Xu 2022-04-25  272                struct erofs_buf buf = 
__EROFS_BUF_INITIALIZER;
f2151df5743536 Jingbo Xu 2024-03-08  273                struct iov_iter iter;
076d965eb812f2 Al Viro   2024-04-25  274                size_t size = 
map.m_llen;
1ae9470c3e1462 Jingbo Xu 2022-09-22  275                void *src;
bd735bdaa62fb6 Jeffle Xu 2022-04-25  276  
296e7ef18fbd6e Gao Xiang 2025-07-14 @277                src = 
erofs_read_metabuf(&buf, sb, map.m_pa);
bd735bdaa62fb6 Jeffle Xu 2022-04-25  278                if (IS_ERR(src))
bd735bdaa62fb6 Jeffle Xu 2022-04-25  279                        return 
PTR_ERR(src);
bd735bdaa62fb6 Jeffle Xu 2022-04-25  280  
de4eda9de2d957 Al Viro   2022-09-15  281                iov_iter_xarray(&iter, 
ITER_DEST, &mapping->i_pages, pos, PAGE_SIZE);
076d965eb812f2 Al Viro   2024-04-25  282                if (copy_to_iter(src, 
size, &iter) != size) {
75e43355cbe4d5 Jingbo Xu 2022-11-04  283                        
erofs_put_metabuf(&buf);
1ae9470c3e1462 Jingbo Xu 2022-09-22  284                        return -EFAULT;
75e43355cbe4d5 Jingbo Xu 2022-11-04  285                }
1ae9470c3e1462 Jingbo Xu 2022-09-22  286                iov_iter_zero(PAGE_SIZE 
- size, &iter);
bd735bdaa62fb6 Jeffle Xu 2022-04-25  287                erofs_put_metabuf(&buf);
f2151df5743536 Jingbo Xu 2024-03-08  288                req->submitted += 
PAGE_SIZE;
be62c519886115 Jingbo Xu 2022-12-01  289                return 0;
bd735bdaa62fb6 Jeffle Xu 2022-04-25  290        }
bd735bdaa62fb6 Jeffle Xu 2022-04-25  291  
f2151df5743536 Jingbo Xu 2024-03-08  292        count = req->len - 
req->submitted;
1442b02b66ad2c Jeffle Xu 2022-04-25  293        if (!(map.m_flags & 
EROFS_MAP_MAPPED)) {
f2151df5743536 Jingbo Xu 2024-03-08  294                struct iov_iter iter;
f2151df5743536 Jingbo Xu 2024-03-08  295  
de4eda9de2d957 Al Viro   2022-09-15  296                iov_iter_xarray(&iter, 
ITER_DEST, &mapping->i_pages, pos, count);
1ae9470c3e1462 Jingbo Xu 2022-09-22  297                iov_iter_zero(count, 
&iter);
f2151df5743536 Jingbo Xu 2024-03-08  298                req->submitted += count;
be62c519886115 Jingbo Xu 2022-12-01  299                return 0;
bd735bdaa62fb6 Jeffle Xu 2022-04-25  300        }
bd735bdaa62fb6 Jeffle Xu 2022-04-25  301  
be62c519886115 Jingbo Xu 2022-12-01  302        count = min_t(size_t, 
map.m_llen - (pos - map.m_la), count);
e6d9f9ba111b56 Jingbo Xu 2022-11-04  303        DBG_BUGON(!count || count % 
PAGE_SIZE);
e6d9f9ba111b56 Jingbo Xu 2022-11-04  304  
1442b02b66ad2c Jeffle Xu 2022-04-25  305        mdev = (struct erofs_map_dev) {
1442b02b66ad2c Jeffle Xu 2022-04-25  306                .m_deviceid = 
map.m_deviceid,
1442b02b66ad2c Jeffle Xu 2022-04-25  307                .m_pa = map.m_pa,
1442b02b66ad2c Jeffle Xu 2022-04-25  308        };
1442b02b66ad2c Jeffle Xu 2022-04-25  309        ret = erofs_map_dev(sb, &mdev);
1442b02b66ad2c Jeffle Xu 2022-04-25  310        if (ret)
1ae9470c3e1462 Jingbo Xu 2022-09-22  311                return ret;
1442b02b66ad2c Jeffle Xu 2022-04-25  312  
f2151df5743536 Jingbo Xu 2024-03-08  313        io = 
erofs_fscache_req_io_alloc(req);
f2151df5743536 Jingbo Xu 2024-03-08  314        if (!io)
f2151df5743536 Jingbo Xu 2024-03-08  315                return -ENOMEM;
f2151df5743536 Jingbo Xu 2024-03-08  316        iov_iter_xarray(&io->iter, 
ITER_DEST, &mapping->i_pages, pos, count);
f8d920a402aec3 Gao Xiang 2024-12-13  317        ret = 
erofs_fscache_read_io_async(mdev.m_dif->fscache->cookie,
f2151df5743536 Jingbo Xu 2024-03-08  318                        mdev.m_pa + 
(pos - map.m_la), io);
f2151df5743536 Jingbo Xu 2024-03-08  319        erofs_fscache_req_io_put(io);
d435d53228dd03 Xin Yin   2022-05-09  320  
f2151df5743536 Jingbo Xu 2024-03-08  321        req->submitted += count;
be62c519886115 Jingbo Xu 2022-12-01  322        return ret;
5bd9628b784cc5 Sun Ke    2022-08-15  323  }
d435d53228dd03 Xin Yin   2022-05-09  324  

:::::: The code at line 277 was first introduced by commit
:::::: 296e7ef18fbd6e85c8660f0ec94358ac4263cd57 erofs: remove need_kmap in 
erofs_read_metabuf()

:::::: TO: Gao Xiang <[email protected]>
:::::: CC: Gao Xiang <[email protected]>

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

Reply via email to