Lines Matching refs:feature

226 feature_get_refcount(spa_t *spa, zfeature_info_t *feature, uint64_t *res)  in feature_get_refcount()  argument
228 ASSERT(VALID_FEATURE_FID(feature->fi_feature)); in feature_get_refcount()
229 if (spa->spa_feat_refcount_cache[feature->fi_feature] == in feature_get_refcount()
233 *res = spa->spa_feat_refcount_cache[feature->fi_feature]; in feature_get_refcount()
243 feature_get_refcount_from_disk(spa_t *spa, zfeature_info_t *feature, in feature_get_refcount_from_disk() argument
248 uint64_t zapobj = (feature->fi_flags & ZFEATURE_FLAG_READONLY_COMPAT) ? in feature_get_refcount_from_disk()
259 feature->fi_guid, sizeof (uint64_t), 1, &refcount); in feature_get_refcount_from_disk()
272 feature_get_enabled_txg(spa_t *spa, zfeature_info_t *feature, uint64_t *res) in feature_get_enabled_txg() argument
276 ASSERT(zfeature_depends_on(feature->fi_feature, in feature_get_enabled_txg()
279 if (!spa_feature_is_enabled(spa, feature->fi_feature)) { in feature_get_enabled_txg()
286 feature->fi_guid, sizeof (uint64_t), 1, res)); in feature_get_enabled_txg()
296 feature_sync(spa_t *spa, zfeature_info_t *feature, uint64_t refcount, in feature_sync() argument
299 ASSERT(VALID_FEATURE_OR_NONE(feature->fi_feature)); in feature_sync()
300 uint64_t zapobj = (feature->fi_flags & ZFEATURE_FLAG_READONLY_COMPAT) ? in feature_sync()
303 VERIFY0(zap_update(spa->spa_meta_objset, zapobj, feature->fi_guid, in feature_sync()
313 if (feature->fi_feature != SPA_FEATURE_NONE) { in feature_sync()
315 &spa->spa_feat_refcount_cache[feature->fi_feature]; in feature_sync()
321 spa_deactivate_mos_feature(spa, feature->fi_guid); in feature_sync()
322 else if (feature->fi_flags & ZFEATURE_FLAG_MOS) in feature_sync()
323 spa_activate_mos_feature(spa, feature->fi_guid, tx); in feature_sync()
331 feature_enable_sync(spa_t *spa, zfeature_info_t *feature, dmu_tx_t *tx) in feature_enable_sync() argument
334 (feature->fi_flags & ZFEATURE_FLAG_ACTIVATE_ON_ENABLE) ? 1 : 0; in feature_enable_sync()
335 uint64_t zapobj = (feature->fi_flags & ZFEATURE_FLAG_READONLY_COMPAT) ? in feature_enable_sync()
339 ASSERT(zfeature_is_valid_guid(feature->fi_guid)); in feature_enable_sync()
345 if (zap_contains(spa->spa_meta_objset, zapobj, feature->fi_guid) == 0) in feature_enable_sync()
348 for (int i = 0; feature->fi_depends[i] != SPA_FEATURE_NONE; i++) in feature_enable_sync()
349 spa_feature_enable(spa, feature->fi_depends[i], tx); in feature_enable_sync()
352 feature->fi_guid, 1, strlen(feature->fi_desc) + 1, in feature_enable_sync()
353 feature->fi_desc, tx)); in feature_enable_sync()
355 feature_sync(spa, feature, initial_refcount, tx); in feature_enable_sync()
369 spa->spa_feat_enabled_txg_obj, feature->fi_guid, in feature_enable_sync()
379 zfeature_info_t *feature = &spa_feature_table[fid]; in feature_do_action() local
380 uint64_t zapobj = (feature->fi_flags & ZFEATURE_FLAG_READONLY_COMPAT) ? in feature_do_action()
385 ASSERT(zfeature_is_valid_guid(feature->fi_guid)); in feature_do_action()
390 VERIFY3U(feature_get_refcount(spa, feature, &refcount), !=, ENOTSUP); in feature_do_action()
406 feature_sync(spa, feature, refcount, tx); in feature_do_action()