Re: [PATCH v2 1/1] xattr: Allow user.* xattr on symlink and special files

From: Bruce Fields
Date: Fri Jul 09 2021 - 16:10:36 EST


On Fri, Jul 9, 2021 at 1:59 PM Vivek Goyal <vgoyal@xxxxxxxxxx> wrote:
> nfs seems to have some issues.

I'm not sure what the expected behavior is for nfs. All I have for
now is some generic troubleshooting ideas, sorry:

> - I can set user.foo xattr on symlink and query it back using xattr name.
>
> getfattr -h -n user.foo foo-link.txt
>
> But when I try to dump all xattrs on this file, user.foo is being
> filtered out it looks like. Not sure why.

Logging into the server and seeing what's set there could help confirm
whether it's the client or server that's at fault. (Or watching the
traffic in wireshark; there are GET/SET/LISTXATTR ops that should be
easy to spot.)

> - I can't set "user.foo" xattr on a device node on nfs and I get
> "Permission denied". I am assuming nfs server is returning this.

Wireshark should tell you whether it's the server or client doing that.

The RFC is https://datatracker.ietf.org/doc/html/rfc8276, and I don't
see any explicit statement about what the server should do in the case
of symlinks or device nodes, but I do see "Any regular file or
directory may have a set of extended attributes", so that was clearly
the assumption. Also, NFS4ERR_WRONG_TYPE is listed as a possible
error return for the xattr ops. But on a quick skim I don't see any
explicit checks in the nfsd code, so I *think* it's just relying on
the vfs for any file type checks.

--b.