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

From: Rick Macklem <rick.macklem_at_gmail.com>
Date: Wed, 09 Apr 2025 14:32:06 UTC
On Wed, Apr 9, 2025 at 1:29 AM Cedric Blancher
<cedric.blancher@gmail.com> wrote:
>
> 1. Which tag in https://github.com/freebsd/freebsd-src should I check
> out for building?
Oh, you need the main branch.

> 2. What is better - O_NAMEDATTR or O_NAMEDATTRS?
> 3. Which preprocessor symbol will enable O_NAMEDATTR? _GNU_SOURCE=1?
> 4. Could you also add an alias define #define O_XATTR (O_NAMEDATTR)?
> 5. Testing bash has support for O_XATTR, that might help with testing
>
> Ced
>
> On Tue, 8 Apr 2025 at 23:38, Rick Macklem <rick.macklem@gmail.com> wrote:
> >
> > 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
> > >
> >
>
>
> --
> Cedric Blancher <cedric.blancher@gmail.com>
> [https://plus.google.com/u/0/+CedricBlancher/]
> Institute Pasteur