tree: https://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs.git dev-test head: 7cd18799175c533c3f9b1c2b2cb6551e2a86c921 commit: 7cd18799175c533c3f9b1c2b2cb6551e2a86c921 [5/5] erofs: add 'fsoffset' mount option to specify filesystem offset config: x86_64-allmodconfig (https://download.01.org/0day-ci/archive/20250519/[email protected]/config) compiler: clang version 20.1.2 (https://github.com/llvm/llvm-project 58df0ef89dd64126512e4ee27b4ac3fd8ddf6247) reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250519/[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 errors (new ones prefixed by >>): >> fs/erofs/super.c:659:22: error: no member named 'off' in 'struct >> erofs_device_info' 659 | sbi->dif0.off, 1 << sbi->blkszbits); | ~~~~~~~~~ ^ include/linux/fs_context.h:239:52: note: expanded from macro 'invalfc' 239 | #define invalfc(fc, fmt, ...) (errorfc(fc, fmt, ## __VA_ARGS__), -EINVAL) | ^~~~~~~~~~~ include/linux/fs_context.h:227:65: note: expanded from macro 'errorfc' 227 | #define errorfc(fc, fmt, ...) __plog((&(fc)->log), 'e', fmt, ## __VA_ARGS__) | ^~~~~~~~~~~ include/linux/fs_context.h:192:17: note: expanded from macro '__plog' 192 | l, fmt, ## __VA_ARGS__) | ^~~~~~~~~~~ 1 error generated. vim +659 fs/erofs/super.c 602 603 static int erofs_fc_fill_super(struct super_block *sb, struct fs_context *fc) 604 { 605 struct inode *inode; 606 struct erofs_sb_info *sbi = EROFS_SB(sb); 607 int err; 608 609 sb->s_magic = EROFS_SUPER_MAGIC; 610 sb->s_flags |= SB_RDONLY | SB_NOATIME; 611 sb->s_maxbytes = MAX_LFS_FILESIZE; 612 sb->s_op = &erofs_sops; 613 614 sbi->blkszbits = PAGE_SHIFT; 615 if (!sb->s_bdev) { 616 sb->s_blocksize = PAGE_SIZE; 617 sb->s_blocksize_bits = PAGE_SHIFT; 618 619 if (erofs_is_fscache_mode(sb)) { 620 err = erofs_fscache_register_fs(sb); 621 if (err) 622 return err; 623 } 624 err = super_setup_bdi(sb); 625 if (err) 626 return err; 627 } else { 628 if (!sb_set_blocksize(sb, PAGE_SIZE)) { 629 errorfc(fc, "failed to set initial blksize"); 630 return -EINVAL; 631 } 632 633 sbi->dif0.dax_dev = fs_dax_get_by_bdev(sb->s_bdev, 634 &sbi->dif0.dax_part_off, NULL, NULL); 635 } 636 637 err = erofs_read_superblock(sb); 638 if (err) 639 return err; 640 641 if (sb->s_blocksize_bits != sbi->blkszbits) { 642 if (erofs_is_fscache_mode(sb)) { 643 errorfc(fc, "unsupported blksize for fscache mode"); 644 return -EINVAL; 645 } 646 647 if (erofs_is_fileio_mode(sbi)) { 648 sb->s_blocksize = 1 << sbi->blkszbits; 649 sb->s_blocksize_bits = sbi->blkszbits; 650 } else if (!sb_set_blocksize(sb, 1 << sbi->blkszbits)) { 651 errorfc(fc, "failed to set erofs blksize"); 652 return -EINVAL; 653 } 654 } 655 656 if (sbi->dif0.fsoff) { 657 if (sbi->dif0.fsoff & (sb->s_blocksize - 1)) 658 return invalfc(fc, "fsoffset %llu is not aligned to block size %u", > 659 sbi->dif0.off, 1 << > sbi->blkszbits); 660 if (erofs_is_fscache_mode(sb)) 661 return invalfc(fc, "cannot use fsoffset in fscache mode"); 662 } 663 664 if (test_opt(&sbi->opt, DAX_ALWAYS)) { 665 if (!sbi->dif0.dax_dev) { 666 errorfc(fc, "DAX unsupported by block device. Turning off DAX."); 667 clear_opt(&sbi->opt, DAX_ALWAYS); 668 } else if (sbi->blkszbits != PAGE_SHIFT) { 669 errorfc(fc, "unsupported blocksize for DAX"); 670 clear_opt(&sbi->opt, DAX_ALWAYS); 671 } 672 } 673 674 sb->s_time_gran = 1; 675 sb->s_xattr = erofs_xattr_handlers; 676 sb->s_export_op = &erofs_export_ops; 677 678 if (test_opt(&sbi->opt, POSIX_ACL)) 679 sb->s_flags |= SB_POSIXACL; 680 else 681 sb->s_flags &= ~SB_POSIXACL; 682 683 err = z_erofs_init_super(sb); 684 if (err) 685 return err; 686 687 if (erofs_sb_has_fragments(sbi) && sbi->packed_nid) { 688 inode = erofs_iget(sb, sbi->packed_nid); 689 if (IS_ERR(inode)) 690 return PTR_ERR(inode); 691 sbi->packed_inode = inode; 692 } 693 694 inode = erofs_iget(sb, sbi->root_nid); 695 if (IS_ERR(inode)) 696 return PTR_ERR(inode); 697 698 if (!S_ISDIR(inode->i_mode)) { 699 erofs_err(sb, "rootino(nid %llu) is not a directory(i_mode %o)", 700 sbi->root_nid, inode->i_mode); 701 iput(inode); 702 return -EINVAL; 703 } 704 sb->s_root = d_make_root(inode); 705 if (!sb->s_root) 706 return -ENOMEM; 707 708 erofs_shrinker_register(sb); 709 err = erofs_xattr_prefixes_init(sb); 710 if (err) 711 return err; 712 713 erofs_set_sysfs_name(sb); 714 err = erofs_register_sysfs(sb); 715 if (err) 716 return err; 717 718 erofs_info(sb, "mounted with root inode @ nid %llu.", sbi->root_nid); 719 return 0; 720 } 721 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki
