Use fallthrough macro

As of the Linux 5.9 kernel a fallthrough macro has been added which
should be used to anotate all intentional fallthrough paths.  Once
all of the kernel code paths have been updated to use fallthrough
the -Wimplicit-fallthrough option will because the default.  To
avoid warnings in the OpenZFS code base when this happens apply
the fallthrough macro.

Additional reading: https://lwn.net/Articles/794944/

Reviewed-by: Tony Nguyen <tony.nguyen@delphix.com>
Reviewed-by: George Melikov <mail@gmelikov.ru>
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes #12441
This commit is contained in:
Brian Behlendorf 2021-09-14 09:17:54 -07:00 committed by Tony Hutter
parent 66c9e15686
commit 820c95750b
34 changed files with 84 additions and 39 deletions

View File

@ -367,7 +367,7 @@ main(int argc, char **argv)
"mount the filesystem again.\n"), dataset); "mount the filesystem again.\n"), dataset);
return (MOUNT_SYSERR); return (MOUNT_SYSERR);
} }
/* fallthru */ fallthrough;
#endif #endif
default: default:
(void) fprintf(stderr, gettext("filesystem " (void) fprintf(stderr, gettext("filesystem "

View File

@ -4564,7 +4564,7 @@ dump_path_impl(objset_t *os, uint64_t obj, char *name)
case DMU_OT_DIRECTORY_CONTENTS: case DMU_OT_DIRECTORY_CONTENTS:
if (s != NULL && *(s + 1) != '\0') if (s != NULL && *(s + 1) != '\0')
return (dump_path_impl(os, child_obj, s + 1)); return (dump_path_impl(os, child_obj, s + 1));
/*FALLTHROUGH*/ fallthrough;
case DMU_OT_PLAIN_FILE_CONTENTS: case DMU_OT_PLAIN_FILE_CONTENTS:
dump_object(os, child_obj, dump_opt['v'], &header, NULL, 0); dump_object(os, child_obj, dump_opt['v'], &header, NULL, 0);
return (0); return (0);

View File

@ -7310,6 +7310,7 @@ unshare_unmount(int op, int argc, char **argv)
if (zfs_prop_get_int(zhp, ZFS_PROP_CANMOUNT) == if (zfs_prop_get_int(zhp, ZFS_PROP_CANMOUNT) ==
ZFS_CANMOUNT_NOAUTO) ZFS_CANMOUNT_NOAUTO)
continue; continue;
break;
default: default:
break; break;
} }

View File

@ -26,6 +26,7 @@ AM_LIBTOOLFLAGS = --silent
AM_CFLAGS = -std=gnu99 -Wall -Wstrict-prototypes -Wmissing-prototypes AM_CFLAGS = -std=gnu99 -Wall -Wstrict-prototypes -Wmissing-prototypes
AM_CFLAGS += -fno-strict-aliasing AM_CFLAGS += -fno-strict-aliasing
AM_CFLAGS += $(NO_OMIT_FRAME_POINTER) AM_CFLAGS += $(NO_OMIT_FRAME_POINTER)
AM_CFLAGS += $(IMPLICIT_FALLTHROUGH)
AM_CFLAGS += $(DEBUG_CFLAGS) AM_CFLAGS += $(DEBUG_CFLAGS)
AM_CFLAGS += $(ASAN_CFLAGS) AM_CFLAGS += $(ASAN_CFLAGS)
AM_CFLAGS += $(CODE_COVERAGE_CFLAGS) $(NO_FORMAT_ZERO_LENGTH) AM_CFLAGS += $(CODE_COVERAGE_CFLAGS) $(NO_FORMAT_ZERO_LENGTH)

View File

@ -161,6 +161,29 @@ AC_DEFUN([ZFS_AC_CONFIG_ALWAYS_CC_NO_UNUSED_BUT_SET_VARIABLE], [
AC_SUBST([NO_UNUSED_BUT_SET_VARIABLE]) AC_SUBST([NO_UNUSED_BUT_SET_VARIABLE])
]) ])
dnl #
dnl # Check if gcc supports -Wimplicit-fallthrough option.
dnl #
AC_DEFUN([ZFS_AC_CONFIG_ALWAYS_CC_IMPLICIT_FALLTHROUGH], [
AC_MSG_CHECKING([whether $CC supports -Wimplicit-fallthrough])
saved_flags="$CFLAGS"
CFLAGS="$CFLAGS -Werror -Wimplicit-fallthrough"
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([], [])], [
IMPLICIT_FALLTHROUGH=-Wimplicit-fallthrough
AC_DEFINE([HAVE_IMPLICIT_FALLTHROUGH], 1,
[Define if compiler supports -Wimplicit-fallthrough])
AC_MSG_RESULT([yes])
], [
IMPLICIT_FALLTHROUGH=
AC_MSG_RESULT([no])
])
CFLAGS="$saved_flags"
AC_SUBST([IMPLICIT_FALLTHROUGH])
])
dnl # dnl #
dnl # Check if gcc supports -fno-omit-frame-pointer option. dnl # Check if gcc supports -fno-omit-frame-pointer option.
dnl # dnl #

