git: 2d3490b048 - main - Status/2025Q2/named-attributes.adoc: Add report
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Tue, 24 Jun 2025 09:55:32 UTC
The branch main has been updated by salvadore:
URL: https://cgit.FreeBSD.org/doc/commit/?id=2d3490b04887650f543b496acf296bf4fe1e0564
commit 2d3490b04887650f543b496acf296bf4fe1e0564
Author: Rick Macklem <rmacklem@FreeBSD.org>
AuthorDate: 2025-06-24 09:32:18 +0000
Commit: Lorenzo Salvadore <salvadore@FreeBSD.org>
CommitDate: 2025-06-24 09:51:48 +0000
Status/2025Q2/named-attributes.adoc: Add report
Reviewed by: status (Pau Amma <pauamma@gundo.com>)
---
.../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 <rmacklem@FreeBSD.org>
+
+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.)