Bakul Shah <[email protected]> writes:
> etcupdate panics since this commit:
> [...]
> #13 0xffffffff80c97cb5 in kern_statat (td=0xfffff8007e7fc000,
>     flag=<optimized out>, fd=<optimized out>, path=0x19e4d3242358 "/usr/src",
>     pathseg=UIO_USERSPACE, sbp=0xfffffe0054050d18)
>     at /home/FreeBSD/current/sys/kern/vfs_syscalls.c:2574

Which filesystem is /usr/src on?  If by any chance you are using openzfs
from ports, please either switch back to base or try the attached patch.

DES
-- 
Dag-Erling Smørgrav - [email protected]

>From 7d6691b4d31706d68a58b2e4f937989fae86ce6c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Dag-Erling=20Sm=C3=B8rgrav?= <[email protected]>
Date: Mon, 18 Aug 2025 01:14:02 +0200
Subject: [PATCH 1/1] filesystems/openzfs-kmod: Set rdev to NODEV, not 0, on
 non-devices

---
 filesystems/openzfs-kmod/Makefile                     |  1 +
 .../files/patch-os_freebsd_zfs_zfs__ctldir.c          | 11 +++++++++++
 .../files/patch-os_freebsd_zfs_zfs__vnops__os.c       | 11 +++++++++++
 3 files changed, 23 insertions(+)
 create mode 100644 filesystems/openzfs-kmod/files/patch-os_freebsd_zfs_zfs__ctldir.c
 create mode 100644 filesystems/openzfs-kmod/files/patch-os_freebsd_zfs_zfs__vnops__os.c

diff --git a/filesystems/openzfs-kmod/Makefile b/filesystems/openzfs-kmod/Makefile
index 7d60ccbd1dbf..2232bc62a2c7 100644
--- a/filesystems/openzfs-kmod/Makefile
+++ b/filesystems/openzfs-kmod/Makefile
@@ -1,5 +1,6 @@
 PORTNAME=	openzfs
 PORTVERSION=	2.3.3
+PORTREVISION=	1
 PORTEPOCH=	1
 CATEGORIES=	filesystems sysutils
 MASTER_SITES=	https://github.com/openzfs/zfs/releases/download/zfs-${PORTVERSION}/
diff --git a/filesystems/openzfs-kmod/files/patch-os_freebsd_zfs_zfs__ctldir.c b/filesystems/openzfs-kmod/files/patch-os_freebsd_zfs_zfs__ctldir.c
new file mode 100644
index 000000000000..b1f16a13b81e
--- /dev/null
+++ b/filesystems/openzfs-kmod/files/patch-os_freebsd_zfs_zfs__ctldir.c
@@ -0,0 +1,11 @@
+--- os/freebsd/zfs/zfs_ctldir.c.orig	2025-06-19 16:34:36 UTC
++++ os/freebsd/zfs/zfs_ctldir.c
+@@ -494,7 +494,7 @@ zfsctl_common_getattr(vnode_t *vp, vattr_t *vap)
+ 
+ 	vap->va_uid = 0;
+ 	vap->va_gid = 0;
+-	vap->va_rdev = 0;
++	vap->va_rdev = NODEV;
+ 	/*
+ 	 * We are a purely virtual object, so we have no
+ 	 * blocksize or allocated blocks.
diff --git a/filesystems/openzfs-kmod/files/patch-os_freebsd_zfs_zfs__vnops__os.c b/filesystems/openzfs-kmod/files/patch-os_freebsd_zfs_zfs__vnops__os.c
new file mode 100644
index 000000000000..6121acd043f2
--- /dev/null
+++ b/filesystems/openzfs-kmod/files/patch-os_freebsd_zfs_zfs__vnops__os.c
@@ -0,0 +1,11 @@
+--- os/freebsd/zfs/zfs_vnops_os.c.orig	2025-06-19 16:34:36 UTC
++++ os/freebsd/zfs/zfs_vnops_os.c
+@@ -1911,7 +1911,7 @@ zfs_getattr(vnode_t *vp, vattr_t *vap, int flags, cred
+ 	if (vp->v_type == VBLK || vp->v_type == VCHR)
+ 		vap->va_rdev = zfs_cmpldev(rdev);
+ 	else
+-		vap->va_rdev = 0;
++		vap->va_rdev = NODEV;
+ 	vap->va_gen = zp->z_gen;
+ 	vap->va_flags = 0;	/* FreeBSD: Reset chflags(2) flags. */
+ 	vap->va_filerev = zp->z_seq;
-- 
2.50.1

Reply via email to