Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
84 commits
Select commit Hold shift + click to select a range
e3392a5
Prompt user to unlock when login from dropbear
congzhangzh Aug 22, 2025
774a34f
Synchronize the update of feature refcount
youzhongyang Aug 22, 2025
2fc6bf8
zdb: Fix format strings on 32-bit systems
markjdb Aug 25, 2025
c539d6f
ZTS: add mount_loopback to test zfs behind loop dev
tonyhutter Aug 25, 2025
9257948
config: cleanup KERNEL_CC checks, fix broken status output
intelfx Oct 21, 2024
c00c3e3
config: add and use KERNEL_CC check for `-Wno-format-zero-length`
intelfx Oct 21, 2024
8604e67
Add description of default sorting behavior to zfs_list.8
shawnbayern Aug 25, 2025
5846a85
Update compatibility.d files
ofthesun9 Aug 25, 2025
04d991d
Update pam_zfs_key.c defaultt path for FreeBSD
eborisch Aug 27, 2025
31b9646
linux: use sys/stat.h instead of linux/stat.h
classabbyamp Aug 27, 2025
92d4b13
manuals: Audit/bump dates for last content change
concussious Aug 28, 2025
24baccb
config: Fix LLVM-21 -Wuninitialized-const-pointer warning
behlendorf Sep 2, 2025
56e8ab4
zvol: reject suspend attempts when zvol is shutting down
robn Sep 3, 2025
886f29e
config: Add warning if ARCH environment variable is set
maskimko Sep 3, 2025
b5b6deb
ci: use real head sha instead of GITHUB_SHA when generating CI type
Harry-Chen Sep 4, 2025
e5132a3
ci: fix syntax issues in zfs-qemu.yml
Harry-Chen Sep 4, 2025
cbc6d57
Add upcoming renaming notice for arc_summary and arcstat
Harry-Chen Sep 3, 2025
f8e2152
Install zarcstat and zarcsummary symlinks in Makefile
Harry-Chen Sep 3, 2025
34ca2b8
Install zarcstat and zarcsummary in deb / rpm build rules
Harry-Chen Sep 3, 2025
c755aa4
Fix wrong dedup_table_size for legacy dedup
tuxoko Sep 8, 2025
02fa962
cmd: force zarcstat/zarc_summary recreation at install
robn Sep 8, 2025
b727163
zfs_vnops_os.c: Add support for the _PC_CLONE_BLKSIZE name
rmacklem Sep 9, 2025
b23eae6
Fix the build on 32-bit FreeBSD with GCC
asomers Sep 9, 2025
cfd640c
Fix warnings about sha2_is_supported on FreeBSD/i386
asomers Sep 9, 2025
87e35bd
ZTS: Fix fault_limits timeouts
tonyhutter Sep 9, 2025
d469371
config: restore ZFS_AC_KERNEL_DENTRY tests
robn Jul 31, 2025
0df91ab
Linux 6.17: d_set_d_op() is no longer available
robn Jul 31, 2025
dc53e5c
linux/rw_destroy: assert no holders before destroying
robn Sep 10, 2025
5bf1500
Remove renaming notice and symlinks for arcstat and arc_summary
Harry-Chen Sep 9, 2025
743866c
cmd: rename arc_summary to zarcsummary
Harry-Chen Sep 9, 2025
717c57c
cmd: rename arcstat to zarcstat
Harry-Chen Sep 9, 2025
ca4f7d6
contrib/debian: install files into merged /usr
Harry-Chen Sep 9, 2025
26983d6
Add allocation profile export and zhack subcommand for import
Apr 24, 2025
e2e7082
Enable zhack to work properly with 4k sector size disks
Sep 9, 2025
177e9d0
Fix the build of crypto_test on LP32 architectures
asomers Sep 10, 2025
123bfc3
ZTS: Print warning if running ZTS user_run test locally
tonyhutter Sep 10, 2025
0df85ec
Remove RAIDZ reconstruct flags from debug defaults
Aug 25, 2025
df55ba7
Detect a slow raidz child during reads
Aug 27, 2025
3dc3458
Prevent scrubbing a read-only pool
behlendorf Sep 11, 2025
4a7a046
zed: Add synchronous zedlets
tonyhutter Sep 11, 2025
6c4ede4
ZFS allow send:encrypted
allanjude Jul 15, 2025
43a9d9a
Add send:encrypted test
Jul 15, 2025
95d677e
Fix ddle memleak in ddt_log_load
tuxoko Sep 12, 2025
2f41193
Make new zhack test a little more reliable
pcd1193182 Sep 12, 2025
b5d41de
FreeBSD: Satisfy ASSERT_VOP_IN_SEQC()
amotin Sep 12, 2025
41c6eaa
Fix type in dbrrd_closest()
amotin Sep 12, 2025
c9de42e
ZTS: refreserv/refreserv_raidz improvements
behlendorf Sep 12, 2025
cac483d
Fix time database update calculations
pcd1193182 Sep 12, 2025
efdb4bf
Fix two infinite loops if dmu_prefetch_max set to zero
amotin Sep 13, 2025
da33cfd
vdev_disk_close: take disk write lock before destroying it
robn Sep 15, 2025
53c8d70
ZTS: Fix zfs_send_delegation_user test
behlendorf Sep 15, 2025
a4cb155
ZTS: default to random data in fill_fs
behlendorf Sep 15, 2025
8b54877
zfsprops(7): attempt to clarify the keylocation description
kevans91 Sep 15, 2025
1ca4cd8
Fix txg_log_time ZAP key typo
ihoro Sep 15, 2025
406f76b
CI: Switch FreeBSD 15 to 15.0-ALPHA2
amotin Sep 15, 2025
4698208
Shellcheck.am: add silent rules for shellcheck and checkbashisms
robn Jul 18, 2025
d0084a4
mancheck: allow single files
robn Jul 19, 2025
e3eb3ca
man: add silent rules for mancheck
robn Jul 19, 2025
5f7253c
Refactor `zhack label repair` and fix `-c` regression on nonzero TXG
buzzingwires Sep 12, 2025
a056b3c
Add `typeset`s to `zhack label repair` test scripts
buzzingwires Sep 15, 2025
42b9995
linux/super: add tunable to request immediate reclaim of unused inodes
robn May 1, 2025
15a6b98
linux/super: add tunable to request immediate reclaim of unused dentries
robn May 1, 2025
9c6f720
Fix atomic-alignment warnings in libspl on FreeBSD/i386
asomers Sep 17, 2025
ef9b7dd
Fix a printf format specifier on FreeBSD/i386
asomers Sep 17, 2025
83066c9
contrib: dracut: always include zfs kernel module
jozzsi Sep 18, 2025
2380e0b
ZTS: Fix stale symlinks with zfs-helpers.sh
tonyhutter Sep 23, 2025
9bcda0b
Use "vdev" instead of "devices" when referring to vdevs
trick2011 Sep 23, 2025
61a6855
zdb: Fix asize overflow in verify_livelist_allocs()
amotin Sep 23, 2025
6dad2f6
contrib: dracut: install dependent kernel modules
jozzsi Sep 23, 2025
9bd8f43
ZTS: update upgrade_readonly_pool.ksh
behlendorf Sep 25, 2025
d33d0ca
Fix 'zpool add' safety check corner cases
behlendorf Sep 25, 2025
954fe5e
Add interface to interface spa_get_worst_case_min_alloc() function
behlendorf Sep 25, 2025
460858d
dnode_next_offset: backtrack if lower level does not match
rrevans Sep 25, 2025
e1a6ec4
zdb: add ZFS_KEYFORMAT_RAW support for -K option
patrickxia Sep 25, 2025
ddecc5f
CI: update perf and bpftools with the kernel packages
behlendorf Sep 26, 2025
654a2cc
Linux 6.17 compat: META
behlendorf Sep 26, 2025
ca9b89b
CI: Remove Buildbot references
behlendorf Sep 26, 2025
a9bcf4f
CI: Switch FreeBSD 15 to 15.0-ALPHA3
behlendorf Sep 27, 2025
9079f98
zvol: Fix blk-mq sync
tonyhutter Sep 29, 2025
abda34b
CI: Add ZTS -O option, log Setup Testing Machines step
tonyhutter Sep 29, 2025
35ec4b1
zpool iostat: refresh pool list every interval
robn Sep 29, 2025
f3295ec
range_tree: drop duplicate zfs_ prefix from rs_set_fill_raw
uzuki314 Sep 29, 2025
0939787
manuals: fix typos in zpool-upgrade man page
nav1s Sep 29, 2025
2f50d67
Tag 2.4.0-rc2
behlendorf Sep 30, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 0 additions & 5 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,6 @@

