All of lore.kernel.org
 help / color / mirror / Atom feed
* [chao:bugfix/syzbot 3/4] fs/f2fs/node.c:1528:3: error: a label can only be part of a statement and a declaration is not a statement
@ 2025-09-01 20:05 kernel test robot
  0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2025-09-01 20:05 UTC (permalink / raw)
  To: Chao Yu; +Cc: oe-kbuild-all, Chao Yu

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/chao/linux.git bugfix/syzbot
head:   e78352f91a47b493a1627cfb57e13c845a5da6ef
commit: 55c4622c9b2238d6a793200235bdec0f45003e35 [3/4] f2fs: fix to do sanity check on node footer before node folio writeback
config: s390-randconfig-002-20250902 (https://download.01.org/0day-ci/archive/20250902/202509020309.KOSXlxMX-lkp@intel.com/config)
compiler: s390-linux-gcc (GCC) 10.5.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250902/202509020309.KOSXlxMX-lkp@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 <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202509020309.KOSXlxMX-lkp@intel.com/

All errors (new ones prefixed by >>):

   fs/f2fs/node.c: In function 'sanity_check_node_footer':
>> fs/f2fs/node.c:1528:3: error: a label can only be part of a statement and a declaration is not a statement
    1528 |   struct f2fs_inode *ri = &F2FS_NODE(folio)->i;
         |   ^~~~~~
>> fs/f2fs/node.c:1529:3: error: expected expression before 'umode_t'
    1529 |   umode_t m = le16_to_cpu(ri->i_mode);
         |   ^~~~~~~
   In file included from include/linux/stat.h:7,
                    from include/linux/fs.h:11,
                    from fs/f2fs/node.c:8:
>> fs/f2fs/node.c:1532:17: error: 'm' undeclared (first use in this function); did you mean 'tm'?
    1532 |    if (!S_ISLNK(m) && !S_ISREG(m) && !S_ISDIR(m) &&
         |                 ^
   include/uapi/linux/stat.h:21:23: note: in definition of macro 'S_ISLNK'
      21 | #define S_ISLNK(m) (((m) & S_IFMT) == S_IFLNK)
         |                       ^
   fs/f2fs/node.c:1532:17: note: each undeclared identifier is reported only once for each function it appears in
    1532 |    if (!S_ISLNK(m) && !S_ISREG(m) && !S_ISDIR(m) &&
         |                 ^
   include/uapi/linux/stat.h:21:23: note: in definition of macro 'S_ISLNK'
      21 | #define S_ISLNK(m) (((m) & S_IFMT) == S_IFLNK)
         |                       ^
   fs/f2fs/node.c:1528:22: warning: unused variable 'ri' [-Wunused-variable]
    1528 |   struct f2fs_inode *ri = &F2FS_NODE(folio)->i;
         |                      ^~


vim +1528 fs/f2fs/node.c

  1502	
  1503	static int sanity_check_node_footer(struct f2fs_sb_info *sbi,
  1504						struct folio *folio, pgoff_t nid,
  1505						enum node_type ntype)
  1506	{
  1507		bool is_inode;
  1508	
  1509		if (unlikely(nid != nid_of_node(folio)))
  1510			goto out_err;
  1511	
  1512		is_inode = IS_INODE(folio);
  1513	
  1514		switch (ntype) {
  1515		case NODE_TYPE_INODE:
  1516			if (!is_inode)
  1517				goto out_err;
  1518			break;
  1519		case NODE_TYPE_XATTR:
  1520			if (is_inode || !f2fs_has_xattr_block(ofs_of_node(folio)))
  1521				goto out_err;
  1522			break;
  1523		case NODE_TYPE_NON_INODE:
  1524			if (is_inode)
  1525				goto out_err;
  1526			break;
  1527		case NODE_TYPE_UNKNOWN:
> 1528			struct f2fs_inode *ri = &F2FS_NODE(folio)->i;
> 1529			umode_t m = le16_to_cpu(ri->i_mode);
  1530	
  1531			if (is_inode) {
> 1532				if (!S_ISLNK(m) && !S_ISREG(m) && !S_ISDIR(m) &&
  1533					!S_ISCHR(m) && !S_ISBLK(m) && !S_ISFIFO(m) &&
  1534					!S_ISSOCK(m))
  1535					goto out_err;
  1536	
  1537				if (f2fs_has_xattr_block(ofs_of_node(folio)))
  1538					goto out_err;
  1539			}
  1540			break;
  1541		default:
  1542			break;
  1543		}
  1544		if (time_to_inject(sbi, FAULT_INCONSISTENT_FOOTER))
  1545			goto out_err;
  1546		return 0;
  1547	out_err:
  1548		f2fs_warn(sbi, "inconsistent node block, node_type:%d, nid:%lu, "
  1549			  "node_footer[nid:%u,ino:%u,ofs:%u,cpver:%llu,blkaddr:%u]",
  1550			  ntype, nid, nid_of_node(folio), ino_of_node(folio),
  1551			  ofs_of_node(folio), cpver_of_node(folio),
  1552			  next_blkaddr_of_node(folio));
  1553		set_sbi_flag(sbi, SBI_NEED_FSCK);
  1554		f2fs_handle_error(sbi, ERROR_INCONSISTENT_FOOTER);
  1555		return -EFSCORRUPTED;
  1556	}
  1557	

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2025-09-01 20:06 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-09-01 20:05 [chao:bugfix/syzbot 3/4] fs/f2fs/node.c:1528:3: error: a label can only be part of a statement and a declaration is not a statement kernel test robot

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.