diff --git a/module/zfs/spa.c b/module/zfs/spa.c index b83c982c1..c93c7945f 100644 --- a/module/zfs/spa.c +++ b/module/zfs/spa.c @@ -9683,9 +9683,17 @@ spa_sync_props(void *arg, dmu_tx_t *tx) if (nvpair_type(elem) == DATA_TYPE_STRING) { ASSERT(proptype == PROP_TYPE_STRING); strval = fnvpair_value_string(elem); - VERIFY0(zap_update(mos, - spa->spa_pool_props_object, propname, - 1, strlen(strval) + 1, strval, tx)); + if (strlen(strval) == 0) { + /* remove the property if value == "" */ + (void) zap_remove(mos, + spa->spa_pool_props_object, + propname, tx); + } else { + VERIFY0(zap_update(mos, + spa->spa_pool_props_object, + propname, 1, strlen(strval) + 1, + strval, tx)); + } spa_history_log_internal(spa, "set", tx, "%s=%s", elemname, strval); } else if (nvpair_type(elem) == DATA_TYPE_UINT64) {