OpenZFS on Linux and FreeBSD
Go to file
Andrew 6bf8daf376 Add ability for xattr handler to "strip" NFSv4 ACL (#54)
On Linux POSIX ACLs can be removed via rmxattr() for the
relevant system xattrs. On FreeBSD a non-trivial ACL
can be converted to one that is described by the mode with
no loss of info via combination of acl_get_file(), acl_strip_np(),
and acl_set_file(). Since there's no libc equivalent of these
ops in Linux for NFSv4 ACLs, this commit makes this less error
prone by handling entirely in ZFS. When user performs
rmxattr() vfs_setxattr() is called with value of NULL and length
of 0. Add special handling for this situation in the xattr
handler for the NFSv4 ACL so that we generate a new ACL and
zfs_acl_chmod() with the existing mode of file, then set the ACL.

Signed-off-by: Andrew Walker <awalker@ixsystems.com>
2023-06-21 21:29:23 +05:00
.github Add action to build and push docker image on master update 2023-06-21 00:33:20 +05:00
cmd Adjust zfsd Makefiles for openzfs compatibility 2023-06-21 02:51:15 +05:00
config Add zfsd for FreeBSD 2023-06-21 00:33:40 +05:00
contrib Switch to production builds for SCALE 2023-06-21 02:51:24 +05:00
etc Adjust zfsd Makefiles for openzfs compatibility 2023-06-21 02:51:15 +05:00
include Add ability for xattr handler to "strip" NFSv4 ACL (#54) 2023-06-21 21:29:23 +05:00
lib Finally drop long disabled vdev cache. 2023-06-09 12:40:55 -07:00
man Make acltype=nfsv4 the default on Linux, too 2023-06-21 02:51:24 +05:00
module Add ability for xattr handler to "strip" NFSv4 ACL (#54) 2023-06-21 21:29:23 +05:00
rpm rpm: Use libtirpc-devel and /usr/lib on SUSE 2023-02-09 11:57:50 -08:00
scripts Fix kmodtool for packaging mainline Linux 2023-03-22 09:22:52 -07:00
tests Make acltype=nfsv4 the default on Linux, too 2023-06-21 02:51:24 +05:00
udev Replace dead opensolaris.org license link 2022-07-11 14:16:13 -07:00
.editorconfig Add an .editorconfig; document git whitespace settings 2020-01-27 13:32:52 -08:00
.gitignore Implement NFSv41 ACLs through xattr 2023-06-21 00:33:32 +05:00
.gitmodules .gitmodules: link to openzfs github repository 2021-04-12 09:37:23 -07:00
AUTHORS zfs_rename: support RENAME_* flags 2022-10-28 09:49:20 -07:00
CODE_OF_CONDUCT.md Documentation corrections 2022-12-22 11:34:28 -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 Linux 6.3 compat: META (#14930) 2023-06-05 11:08:24 -07:00
Makefile.am Adjust zfsd Makefiles for openzfs compatibility 2023-06-21 02:51:15 +05: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-01-06 16:25:01 -08: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
autogen.sh Ubuntu 22.04 integration: ShellCheck 2022-11-18 11:24:48 -08:00
configure.ac Add zfsd for FreeBSD 2023-06-21 00:33:40 +05:00
copy-builtin copy-builtin: add hooks with sed/>> 2022-05-10 10:17:43 -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.