Hi Eric,

kernel test robot noticed the following build errors:

[auto build test ERROR on v6.15-rc3]
[also build test ERROR on linus/master]
[cannot apply to jaegeuk-f2fs/dev-test jaegeuk-f2fs/dev next-20250417]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url:    
https://github.com/intel-lab-lkp/linux/commits/Eric-Sandeen/f2fs-Add-fs-parameter-specifications-for-mount-options/20250421-220156
base:   v6.15-rc3
patch link:    
https://lore.kernel.org/r/20250420154647.1233033-6-sandeen%40redhat.com
patch subject: [PATCH 5/7] f2fs: separate the options parsing and options 
checking
config: i386-buildonly-randconfig-005-20250421 
(https://download.01.org/0day-ci/archive/20250422/202504220139.19wajgto-...@intel.com/config)
compiler: gcc-12 (Debian 12.2.0-14) 12.2.0
reproduce (this is a W=1 build): 
(https://download.01.org/0day-ci/archive/20250422/202504220139.19wajgto-...@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/202504220139.19wajgto-...@intel.com/

All errors (new ones prefixed by >>):

   In file included from include/linux/printk.h:7,
                    from include/linux/kernel.h:31,
                    from include/linux/cpumask.h:11,
                    from arch/x86/include/asm/cpumask.h:5,
                    from arch/x86/include/asm/msr.h:11,
                    from arch/x86/include/asm/tsc.h:10,
                    from arch/x86/include/asm/timex.h:6,
                    from include/linux/timex.h:67,
                    from include/linux/time32.h:13,
                    from include/linux/time.h:60,
                    from include/linux/stat.h:19,
                    from include/linux/module.h:13,
                    from fs/f2fs/super.c:8:
   fs/f2fs/super.c: In function 'handle_mount_opt':
   include/linux/kern_levels.h:5:25: warning: format '%lu' expects argument of 
type 'long unsigned int', but argument 4 has type 'unsigned int' [-Wformat=]
       5 | #define KERN_SOH        "\001"          /* ASCII Start Of Header */
         |                         ^~~~~~
   include/linux/kern_levels.h:11:25: note: in expansion of macro 'KERN_SOH'
      11 | #define KERN_ERR        KERN_SOH "3"    /* error conditions */
         |                         ^~~~~~~~
   fs/f2fs/f2fs.h:1871:33: note: in expansion of macro 'KERN_ERR'
    1871 |         f2fs_printk(sbi, false, KERN_ERR fmt, ##__VA_ARGS__)
         |                                 ^~~~~~~~
   fs/f2fs/super.c:763:25: note: in expansion of macro 'f2fs_err'
     763 |                         f2fs_err(NULL, "inline xattr size is out of 
range: %lu ~ %lu",
         |                         ^~~~~~~~
   fs/f2fs/super.c: In function 'f2fs_check_quota_consistency':
>> fs/f2fs/super.c:1285:27: error: 'sbi' undeclared (first use in this 
>> function); did you mean 'sb'?
    1285 |         if (f2fs_readonly(sbi->sb))
         |                           ^~~
         |                           sb
   fs/f2fs/super.c:1285:27: note: each undeclared identifier is reported only 
once for each function it appears in


vim +1285 fs/f2fs/super.c

  1182  
  1183  /*
  1184   * Check quota settings consistency.
  1185   */
  1186  static int f2fs_check_quota_consistency(struct fs_context *fc,
  1187                                          struct super_block *sb)
  1188  {
  1189   #ifdef CONFIG_QUOTA
  1190          struct f2fs_fs_context *ctx = fc->fs_private;
  1191          struct f2fs_sb_info *sbi = F2FS_SB(sb);
  1192          bool quota_feature = f2fs_sb_has_quota_ino(sbi);
  1193          bool quota_turnon = sb_any_quota_loaded(sb);
  1194          char *old_qname, *new_qname;
  1195          bool usr_qf_name, grp_qf_name, prj_qf_name, usrquota, grpquota, 
prjquota;
  1196          int i;
  1197  
  1198          /*
  1199           * We do the test below only for project quotas. 'usrquota' and
  1200           * 'grpquota' mount options are allowed even without quota 
feature
  1201           * to support legacy quotas in quota files.
  1202           */
  1203          if (ctx_test_opt(ctx, F2FS_MOUNT_PRJQUOTA) &&
  1204                          !f2fs_sb_has_project_quota(sbi)) {
  1205                  f2fs_err(sbi, "Project quota feature not enabled. 
Cannot enable project quota enforcement.");
  1206                  return -EINVAL;
  1207          }
  1208  
  1209          if (ctx->qname_mask) {
  1210                  for (i = 0; i < MAXQUOTAS; i++) {
  1211                          if (!(ctx->qname_mask & (1 << i)))
  1212                                  continue;
  1213  
  1214                          old_qname = F2FS_OPTION(sbi).s_qf_names[i];
  1215                          new_qname = F2FS_CTX_INFO(ctx).s_qf_names[i];
  1216                          if (quota_turnon &&
  1217                                  !!old_qname != !!new_qname)
  1218                                  goto err_jquota_change;
  1219  
  1220                          if (old_qname) {
  1221                                  if (strcmp(old_qname, new_qname) == 0) {
  1222                                          ctx->qname_mask &= ~(1 << i);
  1223                                          continue;
  1224                                  }
  1225                                  goto err_jquota_specified;
  1226                          }
  1227  
  1228                          if (quota_feature) {
  1229                                  f2fs_info(sbi, "QUOTA feature is 
enabled, so ignore qf_name");
  1230                                  ctx->qname_mask &= ~(1 << i);
  1231                                  kfree(F2FS_CTX_INFO(ctx).s_qf_names[i]);
  1232                                  F2FS_CTX_INFO(ctx).s_qf_names[i] = NULL;
  1233                          }
  1234                  }
  1235          }
  1236  
  1237          /* Make sure we don't mix old and new quota format */
  1238          usr_qf_name = F2FS_OPTION(sbi).s_qf_names[USRQUOTA] ||
  1239                          F2FS_CTX_INFO(ctx).s_qf_names[USRQUOTA];
  1240          grp_qf_name = F2FS_OPTION(sbi).s_qf_names[GRPQUOTA] ||
  1241                          F2FS_CTX_INFO(ctx).s_qf_names[GRPQUOTA];
  1242          prj_qf_name = F2FS_OPTION(sbi).s_qf_names[PRJQUOTA] ||
  1243                          F2FS_CTX_INFO(ctx).s_qf_names[PRJQUOTA];
  1244          usrquota = test_opt(sbi, USRQUOTA) ||
  1245                          ctx_test_opt(ctx, F2FS_MOUNT_USRQUOTA);
  1246          grpquota = test_opt(sbi, GRPQUOTA) ||
  1247                          ctx_test_opt(ctx, F2FS_MOUNT_GRPQUOTA);
  1248          prjquota = test_opt(sbi, PRJQUOTA) ||
  1249                          ctx_test_opt(ctx, F2FS_MOUNT_PRJQUOTA);
  1250  
  1251          if (usr_qf_name) {
  1252                  ctx_clear_opt(ctx, F2FS_MOUNT_USRQUOTA);
  1253                  usrquota = false;
  1254          }
  1255          if (grp_qf_name) {
  1256                  ctx_clear_opt(ctx, F2FS_MOUNT_GRPQUOTA);
  1257                  grpquota = false;
  1258          }
  1259          if (prj_qf_name) {
  1260                  ctx_clear_opt(ctx, F2FS_MOUNT_PRJQUOTA);
  1261                  prjquota = false;
  1262          }
  1263          if (usr_qf_name || grp_qf_name || prj_qf_name) {
  1264                  if (grpquota || usrquota || prjquota) {
  1265                          f2fs_err(sbi, "old and new quota format 
mixing");
  1266                          return -EINVAL;
  1267                  }
  1268                  if (!(ctx->spec_mask & F2FS_SPEC_jqfmt ||
  1269                                  F2FS_OPTION(sbi).s_jquota_fmt)) {
  1270                          f2fs_err(sbi, "journaled quota format not 
specified");
  1271                          return -EINVAL;
  1272                  }
  1273          }
  1274          return 0;
  1275  
  1276  err_jquota_change:
  1277          f2fs_err(sbi, "Cannot change journaled quota options when quota 
turned on");
  1278          return -EINVAL;
  1279  err_jquota_specified:
  1280          f2fs_err(sbi, "%s quota file already specified",
  1281                   QTYPE2NAME(i));
  1282          return -EINVAL;
  1283  
  1284  #else
> 1285          if (f2fs_readonly(sbi->sb))
  1286                  return 0;
  1287          if (f2fs_sb_has_quota_ino(sbi)) {
  1288                  f2fs_info(sbi, "Filesystem with quota feature cannot be 
mounted RDWR without CONFIG_QUOTA");
  1289                  return -EINVAL;
  1290          }
  1291          if (f2fs_sb_has_project_quota(sbi)) {
  1292                  f2fs_err(sbi, "Filesystem with project quota feature 
cannot be mounted RDWR without CONFIG_QUOTA");
  1293                  return -EINVAL;
  1294          }
  1295  
  1296          return 0;
  1297  #endif
  1298  }
  1299  

-- 
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

Reply via email to