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.

Gluster-devel mailing list

Reply via email to