]> granicus.if.org Git - zfs/commitdiff
Fix large dnode send stream flag conflict
authorBrian Behlendorf <behlendorf1@llnl.gov>
Thu, 18 May 2017 17:02:16 +0000 (10:02 -0700)
committerGitHub <noreply@github.com>
Thu, 18 May 2017 17:02:16 +0000 (10:02 -0700)
Bit 21 of the send stream flags was inadvertently used for two
different features under concurrent development.  To avoid any
future compatibility problems the large dnode flag is being
switched to bit 23 which is unused.

The large dnode feature has only been present in pre-releases of
ZoL and dnodesize defaults to legacy which is compatible with
existing OpenZFS implementations.  Users with dnodesize=auto
needing to use zfs send/recv must update ZoL on both the
source and destination systems.

Reviewed by: Matthew Ahrens <mahrens@delphix.com>
Reviewed-by: Ned Bass <bass6@llnl.gov>
Reviewed-by: George Melikov <mail@gmelikov.ru>
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes #6139

include/sys/zfs_ioctl.h

index 3ec812ac0f514fb9b0218cb7ea26285465601f81..495cdea3a832b53105bd46ec32b1b88fac49d0ca 100644 (file)
@@ -100,8 +100,9 @@ typedef enum drr_headertype {
 /* flag #18 is reserved for a Delphix feature */
 #define        DMU_BACKUP_FEATURE_LARGE_BLOCKS         (1 << 19)
 #define        DMU_BACKUP_FEATURE_RESUMING             (1 << 20)
-#define        DMU_BACKUP_FEATURE_LARGE_DNODE          (1 << 21)
+/* flag #21 is reserved for a Delphix feature */
 #define        DMU_BACKUP_FEATURE_COMPRESSED           (1 << 22)
+#define        DMU_BACKUP_FEATURE_LARGE_DNODE          (1 << 23)
 
 /*
  * Mask of all supported backup features