Hi Frank. ----- Original Message ----- > From: "Frank van der Linden" <fllinden@xxxxxxxxxx> > To: "linux-nfs" <linux-nfs@xxxxxxxxxxxxxxx>, "Anna Schumaker" <anna.schumaker@xxxxxxxxxx>, "Trond Myklebust" > <trond.myklebust@xxxxxxxxxxxxxxx> > Cc: "Frank van der Linden" <fllinden@xxxxxxxxxx> > Sent: Thursday, March 26, 2020 12:10:38 AM > Subject: [PATCH v2 00/13] NFS client user xattr (RFC8276) support > v1 is here: https://www.spinics.net/lists/linux-nfs/msg76740.html > > v2: > > * Move nfs4 specific definitions to nfs_fs4.h > * Squash some patches together to avoid unused function warnings > when bisecting. > * Made determining server support a two-step process. First, > the extended attribute FATTR is verified to be supported, then > the value of the attributed is queried in fsinfo to determine > support. The new patchset looks broken to me. Client quiryes for supported attributes and gets xattr_support bit set: Mar 26 11:27:07 ani.desy.de kernel: decode_attr_supported: bitmask=fcffbfff:40fdbe3e:00040800 However, the attribute never queries, but client makes is decision: Mar 26 11:27:07 ani.desy.de kernel: decode_attr_xattrsupport: XATTR support=false The packets can be found here: https://sas.desy.de/index.php/s/GEPiBxPg3eR4aGA Can you provide packets of your mount/umount round. Regards, Tigran. > * Fixed up Makefile to remove an unneeded extra line. > > This was tested as before (using my own stress tests), but also > with xfstests-dev. No issues were found, but xfstests needs some > fixes to correctly run the applicable xattr tests on NFS. I > have those changes, but need to send them out. > > I also tested stress-ng-xattr with 1000 workers on the client > side, running for 8 hours without problems (except for noting > that the session tbl_lock can become quite hot when doing > NFS operations by 1000 threads, but that's a separate issue). > > > Frank van der Linden (13): > nfs,nfsd: NFSv4.2 extended attribute protocol definitions > nfs: add client side only definitions for user xattrs > NFSv4.2: define limits and sizes for user xattr handling > NFSv4.2: query the server for extended attribute support > NFSv4.2: add client side XDR handling for extended attributes > nfs: define nfs_access_get_cached function > NFSv4.2: query the extended attribute access bits > nfs: modify update_changeattr to deal with regular files > nfs: define and use the NFS_INO_INVALID_XATTR flag > nfs: make the buf_to_pages_noslab function available to the nfs code > NFSv4.2: add the extended attribute proc functions. > NFSv4.2: hook in the user extended attribute handlers > NFSv4.2: add client side xattr caching. > > fs/nfs/Makefile | 2 +- > fs/nfs/client.c | 22 +- > fs/nfs/dir.c | 24 +- > fs/nfs/inode.c | 16 +- > fs/nfs/nfs42.h | 24 + > fs/nfs/nfs42proc.c | 248 ++++++++ > fs/nfs/nfs42xattr.c | 1083 +++++++++++++++++++++++++++++++++++ > fs/nfs/nfs42xdr.c | 438 ++++++++++++++ > fs/nfs/nfs4_fs.h | 35 ++ > fs/nfs/nfs4client.c | 31 + > fs/nfs/nfs4proc.c | 237 +++++++- > fs/nfs/nfs4super.c | 10 + > fs/nfs/nfs4xdr.c | 31 + > fs/nfs/nfstrace.h | 3 +- > include/linux/nfs4.h | 25 + > include/linux/nfs_fs.h | 12 + > include/linux/nfs_fs_sb.h | 6 + > include/linux/nfs_xdr.h | 60 +- > include/uapi/linux/nfs4.h | 3 + > include/uapi/linux/nfs_fs.h | 1 + > 20 files changed, 2269 insertions(+), 42 deletions(-) > create mode 100644 fs/nfs/nfs42xattr.c > > -- > 2.17.2