spa_feature_t
for (spa_feature_t f = 0; f < SPA_FEATURES; f++) {
for (spa_feature_t f = 0; f < SPA_FEATURES; f++) {
spa_feature_t nodeps[] = { SPA_FEATURE_NONE };
spa_feature_t nodeps[] = { SPA_FEATURE_NONE };
spa_feature_t i;
zfeature_lookup_name(const char *name, spa_feature_t *res)
for (spa_feature_t i = 0; i < SPA_FEATURES; i++) {
zfeature_depends_on(spa_feature_t fid, spa_feature_t check)
deps_contains_feature(const spa_feature_t *deps, const spa_feature_t feature)
zfeature_register(spa_feature_t fid, const char *guid, const char *name,
const spa_feature_t *deps)
static spa_feature_t nodeps[] = { SPA_FEATURE_NONE };
static spa_feature_t hole_birth_deps[] = {
static const spa_feature_t bookmarks_deps[] = {
static const spa_feature_t filesystem_limits_deps[] = {
static const spa_feature_t log_spacemap_deps[] = {
static const spa_feature_t large_blocks_deps[] = {
static const spa_feature_t large_dnode_deps[] = {
static const spa_feature_t sha512_deps[] = {
static const spa_feature_t skein_deps[] = {
static const spa_feature_t edonr_deps[] = {
static const spa_feature_t obsolete_counts_deps[] = {
static const spa_feature_t userobj_accounting_deps[] = {
static const spa_feature_t bookmark_v2_deps[] = {
static const spa_feature_t encryption_deps[] = {
static const spa_feature_t project_quota_deps[] = {
for (spa_feature_t i = 0; i < SPA_FEATURES; i++) {
const spa_feature_t *fi_depends;
extern int zfeature_lookup_name(const char *, spa_feature_t *);
extern boolean_t zfeature_depends_on(spa_feature_t, spa_feature_t);
spa_feature_t fi_feature;
spa_feature_t fid;
dsl_dataset_deactivate_feature_impl(dsl_dataset_t *ds, spa_feature_t f,
dsl_dataset_deactivate_feature(dsl_dataset_t *ds, spa_feature_t f, dmu_tx_t *tx)
for (spa_feature_t f = 0; f < SPA_FEATURES; f++) {
spa_feature_t f = zio_checksum_to_feature(BP_GET_CHECKSUM(bp));
for (spa_feature_t f = 0; f < SPA_FEATURES; f++) {
for (spa_feature_t f = 0; f < SPA_FEATURES; f++) {
unload_zfeature(dsl_dataset_t *ds, spa_feature_t f)
load_zfeature(objset_t *mos, dsl_dataset_t *ds, spa_feature_t f)
for (spa_feature_t f = 0; f < SPA_FEATURES; f++) {
for (spa_feature_t f = 0; f < SPA_FEATURES; f++) {
for (spa_feature_t f = 0; f < SPA_FEATURES; f++) {
static void unload_zfeature(dsl_dataset_t *ds, spa_feature_t f);
zfeature_active(spa_feature_t f, void *arg)
dsl_dataset_feature_is_active(dsl_dataset_t *ds, spa_feature_t f)
dsl_dataset_get_uint64_array_feature(dsl_dataset_t *ds, spa_feature_t f,
dsl_dataset_activate_feature(uint64_t dsobj, spa_feature_t f, void *arg,
for (spa_feature_t f = 0; f < SPA_FEATURES; f++) {
for (spa_feature_t f = 0; f < SPA_FEATURES; f++) {
for (spa_feature_t i = 0; i < SPA_FEATURES; i++) {
spa_feature_t feat;
spa_feature_t fid;
void dsl_dataset_activate_feature(uint64_t dsobj, spa_feature_t f, void *arg,
void dsl_dataset_deactivate_feature(dsl_dataset_t *ds, spa_feature_t f,
boolean_t dsl_dataset_feature_is_active(dsl_dataset_t *ds, spa_feature_t f);
spa_feature_t f, uint64_t *outlength, uint64_t **outp);
extern void spa_feature_enable(struct spa *, spa_feature_t,
extern void spa_feature_incr(struct spa *, spa_feature_t, struct dmu_tx *);
extern void spa_feature_decr(struct spa *, spa_feature_t, struct dmu_tx *);
extern boolean_t spa_feature_is_enabled(struct spa *, spa_feature_t);
extern boolean_t spa_feature_is_active(struct spa *, spa_feature_t);
extern boolean_t spa_feature_enabled_txg(spa_t *spa, spa_feature_t fid,
extern uint64_t spa_feature_refcount(spa_t *, spa_feature_t, uint64_t);
extern spa_feature_t zio_checksum_to_feature(enum zio_checksum cksum);
feature_do_action(spa_t *spa, spa_feature_t fid, feature_action_t action,
spa_feature_enable(spa_t *spa, spa_feature_t fid, dmu_tx_t *tx)
spa_feature_incr(spa_t *spa, spa_feature_t fid, dmu_tx_t *tx)
spa_feature_decr(spa_t *spa, spa_feature_t fid, dmu_tx_t *tx)
spa_feature_is_enabled(spa_t *spa, spa_feature_t fid)
spa_feature_is_active(spa_t *spa, spa_feature_t fid)
spa_feature_enabled_txg(spa_t *spa, spa_feature_t fid, uint64_t *txg)
static int zfs_prop_activate_feature(spa_t *spa, spa_feature_t feature);
spa_feature_t feature;
spa_feature_t *featurep = arg;
spa_feature_t *featurep = arg;
zfs_prop_activate_feature(spa_t *spa, spa_feature_t feature)
spa_feature_t