<!--- Provide a general summary of your changes in the Title above -->

<!---
Documentation on ZFS Buildbot options can be found at
https://openzfs.github.io/openzfs-docs/Developer%20Resources/Buildbot%20Options.html
-->

### Motivation and Context
<!--- Why is this change required? What problem does it solve? -->
<!--- If it fixes an open issue, please link to the issue here. -->
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/scripts/generate-ci-type.py
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ def output_type(type, reason):

# check last (HEAD) commit message
last_commit_message_raw = subprocess.run([
'git', 'show', '-s', '--format=%B', 'HEAD'
'git', 'show', '-s', '--format=%B', head
], check=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)

for line in last_commit_message_raw.stdout.decode().splitlines():
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/scripts/qemu-2-start.sh
Original file line number Diff line number Diff line change
Expand Up @@ -121,7 +121,7 @@ case "$OS" in
KSRC="$FREEBSD_SNAP/../amd64/$FreeBSD/src.txz"
;;
freebsd15-0c)
FreeBSD="15.0-PRERELEASE"
FreeBSD="15.0-ALPHA3"
OSNAME="FreeBSD $FreeBSD"
OSv="freebsd14.0"
URLxz="$FREEBSD_SNAP/$FreeBSD/amd64/Latest/FreeBSD-$FreeBSD-amd64-BASIC-CI-ufs.raw.xz"
Expand Down
11 changes: 6 additions & 5 deletions .github/workflows/scripts/qemu-3-deps-vm.sh
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ function archlinux() {
sudo pacman -Sy --noconfirm base-devel bc cpio cryptsetup dhclient dkms \
fakeroot fio gdb inetutils jq less linux linux-headers lsscsi nfs-utils \
parted pax perf python-packaging python-setuptools qemu-guest-agent ksh \
samba sysstat rng-tools rsync wget xxhash
samba strace sysstat rng-tools rsync wget xxhash
echo "##[endgroup]"
}

