X-Git-Url: https://git.proxmox.com/?a=blobdiff_plain;f=module%2Fzcommon%2Fzfeature_common.c;h=6ab3abe119144354c0f810ed73135833c2cee498;hb=a1d477c24c7badc89c60955995fd84d311938486;hp=36d0d9613fc728137289144632cadddd774d7a96;hpb=4b0f5b2d7b99ca3ed9585173fe4b1c7fedda5aa5;p=mirror_zfs.git diff --git a/module/zcommon/zfeature_common.c b/module/zcommon/zfeature_common.c index 36d0d9613..6ab3abe11 100644 --- a/module/zcommon/zfeature_common.c +++ b/module/zcommon/zfeature_common.c @@ -299,6 +299,22 @@ zpool_feature_init(void) "Edon-R hash algorithm.", ZFEATURE_FLAG_PER_DATASET, edonr_deps); } + zfeature_register(SPA_FEATURE_DEVICE_REMOVAL, + "com.delphix:device_removal", "device_removal", + "Top-level vdevs can be removed, reducing logical pool size.", + ZFEATURE_FLAG_MOS, NULL); + { + static const spa_feature_t obsolete_counts_deps[] = { + SPA_FEATURE_EXTENSIBLE_DATASET, + SPA_FEATURE_DEVICE_REMOVAL, + SPA_FEATURE_NONE + }; + zfeature_register(SPA_FEATURE_OBSOLETE_COUNTS, + "com.delphix:obsolete_counts", "obsolete_counts", + "Reduce memory used by removed devices when their blocks are " + "freed or remapped.", + ZFEATURE_FLAG_READONLY_COMPAT, obsolete_counts_deps); + } { static const spa_feature_t userobj_accounting_deps[] = { SPA_FEATURE_EXTENSIBLE_DATASET,