From nobody Tue Jun 24 09:55:32 2025 X-Original-To: dev-commits-doc-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 4bRL1064ghz5yZjj for ; Tue, 24 Jun 2025 09:55:32 +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 "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4bRL104bMRz3nmD; Tue, 24 Jun 2025 09:55:32 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1750758932; 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=lxynGXCTVXggLcGarMs/d2BVnR5e/J6pLOC/PmtWgcM=; b=SS5tP9tQ0JBZGvkYiU3pQ/mF/lQ8keNLykgquILz500gyP/9JIm58jbyEEdyl5IW/q8VPi N9y9ORsFxq/UUcX+6FS191Dv+NoUpV2eYmRV6HN7CvPPA4yaIvP+EHgi/55+G7Y53EzXEX GPHaEHrfPkba3mQ/R88tiGKUKw4HfUiNTpZjddBLAKozliBfRs7Sc0VrQp5+TFUntLL3ZL X5wfKUKZDUpwoBgBjbmBvhs/3a5TS/gcwdUvXQuOTJ89Ix20McO5MiPyDmO0JsWA7svl9Z Y4yFKHzDY/riEckPBCIGT+suTzrY9Pwvi57HsAQbyf+OrsFryekhVLWMOq7luQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1750758932; 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=lxynGXCTVXggLcGarMs/d2BVnR5e/J6pLOC/PmtWgcM=; b=RUgIyKhlCO8O2CXodj8OKAlz6dcXakhIG2MqHSmVFckIlh1GNyduX7yCQoDtrlIR0ifWdJ YdQPNFBXp1sWH56pdsxIgYm17jomdxY7Ou6dOrFob+eDTtt10Ppe44iXcnbXjCGuicFSjA zsyjIk1rrVoA3gre1YSI3zC67w/de///uOn2XRV0WRfHPerXhmzkAPj67GPrXaJQ+8Ssqk akbON9RI2aC34+kU6tNn/Eu1tlSgVMqW+cZGSPWG/Otk0Dw/uMpYmNu0B/t/m9ikXttJ3S 9/NXqwFRJsHbVoK/h9FWIaugf1bfQDMBM1cxOEGbSMhE+Zp+CrhlBv0Xb5konQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1750758932; a=rsa-sha256; cv=none; b=tAGfFbINwW8UNn8TMee5eVPYmMQIFVZUX4YIDNOFf7Zik4q4HpiEAszYv6E7JxYN5cdjE/ vDiKbnI/FLLHGKMl0zSfsu1WoUJBdxqJpjPUyaj4ZZn4B3RxGMW/O2Y7AUuDFX0CM8HOVI YpklF3G7vKuO5OFI40g9OrhFQWGnO1PLBbHLTVKIAcEGL51LIKNW3MEdvHu+DcM/ijoN8b 11CrVle9m+YU1AOhO5bsw/MYb6/klPrXYl2uj101IGHhe7cOO3/RYT47i5MVyr1T/fXhs/ HsLz8Idp3fzwucONbYfDn8j/YV3k9coNv1cC5Jn+72ehSVO9+d+q3OPtEAV3bQ== 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 4bRL104BrSzk5Z; Tue, 24 Jun 2025 09:55:32 +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 55O9tWgQ026852; Tue, 24 Jun 2025 09:55:32 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 55O9tWXp026849; Tue, 24 Jun 2025 09:55:32 GMT (envelope-from git) Date: Tue, 24 Jun 2025 09:55:32 GMT Message-Id: <202506240955.55O9tWXp026849@gitrepo.freebsd.org> To: doc-committers@FreeBSD.org, dev-commits-doc-all@FreeBSD.org From: Lorenzo Salvadore Subject: git: 2d3490b048 - main - Status/2025Q2/named-attributes.adoc: Add report List-Id: Commit messages for all branches of the doc repository List-Archive: https://lists.freebsd.org/archives/dev-commits-doc-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-doc-all@freebsd.org Sender: owner-dev-commits-doc-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: salvadore X-Git-Repository: doc X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 2d3490b04887650f543b496acf296bf4fe1e0564 Auto-Submitted: auto-generated The branch main has been updated by salvadore: URL: https://cgit.FreeBSD.org/doc/commit/?id=2d3490b04887650f543b496acf296bf4fe1e0564 commit 2d3490b04887650f543b496acf296bf4fe1e0564 Author: Rick Macklem AuthorDate: 2025-06-24 09:32:18 +0000 Commit: Lorenzo Salvadore CommitDate: 2025-06-24 09:51:48 +0000 Status/2025Q2/named-attributes.adoc: Add report Reviewed by: status (Pau Amma ) --- .../report-2025-04-2025-06/named-attributes.adoc | 27 ++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/website/content/en/status/report-2025-04-2025-06/named-attributes.adoc b/website/content/en/status/report-2025-04-2025-06/named-attributes.adoc new file mode 100644 index 0000000000..d6f5e0e54d --- /dev/null +++ b/website/content/en/status/report-2025-04-2025-06/named-attributes.adoc @@ -0,0 +1,27 @@ +=== Named attribute support (Solaris style extended attributes) + +Contact: Rick Macklem + +Named attributes is the NFSv4 term for what is also known as Solaris style extended attributes. +Since ZFS has its origins in Solaris, the wiring for these exists in OpenZFS. +This little project consists of connecting that wiring up. +This is not intended to replace the extended attribute support already in FreeBSD. +It provides an alternate mechanism for manipulating extended attributes that will be supported for ZFS and NFSv4. +There are a few reasons I think this could be useful (as indicated via email discussion). +This mechanism allows for extended attributes as large as any regular file, which can be partially updated. +Some NFSv4 clients, such as MacOS and Windows, can use these extended attributes but not the FreeBSD/Linux style ones. +(I think MacOS calls these extended attributes fork files and Windows calls them alternate data streams.) +There is software, such as bash, that know how to manipulate these extended attributes. + +The fundamental difference is that this mechanism provides a directory that is not in the file system's namespace, but is associated with a file object. +This named attribute directory can then be read via man:readdir[3] to get the list of extended attributes, which are really just regular files. +These extended attributes are then read/written like any regular file. + +The top level system call interface is man:open[2]/man:openat[2] with the new O_NAMEDATTR flag (called O_XATTR on Solaris). + +Most of the work has been committed to FreeBSD's main for FreeBSD 15. +Once the ZFS patch makes it through review and gets pulled into OpenZFS, the ZFS and NFSv4 support should work. +There are also a couple of manual pages currently under review in phabricator. + +The main thing left to do is update libarchive/tar so that large extended attributes can be archived/retrieved. +(The current FreeBSD extended attribute mechanism is supported by libarchive, but will have size constraints.)