Re: FreeBSD NFSv4.1 nfsd, named attribute support (OPENATTR)?

From: Rick Macklem <rick.macklem_at_gmail.com>
Date: Tue, 08 Apr 2025 21:37:21 UTC
On Tue, Apr 8, 2025 at 1:40 PM Dan Shelton <dan.f.shelton@gmail.com> wrote:
>
> On Sat, 8 Mar 2025 at 16:43, Rick Macklem <rick.macklem@gmail.com> wrote:
> >
> > On Sun, Mar 2, 2025 at 3:48 PM Rick Macklem <rick.macklem@gmail.com> wrote:
> > >
> > > On Tue, Feb 18, 2025 at 4:14 PM Lionel Cons <lionelcons1972@gmail.com> wrote:
> > > >
> > > > On Mon, 20 Jan 2025 at 13:15, Lionel Cons <lionelcons1972@gmail.com> wrote:
> > > > >
> > > > > On Sun, 12 Jan 2025 at 16:50, Rick Macklem <rick.macklem@gmail.com> wrote:
> > > > > >
> > > > > > On Sun, Jan 12, 2025 at 2:09 AM Cedric Blancher
> > > > > > <cedric.blancher@gmail.com> wrote:
> > > > > > >
> > > > > > > Good morning!
> > > > > > >
> > > > > > > Does FreeBSD NFSv4.1 nfsd support named attributes (e.g. OPENATTR),
> > > > > > > per https://datatracker.ietf.org/doc/html/rfc5661#section-5.3
> > > > > > >
> > > > > > > ZFS and Solaris UFS support named attributes (via O_XATTR), does
> > > > > > > FreeBSD do it too?
> > > > > > No. fork files/resource forks (or whatever you choose to call them)
> > > > > > have been discussed multiple times.
> > > > > >
> > > > > > If I recall correctly, one showstopper was fixing the archive tools.
> > > > > > There was also the generic argument that Linux doesn't support them.
> > > > > > Then there was the issue of what VFS/VOP changes were required.
> > > > > > (The FreeBSD VFS carries vnode locks across VOP calls and is at
> > > > > > what I would call a lower level than Solaris.)
> > > > > > --> Which all comes down to who will do the work?
> > > > > >
> > > > > > If I recall correctly, there was a time when a group associated with
> > > > > > CERN needed them to transition away from Solaris.
> > > > >
> > > > > That was my team, and there is still the need to do it. What keeps us
> > > > > FRUSTRATED is the lack of progress. Well, and "no", we cannot do it
> > > > > ourselves, this is well beyond the expertise my team has.
> > > >
> > > > Does anyone have any suggestions on how to proceed?
> > > The patch found here does the very basics for ZFS (no NFSv4 code yet).
> > > https://people.freebsd.org/~rmacklem/xattr.patch
> > I am updating this patch regularly. What is missing are mostly the
> > "don't do this to named attributes" checks for other syscalls. I'll be
> > adding those soon. I have done nothing for userland. I am hoping
> > others might step in to help with that.
> > --> I do need opinions w.r.t. what else is needed (if anything) syscall wise.
> > If you want to see this proceed, please test/look at the patches.
> >
> > There is now also a patch for the NFSv4 client/server to use the above.
> > https://people.freebsd.org/~rmacklem/nfs-xattr.patch.
>
> Where does the patch define O_NAMEDATTR or O_XATTR?
The most recent patch assumes that you have up-to-date FreeBSD
main sources, since O_NAMEDATTR is now committed to main.

Since the ZFS and NFS patches are not yet in main (ZFS takes a
while because it must first find its way into OpenZFS), you still
need to apply these two patches:
https://people.freebsd.org/~rmacklem/zfs-xattr.patch
https://people.freebsd.org/~rmacklem/nfs-xattr.patch

Only ZFS supports O_NAMEDATTR and only when...
# zfs set xattr=dir <file-system>
is set, followed by a reboot (or maybe a remount).
There is also an unresolved issue with older zpools,
where the only way to get it to work is doing a mount
with "-o xattr". (Look for a posting by Shawn Webb on
freebsd-current@ under the Subject: Heads up...
If you have an older zpool or the "zfs set xattr=dir" does
not seem to have worked.
Initial testing can be done with...
https://www.people.freebsd/~rmacklem/xattrtest.c

rick
>
> Dan
> --
> Dan Shelton - Cluster Specialist Win/Lin/Bsd
>