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

From: Rick Macklem <rick.macklem_at_gmail.com>
Date: Sat, 08 Mar 2025 15:42:42 UTC
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.

https://people.freebsd.org/~rmacklem/xattrtest.c is the simple program I
am currently using for testing.

rick

>
> It will only work for a ZFS file system and I think you need to set the
> xattr property to dir.
> Once you apply the patch to a kernel and rebuild/run that kernel,
> you need to copy /usr/src/sys/sys/fcntl.h to /usr/include/sys.
> The attached trivial test priogram should work.
> (It uses O_NAMEDATTR in a manner similar to Solaris, although
> I do not have a Solaris system to play with, so the semantics might
> not be exactly the same?)
>
> If people pick this up and test it, I will be inspired to continue to
> work on it.
>
> I will come up with NFSv4 code relatively soon and put this up
> on github someday. I have no idea if this will ever make it into
> FreeBSD's main?
>
> rick
> ps: See the attached trivial test program for how to use it.
>
> >
> > Lionel
> >