OpenZFS on Linux and FreeBSD
Go to file
Colm db9048741b A couple of small style cleanups
In `zpool_load_compat()`:

  * initialize `l_features[]` with a loop rather than a static
    initializer.

  * don't redefine system constants; use private names instead

Rationale here:

When an array is initialized using a static {foo}, only the specified
members are initialized to the provided values, the rest are
initialized to zero. While B_FALSE is of course zero, it feels
unsafe to rely on this being true forever, so I'm inclined to sacrifice
a few microseconds of runtime here and initialize using a loop.

When looking for the correct combination of system constants to use
(in open() and mmap()), I prefer to use private constants rather than
redefining system ones; due to the small chance that the system
ones might be referenced later in the file. So rather than defining
O_PATH and MAP_POPULATE, I use distinct constant names.

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Reviewed-by: John Kennedy <john.kennedy@delphix.com>
Signed-off-by: Colm Buckley <colm@tuatha.org>
Closes #12156
2021-06-09 13:05:34 -07:00
.github Don't direct to freenode in issue template 2021-06-09 13:05:34 -07:00
cmd Added another missed case to arc_summary3 2021-06-09 13:05:34 -07:00
config Turn checkbashisms into a make target 2021-06-09 13:05:34 -07:00
contrib Turn checkbashisms into a make target 2021-06-09 13:05:34 -07:00
etc Turn shellcheck into a normal make target. Fix new files it caught 2021-06-09 13:05:34 -07:00
include Introduce write-mostly sums 2021-06-09 13:05:34 -07:00
lib A couple of small style cleanups 2021-06-09 13:05:34 -07:00
man zfs-module-parameters.5: remove nonexistent parameters 2021-06-09 13:05:34 -07:00
module spl-module-parameters.5: remove spl_kmem_cache_{expire,obj_per_slab_min} 2021-06-09 13:05:34 -07:00
rpm RPM: Explicitly set the required min/max kernel version for the DKMS package 2021-05-28 09:01:31 -07:00
scripts Turn checkbashisms into a make target 2021-06-09 13:05:34 -07:00
tests Quick fixes for two ZTS failures 2021-06-09 13:05:34 -07:00
udev udev/rules.d: .gitignore: glob all rules 2021-06-09 13:05:34 -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-14 13:23:08 -07:00
AUTHORS Add zstd support to zfs 2020-08-20 10:30:06 -07:00
CODE_OF_CONDUCT.md Replace ZFS on Linux references with OpenZFS 2020-10-08 20:10:13 -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
META Tag 2.1.0-rc6 2021-05-28 09:01:47 -07:00
Makefile.am Turn checkbashisms into a make target 2021-06-09 13:05:34 -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-07 13:26:58 -07:00
TEST Remove CI builder customization from TEST 2020-03-16 10:46:03 -07:00
autogen.sh Cause autogen.sh to fail if autoreconf fails 2018-07-06 09:27:37 -07:00
configure.ac zstreamdump: replace with link to zstream 2021-06-08 14:48:58 -07:00
copy-builtin copy-builtin: posix conformance 2021-05-10 12:18:54 -07:00
zfs.release.in Move zfs.release generation to configure step 2012-07-12 12:22:51 -07:00

README.md

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.