summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard Laager <[email protected]>2020-02-18 11:36:50 -0600
committerGitHub <[email protected]>2020-02-18 09:36:50 -0800
commitf2448464623f240002a0dff0f4617dec4c2cdefe (patch)
tree6df080605d098645ffa30255182be4e7680be24b
parentfb63fc0c0398baf2250eea8a7e0ddb4760d59e5e (diff)
Prefer org.openzfs for features and properties
Moving forward, we wish to use org.openzfs (no dash) rather than org.open-zfs or org.zfsonlinux for feature GUIDs and property names. The existing feature GUIDs cannot be changed. Reviewed-by: Brian Behlendorf <[email protected]> Reviewed-by: Ryan Moeller <[email protected]> Signed-off-by: Richard Laager <[email protected]> Closes #10003
-rw-r--r--include/sys/fs/zfs.h4
-rw-r--r--man/man5/zpool-features.52
-rw-r--r--module/zcommon/zfeature_common.c15
-rwxr-xr-xtests/zfs-tests/tests/functional/cli_root/zfs_send/zfs_send-b.ksh20
4 files changed, 26 insertions, 15 deletions
diff --git a/include/sys/fs/zfs.h b/include/sys/fs/zfs.h
index f919bd9b1..f5d8ba953 100644
--- a/include/sys/fs/zfs.h
+++ b/include/sys/fs/zfs.h
@@ -591,8 +591,8 @@ typedef struct zpool_load_policy {
/*
* The following are configuration names used in the nvlist describing a pool's
- * configuration. New on-disk names should be prefixed with "<reverse-DNS>:"
- * (e.g. "org.open-zfs:") to avoid conflicting names being developed
+ * configuration. New on-disk names should be prefixed with "<reversed-DNS>:"
+ * (e.g. "org.openzfs:") to avoid conflicting names being developed
* independently.
*/
#define ZPOOL_CONFIG_VERSION "version"
diff --git a/man/man5/zpool-features.5 b/man/man5/zpool-features.5
index b9a739d5b..e7a61957f 100644
--- a/man/man5/zpool-features.5
+++ b/man/man5/zpool-features.5
@@ -39,7 +39,7 @@ this set may include unsupported features.
.sp
.LP
Every feature has a GUID of the form \fIcom.example:feature_name\fR. The
-reverse DNS name ensures that the feature's GUID is unique across all ZFS
+reversed DNS name ensures that the feature's GUID is unique across all ZFS
implementations. When unsupported features are encountered on a pool they will
be identified by their GUIDs. Refer to the documentation for the ZFS
implementation that created the pool for information about those features.
diff --git a/module/zcommon/zfeature_common.c b/module/zcommon/zfeature_common.c
index 15dcefd5b..cf3006721 100644
--- a/module/zcommon/zfeature_common.c
+++ b/module/zcommon/zfeature_common.c
@@ -259,6 +259,19 @@ zfeature_register(spa_feature_t fid, const char *guid, const char *name,
feature->fi_zfs_mod_supported = zfs_mod_supported_feature(guid);
}
+/*
+ * Every feature has a GUID of the form com.example:feature_name. The
+ * reversed DNS name ensures that the feature's GUID is unique across all ZFS
+ * implementations. This allows companies to independently develop and
+ * release features. Examples include org.delphix and org.datto. Previously,
+ * features developed on one implementation have used that implementation's
+ * domain name (e.g. org.illumos and org.zfsonlinux). Use of the org.openzfs
+ * domain name is recommended for new features which are developed by the
+ * OpenZFS community and its platforms. This domain may optionally be used by
+ * companies developing features for initial release through an OpenZFS
+ * implementation. Use of the org.openzfs domain requires reserving the
+ * feature name in advance with the OpenZFS project.
+ */
void
zpool_feature_init(void)
{
@@ -548,12 +561,10 @@ zpool_feature_init(void)
ZFEATURE_TYPE_BOOLEAN, project_quota_deps);
}
- {
zfeature_register(SPA_FEATURE_ALLOCATION_CLASSES,
"org.zfsonlinux:allocation_classes", "allocation_classes",
"Support for separate allocation classes.",
ZFEATURE_FLAG_READONLY_COMPAT, ZFEATURE_TYPE_BOOLEAN, NULL);
- }
zfeature_register(SPA_FEATURE_RESILVER_DEFER,
"com.datto:resilver_defer", "resilver_defer",
diff --git a/tests/zfs-tests/tests/functional/cli_root/zfs_send/zfs_send-b.ksh b/tests/zfs-tests/tests/functional/cli_root/zfs_send/zfs_send-b.ksh
index ab2a9508e..87997e76c 100755
--- a/tests/zfs-tests/tests/functional/cli_root/zfs_send/zfs_send-b.ksh
+++ b/tests/zfs-tests/tests/functional/cli_root/zfs_send/zfs_send-b.ksh
@@ -52,8 +52,8 @@ log_must zfs snapshot "$SENDFS@s1"
log_must zfs bookmark "$SENDFS@s1" "$SENDFS#bm"
log_must zfs snapshot "$SENDFS@s2"
log_must zfs set "compression=gzip" $SENDFS
-log_must zfs set "org.zfsonlinux:prop=val" $SENDFS
-log_must zfs set "org.zfsonlinux:snapprop=val" "$SENDFS@s1"
+log_must zfs set "org.openzfs:prop=val" $SENDFS
+log_must zfs set "org.openzfs:snapprop=val" "$SENDFS@s1"
# 2. Verify command line options interact with '-b' correctly
typeset opts=("" "p" "Rp" "cew" "nv" "D" "DLPRcenpvw")
@@ -78,21 +78,21 @@ for opt in ${opts[@]}; do
# NOTE: override "received" values and set some new properties as well
log_must zfs set "compression=lz4" $BACKUP
log_must zfs set "exec=off" $BACKUP
- log_must zfs set "org.zfsonlinux:prop=newval" $BACKUP
- log_must zfs set "org.zfsonlinux:newprop=newval" $BACKUP
- log_must zfs set "org.zfsonlinux:snapprop=newval" "$BACKUP@s1"
- log_must zfs set "org.zfsonlinux:newsnapprop=newval" "$BACKUP@s1"
+ log_must zfs set "org.openzfs:prop=newval" $BACKUP
+ log_must zfs set "org.openzfs:newprop=newval" $BACKUP
+ log_must zfs set "org.openzfs:snapprop=newval" "$BACKUP@s1"
+ log_must zfs set "org.openzfs:newsnapprop=newval" "$BACKUP@s1"
# 5. Restore the "backup" dataset to a new destination
log_must eval "zfs send -b$opt $BACKUP@s1 | zfs recv $RESTORE"
# 6. Verify only original (received) properties are sent from "backup"
log_must eval "check_prop_source $RESTORE compression gzip received"
- log_must eval "check_prop_source $RESTORE org.zfsonlinux:prop val received"
- log_must eval "check_prop_source $RESTORE@s1 org.zfsonlinux:snapprop val received"
+ log_must eval "check_prop_source $RESTORE org.openzfs:prop val received"
+ log_must eval "check_prop_source $RESTORE@s1 org.openzfs:snapprop val received"
log_must eval "check_prop_source $RESTORE exec on default"
- log_must eval "check_prop_missing $RESTORE org.zfsonlinux:newprop"
- log_must eval "check_prop_missing $RESTORE@s1 org.zfsonlinux:newsnapprop"
+ log_must eval "check_prop_missing $RESTORE org.openzfs:newprop"
+ log_must eval "check_prop_missing $RESTORE@s1 org.openzfs:newsnapprop"
# cleanup
log_must zfs destroy -r $BACKUP