View File

@ -158,6 +158,7 @@ AC_DEFUN([ZFS_AC_CONFIG_ALWAYS], [
ZFS_AC_CONFIG_ALWAYS_CC_NO_UNUSED_BUT_SET_VARIABLE ZFS_AC_CONFIG_ALWAYS_CC_NO_UNUSED_BUT_SET_VARIABLE
ZFS_AC_CONFIG_ALWAYS_CC_NO_BOOL_COMPARE ZFS_AC_CONFIG_ALWAYS_CC_NO_BOOL_COMPARE
ZFS_AC_CONFIG_ALWAYS_CC_IMPLICIT_FALLTHROUGH
ZFS_AC_CONFIG_ALWAYS_CC_FRAME_LARGER_THAN ZFS_AC_CONFIG_ALWAYS_CC_FRAME_LARGER_THAN
ZFS_AC_CONFIG_ALWAYS_CC_NO_FORMAT_TRUNCATION ZFS_AC_CONFIG_ALWAYS_CC_NO_FORMAT_TRUNCATION
ZFS_AC_CONFIG_ALWAYS_CC_NO_FORMAT_ZERO_LENGTH ZFS_AC_CONFIG_ALWAYS_CC_NO_FORMAT_ZERO_LENGTH

View File

@ -67,6 +67,7 @@
#define __always_inline inline #define __always_inline inline
#define noinline __noinline #define noinline __noinline
#define ____cacheline_aligned __aligned(CACHE_LINE_SIZE) #define ____cacheline_aligned __aligned(CACHE_LINE_SIZE)
#define fallthrough __attribute__((__fallthrough__))
#if !defined(_KERNEL) && !defined(_STANDALONE) #if !defined(_KERNEL) && !defined(_STANDALONE)
#define likely(x) __builtin_expect(!!(x), 1) #define likely(x) __builtin_expect(!!(x), 1)

View File

@ -28,6 +28,14 @@
#include <linux/compiler.h> #include <linux/compiler.h>
#if !defined(fallthrough)
#if defined(HAVE_IMPLICIT_FALLTHROUGH)
#define fallthrough __attribute__((__fallthrough__))
#else
#define fallthrough ((void)0)
#endif
#endif
#if !defined(READ_ONCE) #if !defined(READ_ONCE)
#define READ_ONCE(x) ACCESS_ONCE(x) #define READ_ONCE(x) ACCESS_ONCE(x)
#endif #endif

View File

@ -26,5 +26,6 @@
#include <sys/uio_impl.h> #include <sys/uio_impl.h>
#include <linux/dcache_compat.h> #include <linux/dcache_compat.h>
#include <linux/utsname_compat.h> #include <linux/utsname_compat.h>
#include <linux/compiler_compat.h>
#endif #endif

View File

@ -759,7 +759,6 @@ extern void spl_fstrans_unmark(fstrans_cookie_t);
extern int __spl_pf_fstrans_check(void); extern int __spl_pf_fstrans_check(void);
extern int kmem_cache_reap_active(void); extern int kmem_cache_reap_active(void);
#define ____cacheline_aligned
/* /*
* Kernel modules * Kernel modules

View File

@ -27,6 +27,15 @@
#ifndef _SYS_FEATURE_TESTS_H #ifndef _SYS_FEATURE_TESTS_H
#define _SYS_FEATURE_TESTS_H #define _SYS_FEATURE_TESTS_H
#define __NORETURN __attribute__((__noreturn__)) #define ____cacheline_aligned
#define __NORETURN __attribute__((__noreturn__))
#if !defined(fallthrough)
#if defined(HAVE_IMPLICIT_FALLTHROUGH)
#define fallthrough __attribute__((__fallthrough__))
#else
#define fallthrough ((void)0)
#endif
#endif
#endif #endif

View File

@ -1365,10 +1365,9 @@ badlabel:
(void) zfs_error(hdl, EZFS_BADPROP, errbuf); (void) zfs_error(hdl, EZFS_BADPROP, errbuf);
goto error; goto error;
} }
fallthrough;
} }
/*FALLTHRU*/
case ZFS_PROP_SHARESMB: case ZFS_PROP_SHARESMB:
case ZFS_PROP_SHARENFS: case ZFS_PROP_SHARENFS:
/* /*
@ -3767,8 +3766,8 @@ zfs_create(libzfs_handle_t *hdl, const char *path, zfs_type_t type,
if (type == ZFS_TYPE_VOLUME) if (type == ZFS_TYPE_VOLUME)
return (zfs_error(hdl, EZFS_VOLTOOBIG, return (zfs_error(hdl, EZFS_VOLTOOBIG,
errbuf)); errbuf));
fallthrough;
#endif #endif
/* FALLTHROUGH */
default: default:
return (zfs_standard_error(hdl, errno, errbuf)); return (zfs_standard_error(hdl, errno, errbuf));
} }

