slack: fix decompression
Turns out decompression never worked at all; likely an oversight converting the original "transparent" versions to a true compression option. This makes it work. Signed-off-by: Rob Norris <rob.norris@klarasystems.com>
This commit is contained in:
parent
4e9cbd04a4
commit
014ff864d8
|
@ -182,6 +182,8 @@ extern int lz4_decompress_zfs(void *src, void *dst, size_t s_len, size_t d_len,
|
||||||
int level);
|
int level);
|
||||||
extern size_t slack_compress(void *src, void *dst, size_t s_len, size_t d_len,
|
extern size_t slack_compress(void *src, void *dst, size_t s_len, size_t d_len,
|
||||||
int level);
|
int level);
|
||||||
|
extern int slack_decompress(void *src, void *dst, size_t s_len, size_t d_len,
|
||||||
|
int level);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Compress and decompress data if necessary.
|
* Compress and decompress data if necessary.
|
||||||
|
|
|
@ -54,3 +54,11 @@ slack_compress(void *src, void *dst, size_t s_len, size_t d_len, int level)
|
||||||
memcpy(dst, src, c_len);
|
memcpy(dst, src, c_len);
|
||||||
return (c_len);
|
return (c_len);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int
|
||||||
|
slack_decompress(void *src, void *dst, size_t s_len, size_t d_len, int level)
|
||||||
|
{
|
||||||
|
ASSERT3U(d_len, >=, s_len);
|
||||||
|
memcpy(dst, src, s_len);
|
||||||
|
return (0);
|
||||||
|
}
|
||||||
|
|
|
@ -68,7 +68,7 @@ zio_compress_info_t zio_compress_table[ZIO_COMPRESS_FUNCTIONS] = {
|
||||||
{"lz4", 0, lz4_compress_zfs, lz4_decompress_zfs, NULL},
|
{"lz4", 0, lz4_compress_zfs, lz4_decompress_zfs, NULL},
|
||||||
{"zstd", ZIO_ZSTD_LEVEL_DEFAULT, zfs_zstd_compress,
|
{"zstd", ZIO_ZSTD_LEVEL_DEFAULT, zfs_zstd_compress,
|
||||||
zfs_zstd_decompress, zfs_zstd_decompress_level},
|
zfs_zstd_decompress, zfs_zstd_decompress_level},
|
||||||
{"slack", 0, slack_compress, NULL, NULL },
|
{"slack", 0, slack_compress, slack_decompress, NULL },
|
||||||
};
|
};
|
||||||
|
|
||||||
uint8_t
|
uint8_t
|
||||||
|
|
Loading…
Reference in New Issue