Go to file
Alexander 6a19dea7f6
module/zfs: simplify ddt_stat_add() loop
LLVM's Polly (ISL to be precise) is unhappy with the loop from
ddt_stat_add():

  CC [M]  fs/zfs/zfs/ddt.o
../lib/External/isl/isl_schedule_node.c:2470: cannot insert node
between set or sequence node and its filter children

(building with the custom patch which adds Polly support to Kbuild)

The mentioned loop is rather suboptimal. All that we need is to just
treat ddt_stat_t as an array of u64 and perform 1:1 addition or
substraction. This can be done in simpler for-loop with the
determined index and bounds. Compiler will expand d_end - d into
a number of ddt_stat_t fields at compile time.
This prevents Polly from failing on this file.

Reviewed-by: Matthew Ahrens <mahrens@delphix.com>
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Alexander Lobakin <alobakin@pm.me>
Closes #12253
2021-06-29 08:26:11 -06:00
.github Update libera webchat client URL 2021-06-23 17:14:58 -07:00
cmd Annotated dprintf as printf-like 2021-06-22 21:53:45 -07:00
config Forbid basename(3) and dirname(3) 2021-06-11 09:10:21 -07:00
contrib Fix plymouth passphrase prompt with dracut 2021-06-25 22:43:25 -07:00
etc systemd: import: expand $ZPOOL_IMPORT_OPTS correctly 2021-06-14 09:48:53 -06:00
include FreeBSD: fix compilation of FreeBSD world after 29274c9f6 2021-06-25 10:28:51 -07:00
lib Fix flag copying in resume case 2021-06-24 13:42:01 -06:00
man zgenhostid.8: revisit 2021-06-09 14:36:03 -07:00
module module/zfs: simplify ddt_stat_add() loop 2021-06-29 08:26:11 -06:00
rpm Added uncompress requirement 2021-06-11 09:38:23 -06:00
scripts scripts/commitcheck.sh: fix false positive for signed commits 2021-06-11 09:10:25 -07:00
tests Update cache file when setting compatibility property 2021-06-24 14:30:02 -07:00
udev udev/rules.d: .gitignore: glob all rules 2021-06-01 11:38:45 -07:00
.editorconfig Add an .editorconfig; document git whitespace settings 2020-01-27 13:32:52 -08:00
.gitignore Add FreeBSD support to OpenZFS 2020-04-14 11:36:28 -07:00
.gitmodules .gitmodules: link to openzfs github repository 2021-04-12 09:37:23 -07:00
AUTHORS Add zstd support to zfs 2020-08-20 10:30:06 -07:00
autogen.sh Cause autogen.sh to fail if autoreconf fails 2018-07-06 09:27:37 -07:00
CODE_OF_CONDUCT.md Replace ZFS on Linux references with OpenZFS 2020-10-08 20:10:13 -07:00
configure.ac man: use one Makefile, use OpenZFS for .Os 2021-06-09 14:34:47 -07:00
copy-builtin copy-builtin: posix conformance 2021-05-08 08:58:26 -07:00
COPYRIGHT Fix typos 2020-06-09 21:24:09 -07:00
LICENSE Update build system and packaging 2018-05-29 16:00:33 -07:00
Makefile.am mancheck: accept lints, accept lint overrides 2021-06-04 12:48:26 -07:00
META Linux 5.12 compat: META 2021-06-21 08:22:40 -07:00
NEWS Fix NEWS file 2020-08-26 21:44:41 -07:00
NOTICE Update build system and packaging 2018-05-29 16:00:33 -07:00
README.md Update FreeBSD versions 2021-03-16 15:03:28 -07:00
RELEASES.md Add RELEASES.md file 2021-04-02 16:33:40 -07:00
TEST Remove CI builder customization from TEST 2020-03-16 10:46:03 -07:00
zfs.release.in Move zfs.release generation to configure step 2012-07-12 12:22:51 -07:00

img

OpenZFS is an advanced file system and volume manager which was originally developed for Solaris and is now maintained by the OpenZFS community. This repository contains the code for running OpenZFS on Linux and FreeBSD.

codecov coverity

Official Resources

Installation

Full documentation for installing OpenZFS on your favorite operating system can be found at the Getting Started Page.

Contribute & Develop

We have a separate document with contribution guidelines.

We have a Code of Conduct.

Release

OpenZFS 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 Linux kernel versions.
  • Supported FreeBSD versions are any supported branches and releases starting from 12.2-RELEASE.