Go to file
Ryan Moeller 73d7820bba Use signed types to prevent subtraction overflow
The difference between the sizes could be positive or negative. Leaving
the types as unsigned means the result overflows when the difference is
negative and removing the labs() means we'll have introduced a bug. The
subtraction results in the correct value when the unsigned integer is
interpreted as a signed integer by labs().

Clang doesn't see that we're doing a subtraction and abusing the types.
It sees the result of the subtraction, an unsigned value, being passed
to an absolute value function and emits a warning which we treat as an
error.

Reviewed by: Youzhong Yang <youzhong@gmail.com>
Reviewed-by: Igor Kozhukhov <igor@dilos.org>
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Ryan Moeller <ryan@ixsystems.com>
Closes #9355
2019-09-22 15:27:53 -07:00
.github Fix typos 2019-09-02 18:17:39 -07:00
cmd Use signed types to prevent subtraction overflow 2019-09-22 15:27:53 -07:00
config OpenZFS restructuring - move platform specific headers 2019-09-05 09:34:54 -07:00
contrib Fix typos in contrib/ 2019-08-30 09:44:43 -07:00
etc Fix typos in etc/ 2019-08-30 09:46:52 -07:00
include Add subcommand to wait for background zfs activity to complete 2019-09-13 18:09:06 -07:00
lib Refactor libzfs_error_init newlines 2019-09-18 09:05:57 -07:00
man Add subcommand to wait for background zfs activity to complete 2019-09-13 18:09:06 -07:00
module Disabled resilver_defer feature leads to looping resilvers 2019-09-22 15:25:39 -07:00
rpm Canonicalize Python shebangs 2019-09-12 13:32:32 -07:00
scripts kmodtool: depmod path 2019-09-11 11:14:50 -07:00
tests Device removal of indirect vdev panics the kernel 2019-09-16 10:46:59 -07:00
udev Restore :: in Makefile.am 2019-08-26 11:48:31 -07:00
.gitignore Linux 5.3 compat: Makefile subdir-m no longer supported 2019-08-19 15:22:52 -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 Update build system and packaging 2018-05-29 16:00:33 -07:00
autogen.sh Cause autogen.sh to fail if autoreconf fails 2018-07-06 09:27:37 -07:00
CODE_OF_CONDUCT.md Add CODE_OF_CONDUCT.md 2019-04-30 10:58:45 -07:00
configure.ac Add subcommand to wait for background zfs activity to complete 2019-09-13 18:09:06 -07:00
copy-builtin copy-builtin: SPL must be in Kbuild first (again) 2019-09-11 11:09:50 -07:00
COPYRIGHT OpenZFS restructuring - move platform specific sources 2019-09-06 11:26:26 -07:00
LICENSE Update build system and packaging 2018-05-29 16:00:33 -07:00
Makefile.am OpenZFS restructuring - move platform specific sources 2019-09-06 11:26:26 -07:00
META Tag 0.8.0 2019-05-21 11:11:41 -07:00
NEWS Add NEWS file 2018-09-18 12:03:47 -07:00
NOTICE Update build system and packaging 2018-05-29 16:00:33 -07:00
README.md Explicitly state supported Linux versions 2018-05-30 20:11:19 -07:00
TEST Update build system and packaging 2018-05-29 16:00:33 -07:00
zfs.release.in Move zfs.release generation to configure step 2012-07-12 12:22:51 -07:00

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.

Release

ZFS on Linux is released under a CDDL license.
For more details see the NOTICE, LICENSE and COPYRIGHT files; UCRL-CODE-235197

Supported Kernels

  • The META file contains the officially recognized supported kernel versions.