1
0
mirror of https://git.FreeBSD.org/src.git synced 2024-11-24 07:40:52 +00:00
Mirror of the FreeBSD src repository https://git.FreeBSD.org/src.git .
Go to file
Brian Atkinson c8184d714b
Block cloning conditionally destroy ARC buffer
dmu_buf_will_clone() calls arc_buf_destroy() if there is an associated
ARC buffer with the dbuf. However, this can only be done conditionally.
If the previous dirty record's dr_data is pointed at db_dbf then
destroying it can lead to NULL pointer deference when syncing out the
previous dirty record.

This updates dmu_buf_fill_clone() to only call arc_buf_destroy() if the
previous dirty records dr_data is not pointing to db_buf. The block
clone wil still set the dbuf's db_buf and db_data to NULL, but this will
not cause any issues as any previous dirty record dr_data will still be
pointing at the ARC buffer.

Reviewed-by: Allan Jude <allan@klarasystems.com>
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Reviewed-by: Alexander Motin <mav@FreeBSD.org>
Signed-off-by: Brian Atkinson <batkinson@lanl.gov>
Closes #16337
2024-08-01 18:22:43 -07:00
.github
cmd Fix zdb_dump_block for little endian (#16310) 2024-07-31 18:33:39 -07:00
config Use kmap_local_page instead of kmap_atomic (#16329) 2024-07-16 17:27:29 -07:00
contrib ddt: add support for prefetching tables into the ARC 2024-07-26 09:16:18 -07:00
etc
include Fix sa_add_projid to lookup and update SA_ZPL_DXATTR (avoid DXATTR loss) (#16288) 2024-07-31 18:41:49 -07:00
lib ddt: add support for prefetching tables into the ARC 2024-07-26 09:16:18 -07:00
man ddt: add support for prefetching tables into the ARC 2024-07-26 09:16:18 -07:00
module Block cloning conditionally destroy ARC buffer 2024-08-01 18:22:43 -07:00
rpm
scripts disable automatic dependency tracking for dkms builds 2024-06-13 18:08:49 -07:00
tests Fix sa_add_projid to lookup and update SA_ZPL_DXATTR (avoid DXATTR loss) (#16288) 2024-07-31 18:41:49 -07:00
udev
.cirrus.yml
.editorconfig
.gitignore
.gitmodules
.mailmap AUTHORS: refresh with recent new contributors (#16362) 2024-07-23 11:47:04 -07:00
AUTHORS AUTHORS: refresh with recent new contributors (#16362) 2024-07-23 11:47:04 -07:00
autogen.sh
CODE_OF_CONDUCT.md
configure.ac
copy-builtin
COPYRIGHT
LICENSE
Makefile.am
META Linux 6.9 compat: META (#16358) 2024-07-16 16:27:54 -07:00
NEWS
NOTICE
README.md
RELEASES.md
TEST
zfs.release.in

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.4-RELEASE.