aboutsummaryrefslogtreecommitdiffstats
path: root/module/zfs/ddt_zap.c
diff options
context:
space:
mode:
Diffstat (limited to 'module/zfs/ddt_zap.c')
-rw-r--r--module/zfs/ddt_zap.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/module/zfs/ddt_zap.c b/module/zfs/ddt_zap.c
index 8e78ec327..e96984b86 100644
--- a/module/zfs/ddt_zap.c
+++ b/module/zfs/ddt_zap.c
@@ -53,8 +53,12 @@ ddt_zap_compress(const void *src, uchar_t *dst, size_t s_len, size_t d_len)
ASSERT3U(d_len, >=, s_len + 1); /* no compression plus version byte */
/* Call compress function directly to avoid hole detection. */
- c_len = ci->ci_compress((void *)src, dst, s_len, d_len - 1,
- ci->ci_level);
+ abd_t sabd, dabd;
+ abd_get_from_buf_struct(&sabd, (void *)src, s_len);
+ abd_get_from_buf_struct(&dabd, dst, d_len);
+ c_len = ci->ci_compress(&sabd, &dabd, s_len, d_len - 1, ci->ci_level);
+ abd_free(&dabd);
+ abd_free(&sabd);
if (c_len == s_len) {
cpfunc = ZIO_COMPRESS_OFF;