Lines Matching full:feature

76 	    "    feature stat <pool>\n"
78 " feature enable [-r] [-d desc] <pool> <feature>\n"
79 " add a new enabled feature to the pool\n"
80 " -d <desc> sets the feature's description\n"
81 " -r set read-only compatible flag for feature\n"
82 " feature ref [-md] <pool> <feature>\n"
83 " change the refcount on the given feature\n"
85 " -m add the feature to the label if increasing refcount\n"
87 " <feature> : should be a feature guid\n"
277 zfeature_info_t *feature = arg;
279 feature_enable_sync(spa, feature, tx);
281 spa_history_log_internal(spa, "zhack enable feature", tx,
283 feature->fi_guid, feature->fi_flags);
293 zfeature_info_t feature;
301 feature.fi_uname = "zhack";
302 feature.fi_flags = 0;
303 feature.fi_depends = nodeps;
304 feature.fi_feature = SPA_FEATURE_NONE;
310 feature.fi_flags |= ZFEATURE_FLAG_READONLY_COMPAT;
325 feature.fi_desc = desc;
331 (void) fprintf(stderr, "error: missing feature or pool name\n");
335 feature.fi_guid = argv[1];
337 if (!zfeature_is_valid_guid(feature.fi_guid))
338 fatal(NULL, FTAG, "invalid feature guid: %s", feature.fi_guid);
343 if (zfeature_is_supported(feature.fi_guid))
344 fatal(spa, FTAG, "'%s' is a real feature, will not enable",
345 feature.fi_guid);
346 if (0 == zap_contains(mos, spa->spa_feat_desc_obj, feature.fi_guid))
347 fatal(spa, FTAG, "feature already enabled: %s",
348 feature.fi_guid);
351 zhack_feature_enable_sync, &feature, 5, ZFS_SPACE_CHECK_NORMAL));
362 zfeature_info_t *feature = arg;
365 VERIFY0(feature_get_refcount_from_disk(spa, feature, &refcount));
366 feature_sync(spa, feature, refcount + 1, tx);
367 spa_history_log_internal(spa, "zhack feature incr", tx,
368 "name=%s", feature->fi_guid);
375 zfeature_info_t *feature = arg;
378 VERIFY0(feature_get_refcount_from_disk(spa, feature, &refcount));
379 feature_sync(spa, feature, refcount - 1, tx);
380 spa_history_log_internal(spa, "zhack feature decr", tx,
381 "name=%s", feature->fi_guid);
392 zfeature_info_t feature;
397 * when the feature was enabled, but we need to properly set the
398 * feature for read or write based on the information we read off
401 feature.fi_uname = "zhack";
402 feature.fi_flags = 0;
403 feature.fi_desc = NULL;
404 feature.fi_depends = nodeps;
405 feature.fi_feature = SPA_FEATURE_NONE;
411 feature.fi_flags |= ZFEATURE_FLAG_MOS;
425 (void) fprintf(stderr, "error: missing feature or pool name\n");
429 feature.fi_guid = argv[1];
431 if (!zfeature_is_valid_guid(feature.fi_guid))
432 fatal(NULL, FTAG, "invalid feature guid: %s", feature.fi_guid);
437 if (zfeature_is_supported(feature.fi_guid)) {
439 "'%s' is a real feature, will not change refcount",
440 feature.fi_guid);
444 feature.fi_guid)) {
445 feature.fi_flags &= ~ZFEATURE_FLAG_READONLY_COMPAT;
447 feature.fi_guid)) {
448 feature.fi_flags |= ZFEATURE_FLAG_READONLY_COMPAT;
450 fatal(spa, FTAG, "feature is not enabled: %s", feature.fi_guid);
455 if (feature_get_refcount_from_disk(spa, &feature,
457 fatal(spa, FTAG, "feature refcount already 0: %s",
458 feature.fi_guid);
463 decr ? feature_decr_sync : feature_incr_sync, &feature,
478 "error: no feature operation specified\n");
1009 if (strcmp(subcommand, "feature") == 0) {