[PATCH 1/4] erofs-utils: introduce `fallthrough;`

Gao Xiang hsiangkao at linux.alibaba.com
Tue Jul 8 12:17:19 AEST 2025


To silence the `Missing break in switch (MISSING_BREAK)` warning.

Coverity-id: 569459
Signed-off-by: Gao Xiang <hsiangkao at linux.alibaba.com>
---
 include/erofs/defs.h | 6 ++++++
 lib/namei.c          | 1 +
 lib/rebuild.c        | 2 +-
 lib/zmap.c           | 2 +-
 4 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/include/erofs/defs.h b/include/erofs/defs.h
index 21e0f09d..0f3e7546 100644
--- a/include/erofs/defs.h
+++ b/include/erofs/defs.h
@@ -369,6 +369,12 @@ unsigned long __roundup_pow_of_two(unsigned long n)
 #define __erofs_likely(x)      __builtin_expect(!!(x), 1)
 #define __erofs_unlikely(x)    __builtin_expect(!!(x), 0)
 
+#if __has_attribute(__fallthrough__)
+# define fallthrough	__attribute__((__fallthrough__))
+#else
+# define fallthrough	do {} while (0)  /* fallthrough */
+#endif
+
 #ifdef __cplusplus
 }
 #endif
diff --git a/lib/namei.c b/lib/namei.c
index 5da8ed98..d6013e5c 100644
--- a/lib/namei.c
+++ b/lib/namei.c
@@ -102,6 +102,7 @@ int erofs_read_inode_from_disk(struct erofs_inode *vi)
 	switch (vi->i_mode & S_IFMT) {
 	case S_IFDIR:
 		vi->dot_omitted = (ifmt >> EROFS_I_DOT_OMITTED_BIT) & 1;
+		fallthrough;
 	case S_IFREG:
 	case S_IFLNK:
 		vi->u.i_blkaddr = le32_to_cpu(copied.i_u.startblk_lo) |
diff --git a/lib/rebuild.c b/lib/rebuild.c
index 576d9d05..c580f81f 100644
--- a/lib/rebuild.c
+++ b/lib/rebuild.c
@@ -231,7 +231,7 @@ static int erofs_rebuild_update_inode(struct erofs_sb_info *dst_sb,
 	case S_IFCHR:
 		if (erofs_inode_is_whiteout(inode))
 			inode->i_parent->whiteouts = true;
-		/* fallthrough */
+		fallthrough;
 	case S_IFBLK:
 	case S_IFIFO:
 	case S_IFSOCK:
diff --git a/lib/zmap.c b/lib/zmap.c
index 99f40887..43e76e55 100644
--- a/lib/zmap.c
+++ b/lib/zmap.c
@@ -474,7 +474,7 @@ static int z_erofs_map_blocks_fo(struct erofs_inode *vi,
 		end = (m.lcn << lclusterbits) | m.clusterofs;
 		map->m_flags |= EROFS_MAP_FULL_MAPPED;
 		m.delta[0] = 1;
-		/* fallthrough */
+		fallthrough;
 	case Z_EROFS_LCLUSTER_TYPE_NONHEAD:
 		/* get the corresponding first chunk */
 		err = z_erofs_extent_lookback(&m, m.delta[0]);
-- 
2.43.5



More information about the Linux-erofs mailing list