diff options
author | Tom Caputi <[email protected]> | 2018-02-21 15:28:52 -0500 |
---|---|---|
committer | Brian Behlendorf <[email protected]> | 2018-02-21 12:28:52 -0800 |
commit | b1d217338a51b025b802ebf6a759f45dcd8e3b4c (patch) | |
tree | d9b8be3fa8ee4123d343a97286834fcb15433d4f /include/sys | |
parent | 5121c4fb0c25a369d2e6f61e5b0a79969f0b75b5 (diff) |
Raw receives must compress metadnode blocks
Currently, the DMU relies on ZIO layer compression to free LO
dnode blocks that no longer have objects in them. However,
raw receives disable all compression, meaning that these blocks
can never be freed. In addition to the obvious space concerns,
this could also cause incremental raw receives to fail to mount
since the MAC of a hole is different from that of a completely
zeroed block.
This patch corrects this issue by adding a special case in
zio_write_compress() which will attempt to compress these blocks
to a hole even if ZIO_FLAG_RAW_ENCRYPT is set. This patch also
removes the zfs_mdcomp_disable tunable, since tuning it could
cause these same issues.
Reviewed-by: Brian Behlendorf <[email protected]>
Signed-off-by: Tom Caputi <[email protected]>
Closes #7198
Diffstat (limited to 'include/sys')
-rw-r--r-- | include/sys/dmu.h | 2 |
1 files changed, 0 insertions, 2 deletions
diff --git a/include/sys/dmu.h b/include/sys/dmu.h index cf9cbaa64..472a4f2b6 100644 --- a/include/sys/dmu.h +++ b/include/sys/dmu.h @@ -1033,8 +1033,6 @@ int dmu_diff(const char *tosnap_name, const char *fromsnap_name, #define ZFS_CRC64_POLY 0xC96C5795D7870F42ULL /* ECMA-182, reflected form */ extern uint64_t zfs_crc64_table[256]; -extern int zfs_mdcomp_disable; - #ifdef __cplusplus } #endif |