optimization for nfsd_set_fh_dentry

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



nfsd_set_fh_dentry is used in setfh and a number of other places. It calls exportfs_decode_fh_raw with an argument nfsd_acceptable.

That is a test that always returns 1 if NFSEXP_NOSUBTREECHECK is set.

However there is an optimization in exportfs_decode_fh_raw that skips a lot of file system stuff if NULL is passed as the test. A test that always returns 1 still triggers all the file system stuff, even though it's not needed. 

nfsd_set_fh_dentry should pass NULL to exportfs_decode_fh_raw if NFSEXP_NOSUBTREECHECK is set.

I discovered this while looking into a performance problem caused by a pathological client that was sending 40,000 RPCs/sec, almost all get 
GETATTR or ACCESS. It was causing the nfsd's to be stuck at 100% CPU by locks in file system code invoked by this unnecessary code.

(We fixed the client by mounting with NFS3 rather than NFS4. This suggests an issue with the NFS 4 client side. Unfortunately I don't have enough information to make a useful report.)








[Index of Archives]     [Linux Filesystem Development]     [Linux USB Development]     [Linux Media Development]     [Video for Linux]     [Linux NILFS]     [Linux Audio Users]     [Yosemite Info]     [Linux SCSI]

  Powered by Linux