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
