mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2026-05-23 10:54:35 +03:00
Fixes for SNPRINTF_BLKPTR with encrypted BP's
mdb doesn't have dmu_ot[], so we need a different mechanism for its SNPRINTF_BLKPTR() to determine if the BP is encrypted vs authenticated. Additionally, since it already relies on BP_IS_ENCRYPTED (etc), SNPRINTF_BLKPTR might as well figure out the "crypt_type" on its own, rather than making the caller do so. Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Reviewed-by: Tom Caputi <tcaputi@datto.com> Signed-off-by: Matthew Ahrens <mahrens@delphix.com> Closes #7390
This commit is contained in:
committed by
Brian Behlendorf
parent
0ba106e75c
commit
5c27ec1088
+12
-3
@@ -119,13 +119,22 @@ typedef enum dmu_object_byteswap {
|
||||
((ot) & DMU_OT_BYTESWAP_MASK) < DMU_BSWAP_NUMFUNCS : \
|
||||
(ot) < DMU_OT_NUMTYPES)
|
||||
|
||||
/*
|
||||
* MDB doesn't have dmu_ot; it defines these macros itself.
|
||||
*/
|
||||
#ifndef ZFS_MDB
|
||||
#define DMU_OT_IS_METADATA_IMPL(ot) (dmu_ot[ot].ot_metadata)
|
||||
#define DMU_OT_IS_ENCRYPTED_IMPL(ot) (dmu_ot[ot].ot_encrypt)
|
||||
#define DMU_OT_BYTESWAP_IMPL(ot) (dmu_ot[ot].ot_byteswap)
|
||||
#endif
|
||||
|
||||
#define DMU_OT_IS_METADATA(ot) (((ot) & DMU_OT_NEWTYPE) ? \
|
||||
((ot) & DMU_OT_METADATA) : \
|
||||
dmu_ot[(int)(ot)].ot_metadata)
|
||||
DMU_OT_IS_METADATA_IMPL(ot))
|
||||
|
||||
#define DMU_OT_IS_ENCRYPTED(ot) (((ot) & DMU_OT_NEWTYPE) ? \
|
||||
((ot) & DMU_OT_ENCRYPTED) : \
|
||||
dmu_ot[(int)(ot)].ot_encrypt)
|
||||
DMU_OT_IS_ENCRYPTED_IMPL(ot))
|
||||
|
||||
/*
|
||||
* These object types use bp_fill != 1 for their L0 bp's. Therefore they can't
|
||||
@@ -137,7 +146,7 @@ typedef enum dmu_object_byteswap {
|
||||
|
||||
#define DMU_OT_BYTESWAP(ot) (((ot) & DMU_OT_NEWTYPE) ? \
|
||||
((ot) & DMU_OT_BYTESWAP_MASK) : \
|
||||
dmu_ot[(int)(ot)].ot_byteswap)
|
||||
DMU_OT_BYTESWAP_IMPL(ot))
|
||||
|
||||
typedef enum dmu_object_type {
|
||||
DMU_OT_NONE,
|
||||
|
||||
Reference in New Issue
Block a user