View File

@ -309,7 +309,7 @@ zpool_get_prop(zpool_handle_t *zhp, zpool_prop_t prop, char *buf,
len); len);
break; break;
} }
/* FALLTHROUGH */ fallthrough;
default: default:
(void) strlcpy(buf, "-", len); (void) strlcpy(buf, "-", len);
break; break;
@ -400,7 +400,7 @@ zpool_get_prop(zpool_handle_t *zhp, zpool_prop_t prop, char *buf,
(void) snprintf(buf, len, "-"); (void) snprintf(buf, len, "-");
break; break;
} }
/* FALLTHROUGH */ fallthrough;
default: default:
(void) snprintf(buf, len, "%llu", (u_longlong_t)intval); (void) snprintf(buf, len, "%llu", (u_longlong_t)intval);
} }

View File

@ -4883,7 +4883,7 @@ zfs_receive_one(libzfs_handle_t *hdl, int infd, const char *tosnap,
(void) zfs_error(hdl, EZFS_BUSY, errbuf); (void) zfs_error(hdl, EZFS_BUSY, errbuf);
break; break;
} }
/* fallthru */ fallthrough;
default: default:
(void) zfs_standard_error(hdl, ioctl_errno, errbuf); (void) zfs_standard_error(hdl, ioctl_errno, errbuf);
} }

View File

@ -598,7 +598,7 @@ zfs_setprop_error(libzfs_handle_t *hdl, zfs_prop_t prop, int err,
break; break;
} }
#endif #endif
/* FALLTHROUGH */ fallthrough;
default: default:
(void) zfs_standard_error(hdl, err, errbuf); (void) zfs_standard_error(hdl, err, errbuf);
} }

View File

@ -63,7 +63,7 @@ lzbe_set_boot_device(const char *pool, lzbe_flags_t flag, const char *device)
/* Drop this nvlist */ /* Drop this nvlist */
fnvlist_free(nv); fnvlist_free(nv);
} }
/* FALLTHROUGH */ fallthrough;
case lzbe_replace: case lzbe_replace:
nv = fnvlist_alloc(); nv = fnvlist_alloc();
break; break;

View File

@ -377,7 +377,7 @@ kcf_provider_zero_refcnt(kcf_provider_desc_t *desc)
mutex_exit(&desc->pd_lock); mutex_exit(&desc->pd_lock);
break; break;
} }
/* FALLTHRU */ fallthrough;
case CRYPTO_HW_PROVIDER: case CRYPTO_HW_PROVIDER:
case CRYPTO_LOGICAL_PROVIDER: case CRYPTO_LOGICAL_PROVIDER:

View File

