Home | History | Annotate | Download | only in zhack

Lines Matching defs:spa

37 #include <sys/spa.h>
87 fatal(spa_t *spa, void *tag, const char *fmt, ...)
91 if (spa != NULL) {
92 spa_close(spa, tag);
130 spa_t *spa;
148 if (readonly && spa_open(target, &spa, FTAG) == 0) {
149 spa_close(spa, FTAG);
165 spa_open(target, &spa, FTAG) == 0) {
166 fatal(spa, FTAG, "cannot import '%s': pool is "
199 zhack_spa_open(const char *target, boolean_t readonly, void *tag, spa_t **spa)
206 err = spa_open(target, spa, tag);
210 fatal(*spa, FTAG, "cannot open '%s': %s", target,
212 if (spa_version(*spa) < SPA_VERSION_FEATURES) {
213 fatal(*spa, FTAG, "'%s' has version %d, features not enabled",
214 target, (int)spa_version(*spa));
245 dump_mos(spa_t *spa)
247 nvlist_t *nv = spa->spa_label_features;
260 spa_t *spa;
273 zhack_spa_open(target, B_TRUE, FTAG, &spa);
274 os = spa->spa_meta_objset;
276 dump_obj(os, spa->spa_feat_for_read_obj, "for_read");
277 dump_obj(os, spa->spa_feat_for_write_obj, "for_write");
278 dump_obj(os, spa->spa_feat_desc_obj, "descriptions");
279 if (spa_feature_is_active(spa, SPA_FEATURE_ENABLED_TXG)) {
280 dump_obj(os, spa->spa_feat_enabled_txg_obj, "enabled_txg");
282 dump_mos(spa);
284 spa_close(spa, FTAG);
290 spa_t *spa = dmu_tx_pool(tx)->dp_spa;
293 feature_enable_sync(spa, feature, tx);
295 spa_history_log_internal(spa, "zhack enable feature", tx,
305 spa_t *spa;
352 zhack_spa_open(target, B_FALSE, FTAG, &spa);
353 mos = spa->spa_meta_objset;
356 fatal(spa, FTAG, "'%s' is a real feature, will not enable");
357 if (0 == zap_contains(mos, spa->spa_feat_desc_obj, feature.fi_guid))
358 fatal(spa, FTAG, "feature already enabled: %s",
361 VERIFY0(dsl_sync_task(spa_name(spa), NULL,
364 spa_close(spa, FTAG);
372 spa_t *spa = dmu_tx_pool(tx)->dp_spa;
376 VERIFY0(feature_get_refcount_from_disk(spa, feature, &refcount));
377 feature_sync(spa, feature, refcount + 1, tx);
378 spa_history_log_internal(spa, "zhack feature incr", tx,
385 spa_t *spa = dmu_tx_pool(tx)->dp_spa;
389 VERIFY0(feature_get_refcount_from_disk(spa, feature, &refcount));
390 feature_sync(spa, feature, refcount - 1, tx);
391 spa_history_log_internal(spa, "zhack feature decr", tx,
401 spa_t *spa;
445 zhack_spa_open(target, B_FALSE, FTAG, &spa);
446 mos = spa->spa_meta_objset;
449 fatal(spa, FTAG,
453 if (0 == zap_contains(mos, spa->spa_feat_for_read_obj,
456 } else if (0 == zap_contains(mos, spa->spa_feat_for_write_obj,
460 fatal(spa, FTAG, "feature is not enabled: %s", feature.fi_guid);
465 if (feature_get_refcount_from_disk(spa, &feature,
467 fatal(spa, FTAG, "feature refcount already 0: %s",
472 VERIFY0(dsl_sync_task(spa_name(spa), NULL,
476 spa_close(spa, FTAG);