Expand All @@ -43,7 +43,8 @@ function debian() {
lsscsi nfs-kernel-server pamtester parted python3 python3-all-dev \
python3-cffi python3-dev python3-distlib python3-packaging libtirpc-dev \
python3-setuptools python3-sphinx qemu-guest-agent rng-tools rpm2cpio \
rsync samba sysstat uuid-dev watchdog wget xfslibs-dev xxhash zlib1g-dev
rsync samba strace sysstat uuid-dev watchdog wget xfslibs-dev xxhash \
zlib1g-dev
echo "##[endgroup]"
}

Expand Down Expand Up @@ -87,8 +88,8 @@ function rhel() {
libuuid-devel lsscsi mdadm nfs-utils openssl-devel pam-devel pamtester \
parted perf python3 python3-cffi python3-devel python3-packaging \
kernel-devel python3-setuptools qemu-guest-agent rng-tools rpcgen \
rpm-build rsync samba sysstat systemd watchdog wget xfsprogs-devel xxhash \
zlib-devel
rpm-build rsync samba strace sysstat systemd watchdog wget xfsprogs-devel \
xxhash zlib-devel
echo "##[endgroup]"
}

Expand All @@ -104,7 +105,7 @@ function install_fedora_experimental_kernel {
our_version="$1"
sudo dnf -y copr enable @kernel-vanilla/stable
sudo dnf -y copr enable @kernel-vanilla/mainline
all="$(sudo dnf list --showduplicates kernel-*)"
all="$(sudo dnf list --showduplicates kernel-* python3-perf* perf* bpftool*)"
echo "Available versions:"
echo "$all"

Expand Down
25 changes: 18 additions & 7 deletions .github/workflows/scripts/qemu-5-setup.sh
Original file line number Diff line number Diff line change
Expand Up @@ -108,19 +108,30 @@ echo '*/5 * * * * /root/cronjob.sh' > crontab.txt
sudo crontab crontab.txt
rm crontab.txt

# check if the machines are okay
echo "Waiting for vm's to come up... (${VMs}x CPU=$CPU RAM=$RAM)"
for ((i=1; i<=VMs; i++)); do
.github/workflows/scripts/qemu-wait-for-vm.sh vm$i
done
echo "All $VMs VMs are up now."

# Save the VM's serial output (ttyS0) to /var/tmp/console.txt
# - ttyS0 on the VM corresponds to a local /dev/pty/N entry
# - use 'virsh ttyconsole' to lookup the /dev/pty/N entry
for ((i=1; i<=VMs; i++)); do
mkdir -p $RESPATH/vm$i
read "pty" <<< $(sudo virsh ttyconsole vm$i)

# Create the file so we can tail it, even if there's no output.
touch $RESPATH/vm$i/console.txt

sudo nohup bash -c "cat $pty > $RESPATH/vm$i/console.txt" &

# Write all VM boot lines to the console to aid in debugging failed boots.
# The boot lines from all the VMs will be munged together, so prepend each
# line with the vm hostname (like 'vm1:').
(while IFS=$'\n' read -r line; do echo "vm$i: $line" ; done < <(sudo tail -f $RESPATH/vm$i/console.txt)) &

done
echo "Console logging for ${VMs}x $OS started."


# check if the machines are okay
echo "Waiting for vm's to come up... (${VMs}x CPU=$CPU RAM=$RAM)"
for ((i=1; i<=VMs; i++)); do
.github/workflows/scripts/qemu-wait-for-vm.sh vm$i
done
echo "All $VMs VMs are up now."
2 changes: 1 addition & 1 deletion .github/workflows/scripts/qemu-6-tests.sh
Original file line number Diff line number Diff line change
Expand Up @@ -111,7 +111,7 @@ fi
sudo dmesg -c > dmesg-prerun.txt
mount > mount.txt
df -h > df-prerun.txt
$TDIR/zfs-tests.sh -vK -s 3GB -T $TAGS
$TDIR/zfs-tests.sh -vKO -s 3GB -T $TAGS
RV=$?
df -h > df-postrun.txt
echo $RV > tests-exitcode.txt
Expand Down
7 changes: 3 additions & 4 deletions .github/workflows/zfs-qemu.yml
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ jobs:
os_selection="$FULL_OS"
fi

if [ ${{ github.event.inputs.fedora_kernel_ver }} != "" ] ; then
if ${{ github.event.inputs.fedora_kernel_ver != '' }}; then
# They specified a custom kernel version for Fedora. Use only
# Fedora runners.
os_json=$(echo ${os_selection} | jq -c '[.[] | select(startswith("fedora"))]')
Expand All @@ -53,9 +53,8 @@ jobs:
os_json=$(echo ${os_selection} | jq -c)
fi

echo $os_json
echo "os=$os_json" >> $GITHUB_OUTPUT
echo "ci_type=$ci_type" >> $GITHUB_OUTPUT
echo "os=$os_json" | tee -a $GITHUB_OUTPUT
echo "ci_type=$ci_type" | tee -a $GITHUB_OUTPUT

qemu-vm:
name: qemu-x86
Expand Down
4 changes: 2 additions & 2 deletions META
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@ Meta: 1
Name: zfs
Branch: 1.0
Version: 2.4.0
Release: rc1
Release: rc2
Release-Tags: relext
License: CDDL
Author: OpenZFS
Linux-Maximum: 6.16
Linux-Maximum: 6.17
Linux-Minimum: 4.18
4 changes: 4 additions & 0 deletions Makefile.am
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
CLEANFILES =
dist_noinst_DATA =
INSTALL_DATA_HOOKS =
INSTALL_EXEC_HOOKS =
ALL_LOCAL =
CLEAN_LOCAL =
CHECKS = shellcheck checkbashisms
Expand Down Expand Up @@ -71,6 +72,9 @@ all: gitrev
PHONY += install-data-hook $(INSTALL_DATA_HOOKS)
install-data-hook: $(INSTALL_DATA_HOOKS)

PHONY += install-exec-hook $(INSTALL_EXEC_HOOKS)
install-exec-hook: $(INSTALL_EXEC_HOOKS)

PHONY += maintainer-clean-local
maintainer-clean-local:
-$(RM) $(GITREV)
Expand Down
11 changes: 5 additions & 6 deletions cmd/Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -98,17 +98,16 @@ endif


if USING_PYTHON
bin_SCRIPTS += arc_summary arcstat dbufstat zilstat
CLEANFILES += arc_summary arcstat dbufstat zilstat
dist_noinst_DATA += %D%/arc_summary %D%/arcstat.in %D%/dbufstat.in %D%/zilstat.in
bin_SCRIPTS += zarcsummary zarcstat dbufstat zilstat
CLEANFILES += zarcsummary zarcstat dbufstat zilstat
dist_noinst_DATA += %D%/zarcsummary %D%/zarcstat.in %D%/dbufstat.in %D%/zilstat.in

$(call SUBST,arcstat,%D%/)
$(call SUBST,zarcstat,%D%/)
$(call SUBST,dbufstat,%D%/)
$(call SUBST,zilstat,%D%/)
arc_summary: %D%/arc_summary
zarcsummary: %D%/zarcsummary
$(AM_V_at)cp $< $@
endif


PHONY += cmd
cmd: $(bin_SCRIPTS) $(bin_PROGRAMS) $(sbin_SCRIPTS) $(sbin_PROGRAMS) $(dist_bin_SCRIPTS) $(zfsexec_PROGRAMS) $(mounthelper_PROGRAMS)
22 changes: 12 additions & 10 deletions cmd/arcstat.in → cmd/zarcstat.in
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
# SPDX-License-Identifier: CDDL-1.0
#
# Print out ZFS ARC Statistics exported via kstat(1)
# For a definition of fields, or usage, use arcstat -v
# For a definition of fields, or usage, use zarcstat -v
#
# This script was originally a fork of the original arcstat.pl (0.1)
# by Neelakanth Nadgir, originally published on his Sun blog on
Expand Down Expand Up @@ -56,6 +56,7 @@ import time
import getopt
import re
import copy
import os

from signal import signal, SIGINT, SIGWINCH, SIG_DFL

Expand Down Expand Up @@ -171,7 +172,7 @@ cols = {
"zactive": [7, 1000, "zfetch prefetches active per second"],
}

# ARC structural breakdown from arc_summary
# ARC structural breakdown from zarcsummary
structfields = {
"cmp": ["compressed", "Compressed"],
"ovh": ["overhead", "Overhead"],
Expand All @@ -187,7 +188,7 @@ structstats = { # size stats
"sz": ["_size", "size"],
}

# ARC types breakdown from arc_summary
# ARC types breakdown from zarcsummary
typefields = {
"data": ["data", "ARC data"],
"meta": ["metadata", "ARC metadata"],
Expand All @@ -198,7 +199,7 @@ typestats = { # size stats
"sz": ["_size", "size"],
}

# ARC states breakdown from arc_summary
# ARC states breakdown from zarcsummary
statefields = {
"ano": ["anon", "Anonymous"],
"mfu": ["mfu", "MFU"],
Expand Down Expand Up @@ -261,7 +262,7 @@ hdr_intr = 20 # Print header every 20 lines of output
opfile = None
sep = " " # Default separator is 2 spaces
l2exist = False
cmd = ("Usage: arcstat [-havxp] [-f fields] [-o file] [-s string] [interval "
cmd = ("Usage: zarcstat [-havxp] [-f fields] [-o file] [-s string] [interval "
"[count]]\n")
cur = {}
d = {}
Expand Down Expand Up @@ -348,10 +349,10 @@ def usage():
"character or string\n")
sys.stderr.write("\t -p : Disable auto-scaling of numerical fields\n")
sys.stderr.write("\nExamples:\n")
sys.stderr.write("\tarcstat -o /tmp/a.log 2 10\n")
sys.stderr.write("\tarcstat -s \",\" -o /tmp/a.log 2 10\n")
sys.stderr.write("\tarcstat -v\n")
sys.stderr.write("\tarcstat -f time,hit%,dh%,ph%,mh% 1\n")
sys.stderr.write("\tzarcstat -o /tmp/a.log 2 10\n")
sys.stderr.write("\tzarcstat -s \",\" -o /tmp/a.log 2 10\n")
sys.stderr.write("\tzarcstat -v\n")
sys.stderr.write("\tzarcstat -f time,hit%,dh%,ph%,mh% 1\n")
sys.stderr.write("\n")

sys.exit(1)
Expand All @@ -366,7 +367,7 @@ def snap_stats():

cur = kstat

# fill in additional values from arc_summary
# fill in additional values from zarcsummary
cur["caches_size"] = caches_size = cur["anon_data"]+cur["anon_metadata"]+\
cur["mfu_data"]+cur["mfu_metadata"]+cur["mru_data"]+cur["mru_metadata"]+\
cur["uncached_data"]+cur["uncached_metadata"]
Expand Down Expand Up @@ -766,6 +767,7 @@ def calculate():


def main():

global sint
global count
global hdr_intr
Expand Down
6 changes: 3 additions & 3 deletions cmd/arc_summary → cmd/zarcsummary
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ Provides basic information on the ARC, its efficiency, the L2ARC (if present),
the Data Management Unit (DMU), Virtual Devices (VDEVs), and tunables. See
the in-source documentation and code at
https://github.com/openzfs/zfs/blob/master/module/zfs/arc.c for details.
The original introduction to arc_summary can be found at
The original introduction to zarcsummary can be found at
http://cuddletech.com/?p=454
"""

Expand Down Expand Up @@ -161,7 +161,7 @@ elif sys.platform.startswith('linux'):
return get_params(TUNABLES_PATH)

def get_version_impl(request):
# The original arc_summary called /sbin/modinfo/{spl,zfs} to get
# The original zarcsummary called /sbin/modinfo/{spl,zfs} to get
# the version information. We switch to /sys/module/{spl,zfs}/version
# to make sure we get what is really loaded in the kernel
try:
Expand Down Expand Up @@ -439,7 +439,7 @@ def print_header():
"""

# datetime is now recommended over time but we keep the exact formatting
# from the older version of arc_summary in case there are scripts
# from the older version of zarcsummary in case there are scripts
# that expect it in this way
daydate = time.strftime(DATE_FORMAT)
spc_date = LINE_LENGTH-len(daydate)
Expand Down
Loading
Loading