@ -976,7 +976,7 @@ aes_encrypt_atomic(crypto_provider_handle_t provider,
case AES_GMAC_MECH_INFO_TYPE: case AES_GMAC_MECH_INFO_TYPE:
if (plaintext->cd_length != 0) if (plaintext->cd_length != 0)
return (CRYPTO_ARGUMENTS_BAD); return (CRYPTO_ARGUMENTS_BAD);
/* FALLTHRU */ fallthrough;
case AES_GCM_MECH_INFO_TYPE: case AES_GCM_MECH_INFO_TYPE:
length_needed = plaintext->cd_length + aes_ctx.ac_tag_len; length_needed = plaintext->cd_length + aes_ctx.ac_tag_len;
break; break;

View File

@ -8,6 +8,10 @@
#define lcode_c #define lcode_c
#define LUA_CORE #define LUA_CORE
#if defined(HAVE_IMPLICIT_FALLTHROUGH)
#pragma GCC diagnostic ignored "-Wimplicit-fallthrough"
#endif
#include <sys/lua/lua.h> #include <sys/lua/lua.h>
#include "lcode.h" #include "lcode.h"

View File

@ -676,7 +676,7 @@ static void freeobj (lua_State *L, GCObject *o) {
case LUA_TUSERDATA: luaM_freemem(L, o, sizeudata(gco2u(o))); break; case LUA_TUSERDATA: luaM_freemem(L, o, sizeudata(gco2u(o))); break;
case LUA_TSHRSTR: case LUA_TSHRSTR:
G(L)->strt.nuse--; G(L)->strt.nuse--;
/* FALLTHROUGH */ fallthrough;
case LUA_TLNGSTR: { case LUA_TLNGSTR: {
luaM_freemem(L, o, sizestring(gco2ts(o))); luaM_freemem(L, o, sizestring(gco2ts(o)));
break; break;

View File

@ -477,7 +477,7 @@ static int llex (LexState *ls, SemInfo *seminfo) {
else if (!lisdigit(ls->current)) return '.'; else if (!lisdigit(ls->current)) return '.';
/* else go through */ /* else go through */
} }
/* FALLTHROUGH */ fallthrough;
case '0': case '1': case '2': case '3': case '4': case '0': case '1': case '2': case '3': case '4':
case '5': case '6': case '7': case '8': case '9': { case '5': case '6': case '7': case '8': case '9': {
read_numeral(ls, seminfo); read_numeral(ls, seminfo);

View File

@ -501,7 +501,7 @@ static const char *match (MatchState *ms, const char *s, const char *p) {
} }
case '+': /* 1 or more repetitions */ case '+': /* 1 or more repetitions */
s++; /* 1 match already done */ s++; /* 1 match already done */
/* FALLTHROUGH */ fallthrough;
case '*': /* 0 or more repetitions */ case '*': /* 0 or more repetitions */
s = max_expand(ms, s, p, ep); s = max_expand(ms, s, p, ep);
break; break;

View File

@ -492,7 +492,7 @@ const TValue *luaH_get (Table *t, const TValue *key) {
return luaH_getint(t, k); /* use specialized version */ return luaH_getint(t, k); /* use specialized version */
/* else go through */ /* else go through */
} }
/* FALLTHROUGH */ fallthrough;
default: { default: {
Node *n = mainposition(t, key); Node *n = mainposition(t, key);
do { /* check whether `key' is somewhere in the chain */ do { /* check whether `key' is somewhere in the chain */

View File

@ -269,7 +269,7 @@ zfs_ace_fuid_size(void *acep)
entry_type == OWNING_GROUP || entry_type == OWNING_GROUP ||
entry_type == ACE_EVERYONE) entry_type == ACE_EVERYONE)
return (sizeof (zfs_ace_hdr_t)); return (sizeof (zfs_ace_hdr_t));
/*FALLTHROUGH*/ fallthrough;
default: default:
return (sizeof (zfs_ace_t)); return (sizeof (zfs_ace_t));
} }
@ -2151,7 +2151,7 @@ zfs_zaccess_aces_check(znode_t *zp, uint32_t *working_mode,
break; break;
case OWNING_GROUP: case OWNING_GROUP:
who = gowner; who = gowner;
/*FALLTHROUGH*/ fallthrough;
case ACE_IDENTIFIER_GROUP: case ACE_IDENTIFIER_GROUP:
checkit = zfs_groupmember(zfsvfs, who, cr); checkit = zfs_groupmember(zfsvfs, who, cr);
break; break;

View File

@ -974,7 +974,7 @@ zfs_lookup(vnode_t *dvp, const char *nm, vnode_t **vpp,
cnp->cn_flags |= SAVENAME; cnp->cn_flags |= SAVENAME;
break; break;
} }
/* FALLTHROUGH */ fallthrough;
case DELETE: case DELETE:
if (error == 0) if (error == 0)
cnp->cn_flags |= SAVENAME; cnp->cn_flags |= SAVENAME;

View File

@ -269,7 +269,7 @@ zfs_ace_fuid_size(void *acep)
entry_type == OWNING_GROUP || entry_type == OWNING_GROUP ||
entry_type == ACE_EVERYONE) entry_type == ACE_EVERYONE)
return (sizeof (zfs_ace_hdr_t)); return (sizeof (zfs_ace_hdr_t));
/*FALLTHROUGH*/ fallthrough;
default: default:
return (sizeof (zfs_ace_t)); return (sizeof (zfs_ace_t));
} }
@ -2317,7 +2317,7 @@ zfs_zaccess_aces_check(znode_t *zp, uint32_t *working_mode,
break; break;
case OWNING_GROUP: case OWNING_GROUP:
who = gowner; who = gowner;
/*FALLTHROUGH*/ fallthrough;
case ACE_IDENTIFIER_GROUP: case ACE_IDENTIFIER_GROUP:
checkit = zfs_groupmember(zfsvfs, who, cr); checkit = zfs_groupmember(zfsvfs, who, cr);
break; break;

View File

@ -430,7 +430,7 @@ zfs_inode_set_ops(zfsvfs_t *zfsvfs, struct inode *ip)
case S_IFBLK: case S_IFBLK:
(void) sa_lookup(ITOZ(ip)->z_sa_hdl, SA_ZPL_RDEV(zfsvfs), &rdev, (void) sa_lookup(ITOZ(ip)->z_sa_hdl, SA_ZPL_RDEV(zfsvfs), &rdev,
sizeof (rdev)); sizeof (rdev));
/*FALLTHROUGH*/ fallthrough;
case S_IFIFO: case S_IFIFO:
case S_IFSOCK: case S_IFSOCK:
init_special_inode(ip, ip->i_mode, rdev); init_special_inode(ip, ip->i_mode, rdev);

View File

@ -1064,10 +1064,10 @@ abd_raidz_gen_iterate(abd_t **cabds, abd_t *dabd,
switch (parity) { switch (parity) {
case 3: case 3:
len = MIN(caiters[2].iter_mapsize, len); len = MIN(caiters[2].iter_mapsize, len);
/* falls through */ fallthrough;
case 2: case 2:
len = MIN(caiters[1].iter_mapsize, len); len = MIN(caiters[1].iter_mapsize, len);
/* falls through */ fallthrough;
case 1: case 1:
len = MIN(caiters[0].iter_mapsize, len); len = MIN(caiters[0].iter_mapsize, len);
} }
@ -1177,11 +1177,11 @@ abd_raidz_rec_iterate(abd_t **cabds, abd_t **tabds,
case 3: case 3:
len = MIN(xiters[2].iter_mapsize, len); len = MIN(xiters[2].iter_mapsize, len);
len = MIN(citers[2].iter_mapsize, len); len = MIN(citers[2].iter_mapsize, len);
/* falls through */ fallthrough;
case 2: case 2:
len = MIN(xiters[1].iter_mapsize, len); len = MIN(xiters[1].iter_mapsize, len);
len = MIN(citers[1].iter_mapsize, len); len = MIN(citers[1].iter_mapsize, len);
/* falls through */ fallthrough;
case 1: case 1:
len = MIN(xiters[0].iter_mapsize, len); len = MIN(xiters[0].iter_mapsize, len);
len = MIN(citers[0].iter_mapsize, len); len = MIN(citers[0].iter_mapsize, len);

View File

@ -749,7 +749,7 @@ dsl_prop_set_sync_impl(dsl_dataset_t *ds, const char *propname,
ASSERT(err == 0 || err == ENOENT); ASSERT(err == 0 || err == ENOENT);
err = zap_remove(mos, zapobj, inheritstr, tx); err = zap_remove(mos, zapobj, inheritstr, tx);
ASSERT(err == 0 || err == ENOENT); ASSERT(err == 0 || err == ENOENT);
/* FALLTHRU */ fallthrough;
case (ZPROP_SRC_NONE | ZPROP_SRC_RECEIVED): case (ZPROP_SRC_NONE | ZPROP_SRC_RECEIVED):
/* /*
* remove propname$recvd * remove propname$recvd

View File

@ -9533,7 +9533,7 @@ spa_activity_in_progress(spa_t *spa, zpool_wait_activity_t activity,
case ZPOOL_WAIT_RESILVER: case ZPOOL_WAIT_RESILVER:
if ((*in_progress = vdev_rebuild_active(spa->spa_root_vdev))) if ((*in_progress = vdev_rebuild_active(spa->spa_root_vdev)))
break; break;
/* fall through */ fallthrough;
case ZPOOL_WAIT_SCRUB: case ZPOOL_WAIT_SCRUB:
{ {
boolean_t scanning, paused, is_scrub; boolean_t scanning, paused, is_scrub;

View File

@ -1288,7 +1288,7 @@ vdev_label_read_bootenv(vdev_t *rvd, nvlist_t *bootenv)
nvlist_free(config); nvlist_free(config);
break; break;
} }
/* FALLTHROUGH */ fallthrough;
default: default:
/* Check for FreeBSD zfs bootonce command string */ /* Check for FreeBSD zfs bootonce command string */
buf = abd_to_buf(abd); buf = abd_to_buf(abd);

View File

@ -142,7 +142,7 @@ static const struct {
a.b[6] = mul_lt[a.b[6]]; \ a.b[6] = mul_lt[a.b[6]]; \
a.b[5] = mul_lt[a.b[5]]; \ a.b[5] = mul_lt[a.b[5]]; \
a.b[4] = mul_lt[a.b[4]]; \ a.b[4] = mul_lt[a.b[4]]; \
/* falls through */ \ fallthrough; \
case 4: \ case 4: \
a.b[3] = mul_lt[a.b[3]]; \ a.b[3] = mul_lt[a.b[3]]; \
a.b[2] = mul_lt[a.b[2]]; \ a.b[2] = mul_lt[a.b[2]]; \

View File

@ -362,7 +362,7 @@ zfs_replay_create_acl(void *arg1, void *arg2, boolean_t byteswap)
zfsvfs->z_fuid_replay = zfs_replay_fuids(fuidstart, zfsvfs->z_fuid_replay = zfs_replay_fuids(fuidstart,
(void *)&name, lracl->lr_fuidcnt, lracl->lr_domcnt, (void *)&name, lracl->lr_fuidcnt, lracl->lr_domcnt,
lr->lr_uid, lr->lr_gid); lr->lr_uid, lr->lr_gid);
/*FALLTHROUGH*/ fallthrough;
case TX_CREATE_ACL_ATTR: case TX_CREATE_ACL_ATTR:
if (name == NULL) { if (name == NULL) {
lrattr = (lr_attr_t *)(caddr_t)(lracl + 1); lrattr = (lr_attr_t *)(caddr_t)(lracl + 1);
@ -394,7 +394,7 @@ zfs_replay_create_acl(void *arg1, void *arg2, boolean_t byteswap)
zfsvfs->z_fuid_replay = zfs_replay_fuids(fuidstart, zfsvfs->z_fuid_replay = zfs_replay_fuids(fuidstart,
(void *)&name, lracl->lr_fuidcnt, lracl->lr_domcnt, (void *)&name, lracl->lr_fuidcnt, lracl->lr_domcnt,
lr->lr_uid, lr->lr_gid); lr->lr_uid, lr->lr_gid);
/*FALLTHROUGH*/ fallthrough;
case TX_MKDIR_ACL_ATTR: case TX_MKDIR_ACL_ATTR:
if (name == NULL) { if (name == NULL) {
lrattr = (lr_attr_t *)(caddr_t)(lracl + 1); lrattr = (lr_attr_t *)(caddr_t)(lracl + 1);
@ -519,8 +519,7 @@ zfs_replay_create(void *arg1, void *arg2, boolean_t byteswap)
zfs_replay_fuid_domain(start, &start, zfs_replay_fuid_domain(start, &start,
lr->lr_uid, lr->lr_gid); lr->lr_uid, lr->lr_gid);
name = (char *)start; name = (char *)start;
fallthrough;
/*FALLTHROUGH*/
case TX_CREATE: case TX_CREATE:
if (name == NULL) if (name == NULL)
name = (char *)start; name = (char *)start;
@ -537,8 +536,7 @@ zfs_replay_create(void *arg1, void *arg2, boolean_t byteswap)
zfs_replay_fuid_domain(start, &start, zfs_replay_fuid_domain(start, &start,
lr->lr_uid, lr->lr_gid); lr->lr_uid, lr->lr_gid);
name = (char *)start; name = (char *)start;
fallthrough;
/*FALLTHROUGH*/
case TX_MKDIR: case TX_MKDIR:
if (name == NULL) if (name == NULL)
name = (char *)(lr + 1); name = (char *)(lr + 1);

View File

@ -214,7 +214,7 @@ zio_compress_to_feature(enum zio_compress comp)
case ZIO_COMPRESS_ZSTD: case ZIO_COMPRESS_ZSTD:
return (SPA_FEATURE_ZSTD_COMPRESS); return (SPA_FEATURE_ZSTD_COMPRESS);
default: default:
/* fallthru */; break;
} }
return (SPA_FEATURE_NONE); return (SPA_FEATURE_NONE);
} }