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

Reply via email to