OpenZFS on Linux and FreeBSD
Go to file
Tom Caputi 32dce2da0c 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 <behlendorf1@llnl.gov>
Reviewed-by: Weigang Li <weigang.li@intel.com>
Signed-off-by: Tom Caputi <tcaputi@datto.com>
Closes #7338
2018-03-29 17:40:34 -07:00
.github Reduce codecov PR comments 2018-01-09 11:15:55 -08:00
cmd Add JSON output support to channel programs 2018-03-19 12:40:58 -07:00
config Fix mmap / libaio deadlock 2018-03-28 10:19:22 -07:00
contrib modprobe zfs during dracut mount 2018-03-22 10:14:29 -07:00
etc chmod -x on etc/init.d/zfs-*.in automake files 2018-03-28 12:08:21 -07:00
include enable zfs_dbgmsg() by default, without dprintf() 2018-03-21 15:37:32 -07:00
lib OpenZFS 9193 - bootcfg -C doesn't work 2018-03-22 16:16:55 -07:00
man Clarify zpool actions for an intent log device 2018-03-22 15:12:08 -07:00
module Resolve QAT issues with incompressible data 2018-03-29 17:40:34 -07:00
rpm Fix mmap / libaio deadlock 2018-03-28 10:19:22 -07:00
scripts Fix free memory calculation on v3.14+ 2018-02-23 08:50:06 -08:00
tests Fix mmap / libaio deadlock 2018-03-28 10:19:22 -07:00
udev Add kernel module auto-loading 2018-03-13 10:45:55 -07:00
.gitignore Add configure option to enable gcov analysis 2017-09-15 10:24:13 -07:00
.gitmodules Add zimport.sh compatibility test script 2014-02-21 12:10:31 -08:00
.travis.yml Add .travis.yml 2017-11-13 09:18:18 -08:00
AUTHORS Add a missing > to AUTHORS 2014-09-02 14:18:53 -07:00
COPYRIGHT Encryption patch follow-up 2017-10-11 16:54:48 -04:00
DISCLAIMER Fix minor typos and update marketing copy. 2013-03-21 12:51:06 -07:00
META Tag zfs-0.7.0 2017-07-26 10:13:25 -07:00
Makefile.am Allow make checkstyle and paxscript in build dir 2018-02-21 12:35:59 -08:00
OPENSOLARIS.LICENSE Add CDDL license file 2008-12-01 14:49:34 -08:00
README.markdown Add scan.coverity.com badge to README 2017-10-30 16:21:24 -07:00
TEST Refresh TEST file to include new variables 2017-11-08 11:09:30 -08:00
autogen.sh build: do not call boilerplate ourself 2013-04-02 10:55:20 -07:00
configure.ac Fix mmap / libaio deadlock 2018-03-28 10:19:22 -07:00
copy-builtin Fix copy-builtin to work with ASAN patch 2018-01-12 09:39:36 -08:00
zfs.release.in Move zfs.release generation to configure step 2012-07-12 12:22:51 -07:00

README.markdown

img

ZFS on Linux is an advanced file system and volume manager which was originally developed for Solaris and is now maintained by the OpenZFS community.

codecov coverity

Official Resources

Installation

Full documentation for installing ZoL on your favorite Linux distribution can be found at our site.

Contribute & Develop

We have a separate document with contribution guidelines.