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

From: Cedric Blancher <cedric.blancher_at_gmail.com>
Date: Fri, 11 Apr 2025 06:40:00 UTC
On Wed, 9 Apr 2025 at 16:30, Rick Macklem <rick.macklem@gmail.com> wrote:
>
> 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?
> Don't use any tag, just
> git clone https://github.com/freebsd/freebsd-src
> (I'm not a git guy, so I don't even know what tags are used for, but the most
> recent is dated Mar., which would be before the commit.)
>
> Alternately, if you are doing a fresh install to do testing, just wait
> a couple of
> days for a new snapshot to show up (I'm not certain that what is there now
> has the commit) and install src when you install off it.)
> On FreeBSD, snapshots install like releases, but consist of recent unreleased
> code. If you go onto ftp.freebsd.org as anonymous ftp, they can be found in
> pub/FreeBSD/snapshots/ISO-IMAGES/15.0 (and dates are in the file names
> and ones newer than Apr. 3 should be there around Thurs.)
> For x86-64, you'll want one with "amd64" in the name. I use the one with "disc1"
> in the name, which is a full install ISO.
>
> > 2. What is better - O_NAMEDATTR or O_NAMEDATTRS?
> I used O_NAMEDATTR, but if others seem to think O_NAMEDATTRS is better,
> it could change at this early stage.
>
> > 3. Which preprocessor symbol will enable O_NAMEDATTR? _GNU_SOURCE=1?
> It is under __BSD_VISIBLE, which is set by default on FreeBSD.
>
> > 4. Could you also add an alias define #define O_XATTR (O_NAMEDATTR)?
> I chose not to call it O_XATTR for two reasons:
> 1 - To try and avoid confusion with the Linux style extended attributes already
>       in FreeBSD
> 2 - Because the semantics might not be exactly the same as Solaris. I am still
>      working on getting Solaris installed for interop testing, etc.
> If I were to create an alias I think that would subvert #2.
> Anyone can easily define such a thing if they have Solaris source code and
> want to try testing it. (If it turns out that #define O_XATTR O_NAMEDATTR
> makes most/all Solaris code work, maybe it could be defined under
> some Solaris define in fcntl.h?)
>
> > 5. Testing bash has support for O_XATTR, that might help with testing
> Sorry, no idea what this means?

bash5 has O_XATTR support since Solaris added named attributes. That
can be used for testing.
Try cd -@ myfile with bash5 on Solaris or Illumos.

Same should work on FreeBSD if bash5 gets compiled with
"CFLAGS=-DO_XATTR=O_NAMEDATTR"

Ced
-- 
Cedric Blancher <cedric.blancher@gmail.com>
[https://plus.google.com/u/0/+CedricBlancher/]
Institute Pasteur