From nobody Mon Jun 16 21:37:27 2025 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4bLjyb5P0Lz5yRnJ; Mon, 16 Jun 2025 21:37:27 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4bLjyb3fDjz3Jpq; Mon, 16 Jun 2025 21:37:27 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1750109847; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=3vXi6fzCui2mP8tjgVXBgePA5PxtkrNHaNPbzogY7X0=; b=QlaBEKOFONWNfqa0ZYYTOcCktsPijyWI0/hskxet6CptySFIK5k+EeJluJ3PLt5ltXuMSr 5LDs1sR8AUoiISuz8wYEsXKGtPWbfyLBhsukUFzTfhOCJP4U2O25Np+TowS5CAnBYr4UhA 9J8Dj0HMalUzmFjGMWWyzBziIs5pb0BDbHqiYO7+vapAiuhz/XKN9NSoAYtDvfrTpbzqOX DnZZ7MjHgUKSjAKFal/7Gkuwf6oRrAbAj9StqhwdAKBa43P2xU/+Z68WBm3Mik1Y8a+Q1y NE9P6Bx8syGlMAOzex3SjZfJYuOkLnlvHDN/yW+JkphDyx5z5T6kd/umCwLmkg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1750109847; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=3vXi6fzCui2mP8tjgVXBgePA5PxtkrNHaNPbzogY7X0=; b=qhyhrTAolcEuchsDokchDnHNI/gNOmD+Llq/juJ3jX2EG4bQG7T76quo3sx/kaaePm7/ZL pj68aP786X/a9WuzYDgp79i5TGXZZ7X8SPUAHWfQLoL5HM94aawE33gFb+/TmaKNltQakw tIhVh4doyVsYQU8cRs1x6zJdpe3BiIHEixYbXQE0tvEr+FfLHQ84VPjIhAwIp1+hZDOkv+ OSeXcveITpQft+86yhqUzuO7e5rw9jO2Xqg8gJK27yRWpEVFaaxuLfJL0gVijBMo7EJOAX fdXnhT9Sz7gjoMfEDfCmfOJuiXFhqs/CZSuMFeFPmm/a6nC/03c8Iv7gN/gnjQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1750109847; a=rsa-sha256; cv=none; b=ja028B/C5axN3X8/vfTj1LxsMEAW2qvHYmEjBh0YbaLAUlMEbBU8HfppFZF+Go+PnJKTYP bTjnRh7Zc+P+M/87B1ex/PpK0kylgzRLVq1qMxzGxA6EfMAJCQnHrxH9xPcLsO25fMVyTy pgFCmZQ2hpYovgvJ67Tk6+nN/672j2/mZFnelJ4tCRuMha8ENRTaTdnT9d7Fb7CCxIwQDj 4CvGLoJHsJGHKIyL1h6kSyddt34fuHp4GnI6Nfs91THUozKCi+yyFiB38fJu/eCTT6adHB QFzNXntEb5l0bdR7PyiZIyFSfOySRg1DeUob9p+Fb9UOED2qZZG8RwaJYlhzKA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4bLjyb381Lzn0; Mon, 16 Jun 2025 21:37:27 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 55GLbRod073130; Mon, 16 Jun 2025 21:37:27 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 55GLbRnE073127; Mon, 16 Jun 2025 21:37:27 GMT (envelope-from git) Date: Mon, 16 Jun 2025 21:37:27 GMT Message-Id: <202506162137.55GLbRnE073127@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Jessica Clarke Subject: git: b4f9be7fb371 - main - openzfs: Add a _WANT_ZNODE that defines struct znode / znode_t for userspace List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-all@freebsd.org Sender: owner-dev-commits-src-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: jrtc27 X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: b4f9be7fb371aa84881d12089d42df5ef14d3e89 Auto-Submitted: auto-generated The branch main has been updated by jrtc27: URL: https://cgit.FreeBSD.org/src/commit/?id=b4f9be7fb371aa84881d12089d42df5ef14d3e89 commit b4f9be7fb371aa84881d12089d42df5ef14d3e89 Author: Jessica Clarke AuthorDate: 2025-06-16 21:34:12 +0000 Commit: Jessica Clarke CommitDate: 2025-06-16 21:34:12 +0000 openzfs: Add a _WANT_ZNODE that defines struct znode / znode_t for userspace Note that ZNODE_OS_FIELDS needs to change to using struct vnode over vnode_t (matching struct zfsvfs rather than vnode_t) since vnode_t is only defined in the kernel SPL, not the userspace SPL (libspl). Whilst here, tidy up the includes and clarify a comment. Reviewed by: imp, markj Differential Revision: https://reviews.freebsd.org/D50720 --- sys/contrib/openzfs/include/os/freebsd/zfs/sys/zfs_znode_impl.h | 9 ++++++++- sys/contrib/openzfs/include/sys/zfs_vfsops.h | 2 +- sys/contrib/openzfs/include/sys/zfs_znode.h | 5 ++++- 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/sys/contrib/openzfs/include/os/freebsd/zfs/sys/zfs_znode_impl.h b/sys/contrib/openzfs/include/os/freebsd/zfs/sys/zfs_znode_impl.h index b292818750d9..15e3affba0e8 100644 --- a/sys/contrib/openzfs/include/os/freebsd/zfs/sys/zfs_znode_impl.h +++ b/sys/contrib/openzfs/include/os/freebsd/zfs/sys/zfs_znode_impl.h @@ -29,6 +29,7 @@ #ifndef _FREEBSD_ZFS_SYS_ZNODE_IMPL_H #define _FREEBSD_ZFS_SYS_ZNODE_IMPL_H +#ifdef _KERNEL #include #include #include @@ -42,6 +43,7 @@ #include #include #include +#endif #ifdef __cplusplus extern "C" { @@ -54,7 +56,7 @@ extern "C" { */ #define ZNODE_OS_FIELDS \ struct zfsvfs *z_zfsvfs; \ - vnode_t *z_vnode; \ + struct vnode *z_vnode; \ char *z_cached_symlink; \ uint64_t z_uid; \ uint64_t z_gid; \ @@ -62,6 +64,8 @@ extern "C" { uint64_t z_atime[2]; \ uint64_t z_links; +#ifdef _KERNEL + #define ZFS_LINK_MAX UINT64_MAX /* @@ -183,6 +187,9 @@ extern int zfs_znode_parent_and_name(struct znode *zp, struct znode **dzpp, char *buf, uint64_t buflen); extern int zfs_rlimit_fsize(off_t fsize); + +#endif /* _KERNEL */ + #ifdef __cplusplus } #endif diff --git a/sys/contrib/openzfs/include/sys/zfs_vfsops.h b/sys/contrib/openzfs/include/sys/zfs_vfsops.h index 18cc31e7183f..8b8f73cf3540 100644 --- a/sys/contrib/openzfs/include/sys/zfs_vfsops.h +++ b/sys/contrib/openzfs/include/sys/zfs_vfsops.h @@ -27,7 +27,7 @@ #ifndef _SYS_ZFS_VFSOPS_H #define _SYS_ZFS_VFSOPS_H -#ifdef _KERNEL +#if defined(_KERNEL) || defined(_WANT_ZNODE) #include #endif diff --git a/sys/contrib/openzfs/include/sys/zfs_znode.h b/sys/contrib/openzfs/include/sys/zfs_znode.h index b3a267e16f3e..2fedaff78534 100644 --- a/sys/contrib/openzfs/include/sys/zfs_znode.h +++ b/sys/contrib/openzfs/include/sys/zfs_znode.h @@ -163,8 +163,9 @@ extern int zfs_obj_to_pobj(objset_t *osp, sa_handle_t *hdl, sa_attr_type_t *sa_table, uint64_t *pobjp, int *is_xattrdir); extern int zfs_get_zplprop(objset_t *os, zfs_prop_t prop, uint64_t *value); -#ifdef _KERNEL +#if defined(_KERNEL) || defined(_WANT_ZNODE) #include +#include /* * Directory entry locks control access to directory entries. @@ -219,7 +220,9 @@ typedef struct znode { */ ZNODE_OS_FIELDS; } znode_t; +#endif +#ifdef _KERNEL /* Verifies the znode is valid. */ static inline int zfs_verify_zp(znode_t *zp)