On 03/06/2018 10:10 PM, Kinglong Mee wrote:
On 2018/3/7 10:59, Kinglong Mee wrote:
When using nfsv3 on glusterfs-3.13.1-1.el7.x86_64 and 
I gets strange "Invalid argument" when writing file.

1. With quota disabled;
nfs client mount nfs-ganesha share, and do 'll' in the testing directory.

2. Enable quota;
# getfattr -d -m . -e hex /root/rpmbuild/gvtest/nfs-ganesha/testfile92
getfattr: Removing leading '/' from absolute path names
# file: root/rpmbuild/gvtest/nfs-ganesha/testfile92

Notice: testfile92 without trusted.pgfid xattr.

The trusted.pgfid will be created by the next name lookup; nameless lookup 
don't create it.

3. restart glusterfs volume by "gluster volume stop/start gvtest"

Restarting glusterfsd here cleanup all inode cache from memory;
after starting, inode of testfile92's parent is NULL.

4. echo somedata > testfile92

Because, nfs-ganesha and nfs client has cache for testfile92,
before write fops, no name lookup happens that trusted.pgfid is not created for 

Quota_writev call quota_build_ancestry building the ancestry in 
but testfile92 doesn't contain trusted.pgfid, so that write fops failed with 
Invalid argument.

I have no idea of fixing this problem, any comments are welcome.

I think, ideally, Gluster would send an invalidate upcall under the circumstances, causing Ganesha do drop it's cached entry.


Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
Nfs-ganesha-devel mailing list

Reply via email to