Hi Wu, kernel test robot noticed the following build warnings:
[auto build test WARNING on 67784a74e258a467225f0e68335df77acd67b7ab] url: https://github.com/intel-lab-lkp/linux/commits/Wu-Bo/f2fs-add-inline-tail-mount-option/20240911-114705 base: 67784a74e258a467225f0e68335df77acd67b7ab patch link: https://lore.kernel.org/r/57e1dbb2f348ab61cbc82be7161d788a08b5fbed.1726024117.git.bo.wu%40vivo.com patch subject: [PATCH v2 13/13] f2fs: implement inline tail forward recovery config: x86_64-randconfig-121-20240913 (https://download.01.org/0day-ci/archive/20240913/202409131549.6e5c04zg-...@intel.com/config) compiler: clang version 18.1.8 (https://github.com/llvm/llvm-project 3b5b5c1ec4a3095ab096dd780e84d7ab81f3d7ff) reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240913/202409131549.6e5c04zg-...@intel.com/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 <l...@intel.com> | Closes: https://lore.kernel.org/oe-kbuild-all/202409131549.6e5c04zg-...@intel.com/ sparse warnings: (new ones prefixed by >>) >> fs/f2fs/inline.c:457:27: sparse: sparse: cast to restricted __le32 vim +457 fs/f2fs/inline.c 416 417 int f2fs_recover_inline_tail(struct inode *inode, struct page *npage) 418 { 419 struct f2fs_sb_info *sbi = F2FS_I_SB(inode); 420 struct f2fs_inode *ri = NULL; 421 void *src_addr, *dst_addr; 422 struct page *ipage; 423 424 if (IS_INODE(npage)) 425 ri = F2FS_INODE(npage); 426 427 if (f2fs_has_inline_tail(inode) && 428 ri && (le32_to_cpu(ri->i_flags) & F2FS_INLINE_TAIL)) { 429 process_inline: 430 if (!(ri->i_inline & F2FS_DATA_EXIST)) 431 return 0; 432 433 ipage = f2fs_get_node_page(sbi, inode->i_ino); 434 if (IS_ERR(ipage)) 435 return PTR_ERR(ipage); 436 437 f2fs_wait_on_page_writeback(ipage, NODE, true, true); 438 439 src_addr = inline_data_addr(inode, npage); 440 dst_addr = inline_data_addr(inode, ipage); 441 memcpy(dst_addr, src_addr, MAX_INLINE_DATA(inode)); 442 443 set_inode_flag(inode, FI_DATA_EXIST); 444 445 set_page_dirty(ipage); 446 f2fs_put_page(ipage, 1); 447 return 0; 448 } 449 450 if (f2fs_has_inline_tail(inode)) { 451 ipage = f2fs_get_node_page(sbi, inode->i_ino); 452 if (IS_ERR(ipage)) 453 return PTR_ERR(ipage); 454 f2fs_truncate_inline_inode(inode, ipage, 0); 455 clear_inode_flag(inode, FI_INLINE_TAIL); 456 f2fs_put_page(ipage, 1); > 457 } else if (ri && (le32_to_cpu(ri->i_inline) & > F2FS_INLINE_TAIL)) { 458 int ret; 459 460 ret = f2fs_truncate_blocks(inode, 461 COMPACT_ADDRS_PER_INODE >> PAGE_SHIFT, false); 462 if (ret) 463 return ret; 464 goto process_inline; 465 } 466 return 0; 467 } 468 struct f2fs_dir_entry *f2fs_find_in_inline_dir(struct inode *dir, 469 const struct f2fs_filename *fname, 470 struct page **res_page) 471 { 472 struct f2fs_sb_info *sbi = F2FS_SB(dir->i_sb); 473 struct f2fs_dir_entry *de; 474 struct f2fs_dentry_ptr d; 475 struct page *ipage; 476 void *inline_dentry; 477 478 ipage = f2fs_get_node_page(sbi, dir->i_ino); 479 if (IS_ERR(ipage)) { 480 *res_page = ipage; 481 return NULL; 482 } 483 484 inline_dentry = inline_data_addr(dir, ipage); 485 486 make_dentry_ptr_inline(dir, &d, inline_dentry); 487 de = f2fs_find_target_dentry(&d, fname, NULL); 488 unlock_page(ipage); 489 if (IS_ERR(de)) { 490 *res_page = ERR_CAST(de); 491 de = NULL; 492 } 493 if (de) 494 *res_page = ipage; 495 else 496 f2fs_put_page(ipage, 0); 497 498 return de; 499 } 500 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki _______________________________________________ Linux-f2fs-devel mailing list Linux-f2fs-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel