Add no-upgrade featureflag

Adds a featureflag that is not enabled during upgrades unless listed
explicitly. This is useful for features that could cause issues unless
applied carefully; for example, a feature that could make a root pool
unbootable if bootloaders don't yet have support for it.

Sponsored-by: Klara, Inc.
Sponsored-by: Wasabi Technology, Inc.
Reviewed-by: Alexander Motin <mav@FreeBSD.org>
Reviewed-by: Tony Hutter <hutter2@llnl.gov>
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Reviewed-by: Rob Norris <rob.norris@klarasystems.com>
Reviewed-by: Allan Jude <allan@klarasystems.com>
Signed-off-by: Paul Dagnelie <paul.dagnelie@klarasystems.com>
Closes #17004
This commit is contained in:
Paul Dagnelie
2025-07-03 11:03:30 -07:00
committed by Brian Behlendorf
parent 4c2a7f85d5
commit e845be28e7
4 changed files with 23 additions and 6 deletions
+9 -1
View File
@@ -103,7 +103,15 @@ typedef enum zfeature_flags {
/* Activate this feature at the same time it is enabled. */
ZFEATURE_FLAG_ACTIVATE_ON_ENABLE = (1 << 2),
/* Each dataset has a field set if it has ever used this feature. */
ZFEATURE_FLAG_PER_DATASET = (1 << 3)
ZFEATURE_FLAG_PER_DATASET = (1 << 3),
/*
* This feature isn't enabled by zpool upgrade; it must be explicitly
* listed to be enabled. It will also be applied if listed in an
* explicitly provided compatibility list. This flag can be removed
* from a given feature once support is sufficiently widespread, or
* worries about backwards compatibility are no longer relevant.
*/
ZFEATURE_FLAG_NO_UPGRADE = (1 << 4)
} zfeature_flags_t;
typedef enum zfeature_type {