OpenZFS on Linux and FreeBSD
Go to file
Coleman Kane 73ab3bd088 Linux 6.6 compat: use inode_get/set_ctime*(...)
In Linux commit 13bc24457850583a2e7203ded05b7209ab4bc5ef, direct access
to the i_ctime member of struct inode was removed. The new approach is
to use accessor methods that exclusively handle passing the timestamp
around by value. This change adds new tests for each of these functions
and introduces zpl_* equivalents in include/os/linux/zfs/sys/zpl.h. In
where the inode_get/set_ctime*() functions exist, these zpl_* calls will
be mapped to the new functions. On older kernels, these macros just wrap
direct-access calls. The code that operated on an address of ip->i_ctime
to call ZFS_TIME_DECODE() now will take a local copy using
zpl_inode_get_ctime(), and then pass the address of the local copy when
performing the ZFS_TIME_DECODE() call, in all cases, rather than
directly accessing the member.

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Coleman Kane <ckane@colemankane.org>
Closes #15263
Closes #15257
(cherry picked from commit fe9d409e90)
2024-02-08 13:29:28 -08:00
.github Update workflows 2023-03-09 18:46:36 -08:00
cmd Report ashift of L2ARC devices in zdb 2023-12-21 11:16:30 -08:00
config Linux 6.6 compat: use inode_get/set_ctime*(...) 2024-02-08 13:29:28 -08:00
contrib contrib/bash_completion.d: fix error spew from __zfs_match_snapshot() 2023-06-17 19:52:46 -07:00
etc systemd: set restart=always for zfs-zed.service 2023-01-19 12:50:42 -08:00
include Linux 6.6 compat: use inode_get/set_ctime*(...) 2024-02-08 13:29:28 -08:00
lib libshare: nfs: pass through ipv6 addresses in bracket notation 2023-12-22 13:20:31 -08:00
man spa: make read/write queues configurable 2023-12-22 13:24:58 -08:00
module Linux 6.6 compat: use inode_get/set_ctime*(...) 2024-02-08 13:29:28 -08:00
rpm zfs-dkms: fix shell-init error message 2023-12-05 11:04:54 -08:00
scripts ZTS: Log test name to /dev/kmsg on Linux 2023-04-03 13:50:02 -07:00
tests libshare: nfs: pass through ipv6 addresses in bracket notation 2023-12-22 13:20:31 -08:00
udev Udev rules: use match (==) rather than assign (=) for PROGRAM 2021-09-14 12:23:10 -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 Documentation corrections 2023-01-19 12:50:42 -08: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 zfs-2.1.14 2023-11-30 11:09:15 -08:00
Makefile.am config: check for parallel(1), use it for cstyle 2022-09-14 11:23:25 -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 README: Update OpenZFS website url 2022-02-16 17:58:55 -08: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 Speed up WB_SYNC_NONE when a WB_SYNC_ALL occurs simultaneously 2023-06-05 10:59:02 -07:00
copy-builtin copy-builtin: add hooks with sed/>> 2023-11-30 11:09:15 -08: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.