From f2d72af596b54f11a92eb3893d4431cfcb59fcf2 Mon Sep 17 00:00:00 2001 From: Brian Behlendorf Date: Thu, 12 Mar 2009 09:53:08 -0700 Subject: [PATCH] Add remaining missing cases (or a default) to all switch statements. The previous code was not wrong, but this prevents gcc from warning us about missing cases for these known safe switch statements. The -Wno-missing-cases can now be removed to detect places where we accidentally forgot a case. --- cmd/zinject/translate.c | 6 ++++++ lib/libzfs/libzfs_pool.c | 9 ++++++++- module/zfs/arc.c | 4 ++++ module/zfs/spa.c | 2 ++ module/zfs/zfs_ioctl.c | 4 ++++ 5 files changed, 24 insertions(+), 1 deletion(-) diff --git a/cmd/zinject/translate.c b/cmd/zinject/translate.c index c85e024b62..d8654594d1 100644 --- a/cmd/zinject/translate.c +++ b/cmd/zinject/translate.c @@ -221,6 +221,8 @@ calculate_range(const char *dataset, err_type_t type, int level, char *range, } switch (type) { + default: + break; case TYPE_DATA: break; @@ -335,6 +337,8 @@ translate_record(err_type_t type, const char *object, const char *range, * MOS objects are treated specially. */ switch (type) { + default: + break; case TYPE_MOS: record->zi_type = 0; break; @@ -461,6 +465,8 @@ translate_device(const char *pool, const char *device, err_type_t label_type, } switch (label_type) { + default: + break; case TYPE_LABEL_UBERBLOCK: record->zi_start = offsetof(vdev_label_t, vl_uberblock[0]); record->zi_end = record->zi_start + VDEV_UBERBLOCK_RING - 1; diff --git a/lib/libzfs/libzfs_pool.c b/lib/libzfs/libzfs_pool.c index 75ecc54e27..e011abc542 100644 --- a/lib/libzfs/libzfs_pool.c +++ b/lib/libzfs/libzfs_pool.c @@ -180,6 +180,8 @@ char * zpool_state_to_name(vdev_state_t state, vdev_aux_t aux) { switch (state) { + default: + break; case VDEV_STATE_CLOSED: case VDEV_STATE_OFFLINE: return (gettext("OFFLINE")); @@ -414,6 +416,8 @@ zpool_valid_proplist(libzfs_handle_t *hdl, const char *poolname, * Perform additional checking for specific properties. */ switch (prop) { + default: + break; case ZPOOL_PROP_VERSION: if (intval < version || intval > SPA_VERSION) { zfs_error_aux(hdl, dgettext(TEXT_DOMAIN, @@ -706,7 +710,10 @@ zpool_name_valid(libzfs_handle_t *hdl, boolean_t isopen, const char *pool) zfs_error_aux(hdl, dgettext(TEXT_DOMAIN, "multiple '@' delimiters in name")); break; - + case NAME_ERR_NO_AT: + zfs_error_aux(hdl, dgettext(TEXT_DOMAIN, + "permission set is missing '@'")); + break; } } return (B_FALSE); diff --git a/module/zfs/arc.c b/module/zfs/arc.c index 3a9598a926..bb87391a51 100644 --- a/module/zfs/arc.c +++ b/module/zfs/arc.c @@ -1110,6 +1110,8 @@ arc_space_consume(uint64_t space, arc_space_type_t type) ASSERT(type >= 0 && type < ARC_SPACE_NUMTYPES); switch (type) { + default: + break; case ARC_SPACE_DATA: ARCSTAT_INCR(arcstat_data_size, space); break; @@ -1134,6 +1136,8 @@ arc_space_return(uint64_t space, arc_space_type_t type) ASSERT(type >= 0 && type < ARC_SPACE_NUMTYPES); switch (type) { + default: + break; case ARC_SPACE_DATA: ARCSTAT_INCR(arcstat_data_size, -space); break; diff --git a/module/zfs/spa.c b/module/zfs/spa.c index f891fc472f..23be2b0c91 100644 --- a/module/zfs/spa.c +++ b/module/zfs/spa.c @@ -1050,6 +1050,8 @@ spa_check_logs(spa_t *spa) (void) dmu_objset_find(spa->spa_name, zil_clear_log_chain, NULL, DS_FIND_CHILDREN); break; + case SPA_LOG_GOOD: + break; } spa->spa_log_state = SPA_LOG_GOOD; return (0); diff --git a/module/zfs/zfs_ioctl.c b/module/zfs/zfs_ioctl.c index d032648b54..759ad31669 100644 --- a/module/zfs/zfs_ioctl.c +++ b/module/zfs/zfs_ioctl.c @@ -325,6 +325,8 @@ zfs_secpolicy_setprop(const char *name, zfs_prop_t prop, cred_t *cr) * Check permissions for special properties. */ switch (prop) { + default: + break; case ZFS_PROP_ZONED: /* * Disallow setting of 'zoned' from within a local zone. @@ -1438,6 +1440,8 @@ zfs_set_prop_nvlist(const char *name, nvlist_t *nvl) * Check that this value is valid for this pool version */ switch (prop) { + default: + break; case ZFS_PROP_COMPRESSION: /* * If the user specified gzip compression, make sure