Go to file
rmacklem 1412bdc6c2
zfs_vnops_os.c: Move a vput() to after zfs_setattr_dir()
Without this patch, the following crash can occur when
a file system is configured with "xattr=dir".

VNASSERT failed: locked not true at
 /posix-acl/freebsd-rdma/sys/kern/vfs_subr.c:5786 (assert_vop_locked)
    hold count flags ()
    flags ()
    lock type zfs: UNLOCKED
panic: zfs_dirent_lookup: vnode is not locked but should be
cpuid = 3
time = 1770520763
KDB: stack backtrace:
db_trace_self_wrapper() at db_trace_self_wrapper+0x2b
vpanic() at vpanic+0x136/frame 0xfffffe00914c8270
panic() at panic+0x43/frame 0xfffffe00914c82d0
assert_vop_locked() at assert_vop_locked+0x78
zfs_dirent_lookup() at zfs_dirent_lookup+0x41
zfs_setattr_dir() at zfs_setattr_dir+0x123
zfs_setattr() at zfs_setattr+0x1389
zfs_freebsd_setattr() at zfs_freebsd_setattr+0x56b
VOP_SETATTR_APV() at VOP_SETATTR_APV+0x5d
setfown() at setfown+0xb1
kern_fchownat() at kern_fchownat+0x192

This patch fixes the problem by moving the vput() call for
attrzp to after the zfs_setattr_dir() call that takes it as
an argument.

Reviewed-by: Alexander Motin <alexander.motin@TrueNAS.com>
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Rick Macklem <rmacklem@uoguelph.ca>
Closes: #18188
2026-02-10 09:29:37 -05:00
.github CI: Fix qemu-1-setup failure, remove debug stuff 2026-01-31 12:40:55 -08:00
cmd Include missing newline in 'man' error 2026-02-09 10:19:08 -08:00
config Fix build for Linux 6.18 with PowerPC/RISC-V kernels. (#18145) 2026-02-02 14:16:10 -08:00
contrib pyzfs: remove unimplemented libzfs_core functions from pyzfs 2026-02-05 15:34:55 -08:00
etc build: add SPDX license tags to build system files 2026-01-08 15:08:03 -08:00
include Allow rewrite skip cloned and snapshotted blocks 2026-02-09 10:17:56 -08:00
lib mmp: claim sequence id before final import 2026-02-09 09:36:01 -08:00
man Allow rewrite skip cloned and snapshotted blocks 2026-02-09 10:17:56 -08:00
module zfs_vnops_os.c: Move a vput() to after zfs_setattr_dir() 2026-02-10 09:29:37 -05:00
rpm build: add SPDX license tags to build system files 2026-01-08 15:08:03 -08:00
scripts Linux 6.19: handle --werror with CONFIG_OBJTOOL_WERROR=y 2026-02-02 10:19:18 -08:00
tests Allow rewrite skip cloned and snapshotted blocks 2026-02-09 10:17:56 -08:00
udev build: add SPDX license tags to build system files 2026-01-08 15:08:03 -08:00
.editorconfig Add an .editorconfig; document git whitespace settings 2020-01-27 13:32:52 -08:00
.gitignore Packaging: Auto-generate changelog during configure (#15528) 2023-11-16 08:58:47 -08:00
.gitmodules .gitmodules: link to openzfs github repository 2021-04-12 09:37:23 -07:00
.mailmap AUTHORS: add names of recent new contributors 2026-02-09 10:11:09 -08:00
AUTHORS AUTHORS: add names of recent new contributors 2026-02-09 10:11:09 -08:00
autogen.sh build: add SPDX license tags to build system files 2026-01-08 15:08:03 -08:00
CODE_OF_CONDUCT.md Documentation corrections 2022-12-22 11:34:28 -08:00
configure.ac Linux build: handle CONFIG_OBJTOOL_WERROR=y 2025-06-16 08:12:09 -07:00
copy-builtin copy-builtin: add hooks with sed/>> 2022-05-10 10:17:43 -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 Zstd: Integrate v1.5.7 into the ZFS build system 2026-01-20 13:41:06 -08:00
META Linux 6.18 compat: META (#18039) 2025-12-10 09:04:24 -08: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 Fix capitalization typo in README.md 2025-11-03 16:37:58 -08:00
RELEASES.md Update RELEASES.md LTS release to 2.2 2025-01-17 11:04:36 -05: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 13.0-RELEASE.