mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2026-05-22 02:27:36 +03:00
Revert "Fix raw sends on encrypted datasets when copying back snapshots"
Commitd1d4769takes into account the encryption key version to decide if the local_mac could be zeroed out. However, this could lead to failure mounting encrypted datasets created with intermediate versions of ZFS encryption available in master between major releases. In order to prevent this situation revertd1d4769pending a more comprehensive fix which addresses the mount failure case. Reviewed-by: George Amanakis <gamanakis@gmail.com> Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov> Issue #11294 Issue #12025 Issue #12300 Closes #12033
This commit is contained in:
@@ -1197,16 +1197,6 @@ zio_crypt_do_objset_hmacs(zio_crypt_key_t *key, void *data, uint_t datalen,
|
||||
|
||||
bcopy(raw_portable_mac, portable_mac, ZIO_OBJSET_MAC_LEN);
|
||||
|
||||
/*
|
||||
* This is necessary here as we check next whether
|
||||
* OBJSET_FLAG_USERACCOUNTING_COMPLETE or
|
||||
* OBJSET_FLAG_USEROBJACCOUNTING are set in order to
|
||||
* decide if the local_mac should be zeroed out.
|
||||
*/
|
||||
intval = osp->os_flags;
|
||||
if (should_bswap)
|
||||
intval = BSWAP_64(intval);
|
||||
|
||||
/*
|
||||
* The local MAC protects the user, group and project accounting.
|
||||
* If these objects are not present, the local MAC is zeroed out.
|
||||
@@ -1218,10 +1208,7 @@ zio_crypt_do_objset_hmacs(zio_crypt_key_t *key, void *data, uint_t datalen,
|
||||
(datalen >= OBJSET_PHYS_SIZE_V2 &&
|
||||
osp->os_userused_dnode.dn_type == DMU_OT_NONE &&
|
||||
osp->os_groupused_dnode.dn_type == DMU_OT_NONE) ||
|
||||
(datalen <= OBJSET_PHYS_SIZE_V1) ||
|
||||
(((intval & OBJSET_FLAG_USERACCOUNTING_COMPLETE) == 0 ||
|
||||
(intval & OBJSET_FLAG_USEROBJACCOUNTING_COMPLETE) == 0) &&
|
||||
key->zk_version > 0)) {
|
||||
(datalen <= OBJSET_PHYS_SIZE_V1)) {
|
||||
bzero(local_mac, ZIO_OBJSET_MAC_LEN);
|
||||
return (0);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user