summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrian Behlendorf <[email protected]>2011-02-23 12:50:05 -0800
committerBrian Behlendorf <[email protected]>2011-02-23 12:52:51 -0800
commita31a70bbd1c3d6b27a68280e53103c5b9a8ebd65 (patch)
treeda15e74de99c8106d907f54f29ebccb7b86e0454
parent45066d1f20a582fc8229776503b1cdd554d7fde4 (diff)
Fix enum compiler warning
Generally it's a good idea to use enums for switch statements, but in this case it causes warning because the enum is really a set of flags. These flags are OR'ed together in some cases resulting in values which are not part of the original enum. This causes compiler warning such as this about invalid cases. error: case value ‘33’ not in enumerated type ‘zprop_source_t’ To handle this we simply case the enum to an int for the switch statement. This leaves all other enum type checking in place and effectively disabled these warnings.
-rw-r--r--module/zfs/dsl_prop.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/module/zfs/dsl_prop.c b/module/zfs/dsl_prop.c
index 0ba929a71..c0e65d8bd 100644
--- a/module/zfs/dsl_prop.c
+++ b/module/zfs/dsl_prop.c
@@ -355,7 +355,7 @@ dsl_prop_predict_sync(dsl_dir_t *dd, dsl_prop_setarg_t *psa)
source = ZPROP_SRC_LOCAL;
}
- switch (source) {
+ switch ((int)source) {
case ZPROP_SRC_NONE:
/* Revert to the received value, if any. */
err = zap_lookup(mos, zapobj, recvdstr, 8, 1,
@@ -594,7 +594,7 @@ dsl_prop_set_sync(void *arg1, void *arg2, dmu_tx_t *tx)
inheritstr = kmem_asprintf("%s%s", propname, ZPROP_INHERIT_SUFFIX);
recvdstr = kmem_asprintf("%s%s", propname, ZPROP_RECVD_SUFFIX);
- switch (source) {
+ switch ((int)source) {
case ZPROP_SRC_NONE:
/*
* revert to received value, if any (inherit -S)