aboutsummaryrefslogtreecommitdiffstats
path: root/module/zfs/zfs_debug.c
diff options
context:
space:
mode:
authorTom Caputi <[email protected]>2018-03-29 20:40:34 -0400
committerBrian Behlendorf <[email protected]>2018-03-29 17:40:34 -0700
commit32dce2da0c0d30321ccbddcfcb3f3238cd96f744 (patch)
treeb79aa74ec214fea9fa0fb0d66e89a3b8584db6b5 /module/zfs/zfs_debug.c
parent13a2ff2727dd5fb46b08570279689373a7d5b26a (diff)
Resolve QAT issues with incompressible data
Currently, when ZFS wants to accelerate compression with QAT, it passes a destination buffer of the same size as the source buffer. Unfortunately, if the data is incompressible, QAT can actually "compress" the data to be larger than the source buffer. When this happens, the QAT driver will return a FAILED error code and print warnings to dmesg. This patch fixes these issues by providing the QAT driver with an additional buffer to work with so that even completely incompressible source data will not cause an overflow. This patch also resolves an error handling issue where incompressible data attempts compression twice: once by QAT and once in software. To fix this issue, a new (and fake) error code CPA_STATUS_INOMPRESSIBLE has been added so that the calling code can correctly account for the difference between a hardware failure and data that simply cannot be compressed. Reviewed-by: Brian Behlendorf <[email protected]> Reviewed-by: Weigang Li <[email protected]> Signed-off-by: Tom Caputi <[email protected]> Closes #7338
Diffstat (limited to 'module/zfs/zfs_debug.c')
0 files changed, 0 insertions, 0 deletions