Silence static analyzer warnings about spa_sync_props()
Both Coverity and Clang's static analyzer complain about reading an uninitialized intval if the property is not passed as DATA_TYPE_UINT64 in the nvlist. This is impossible becuase spa_prop_validate() already checked this, but they are unlikely to be the last static analyzers to complain about this, so lets just refactor the code to suppress the warnings. Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Signed-off-by: Richard Yao <richard.yao@alumni.stonybrook.edu> Closes #14043
This commit is contained in:
parent
4ecd96371b
commit
44f71818f8
|
@ -8867,37 +8867,37 @@ spa_sync_props(void *arg, dmu_tx_t *tx)
|
||||||
spa_history_log_internal(spa, "set", tx,
|
spa_history_log_internal(spa, "set", tx,
|
||||||
"%s=%lld", nvpair_name(elem),
|
"%s=%lld", nvpair_name(elem),
|
||||||
(longlong_t)intval);
|
(longlong_t)intval);
|
||||||
|
|
||||||
|
switch (prop) {
|
||||||
|
case ZPOOL_PROP_DELEGATION:
|
||||||
|
spa->spa_delegation = intval;
|
||||||
|
break;
|
||||||
|
case ZPOOL_PROP_BOOTFS:
|
||||||
|
spa->spa_bootfs = intval;
|
||||||
|
break;
|
||||||
|
case ZPOOL_PROP_FAILUREMODE:
|
||||||
|
spa->spa_failmode = intval;
|
||||||
|
break;
|
||||||
|
case ZPOOL_PROP_AUTOTRIM:
|
||||||
|
spa->spa_autotrim = intval;
|
||||||
|
spa_async_request(spa,
|
||||||
|
SPA_ASYNC_AUTOTRIM_RESTART);
|
||||||
|
break;
|
||||||
|
case ZPOOL_PROP_AUTOEXPAND:
|
||||||
|
spa->spa_autoexpand = intval;
|
||||||
|
if (tx->tx_txg != TXG_INITIAL)
|
||||||
|
spa_async_request(spa,
|
||||||
|
SPA_ASYNC_AUTOEXPAND);
|
||||||
|
break;
|
||||||
|
case ZPOOL_PROP_MULTIHOST:
|
||||||
|
spa->spa_multihost = intval;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
ASSERT(0); /* not allowed */
|
ASSERT(0); /* not allowed */
|
||||||
}
|
}
|
||||||
|
|
||||||
switch (prop) {
|
|
||||||
case ZPOOL_PROP_DELEGATION:
|
|
||||||
spa->spa_delegation = intval;
|
|
||||||
break;
|
|
||||||
case ZPOOL_PROP_BOOTFS:
|
|
||||||
spa->spa_bootfs = intval;
|
|
||||||
break;
|
|
||||||
case ZPOOL_PROP_FAILUREMODE:
|
|
||||||
spa->spa_failmode = intval;
|
|
||||||
break;
|
|
||||||
case ZPOOL_PROP_AUTOTRIM:
|
|
||||||
spa->spa_autotrim = intval;
|
|
||||||
spa_async_request(spa,
|
|
||||||
SPA_ASYNC_AUTOTRIM_RESTART);
|
|
||||||
break;
|
|
||||||
case ZPOOL_PROP_AUTOEXPAND:
|
|
||||||
spa->spa_autoexpand = intval;
|
|
||||||
if (tx->tx_txg != TXG_INITIAL)
|
|
||||||
spa_async_request(spa,
|
|
||||||
SPA_ASYNC_AUTOEXPAND);
|
|
||||||
break;
|
|
||||||
case ZPOOL_PROP_MULTIHOST:
|
|
||||||
spa->spa_multihost = intval;
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue