freebsd-nq/sys/fs
Rick Macklem 175b3f31d3 Both NFS clients can deadlock when using the "rdirplus" mount
option. This can occur when an nfsiod thread that already holds
a buffer lock attempts to acquire a vnode lock on an entry in
the directory (a LOR) when another thread holding the vnode lock
is waiting on an nfsiod thread. This patch avoids the deadlock by disabling
readahead for this case, so the nfsiod threads never do readdirplus.
Since readaheads for directories need the directory offset cookie
from the previous read, they cannot normally happen in parallel.
As such, testing by jhb@ and myself didn't find any performance
degredation when this patch is applied. If there is a case where
this results in a significant performance degradation, mounting
without the "rdirplus" option can be done to re-enable readahead
for directories.

Reported and tested by:	jhb
Reviewed by:	jhb
MFC after:	2 weeks
2013-04-18 13:09:04 +00:00
..
cd9660 Add currently unused flag argument to the cluster_read(), 2013-03-14 20:28:26 +00:00
deadfs The deadfs VOPs for vop_ioctl and vop_bmap call itself recursively, 2012-09-13 13:05:45 +00:00
devfs - Correct mispellings of the word necessary 2013-04-17 11:42:40 +00:00
ext2fs Prepare to replace the buf splay with a trie: 2013-04-06 22:21:23 +00:00
fdescfs Merge Capsicum overhaul: 2013-03-02 00:53:12 +00:00
fifofs I am comparing current pipe code with the one in 8.3-STABLE r236165, 2012-07-31 05:48:35 +00:00
fuse Switch the vm_object mutex to be a rwlock. This will enable in the 2013-03-09 02:32:23 +00:00
msdosfs - Correct spelling in comments 2013-04-17 11:56:11 +00:00
nandfs Remove the last use of the deprecated MNT_VNODE_FOREACH interface in 2013-01-03 19:01:56 +00:00
nfs Revamp the old NFS server's File Handle Affinity (FHA) code so that 2013-04-17 21:00:22 +00:00
nfsclient Both NFS clients can deadlock when using the "rdirplus" mount 2013-04-18 13:09:04 +00:00
nfsserver Move the NFS FHA (File Handle Affinity) code from sys/nfsserver to 2013-04-17 22:42:43 +00:00
nullfs nullfs: Improve f_flags in statfs(). 2013-03-02 12:42:23 +00:00
procfs Switch the vm_object mutex to be a rwlock. This will enable in the 2013-03-09 02:32:23 +00:00
pseudofs Complete MPSAFE VFS interface and remove MNTK_MPSAFE flag. 2012-11-09 18:02:25 +00:00
smbfs smbfs_lookup() in the DOTDOT case operates on dvp->n_parent without 2013-03-09 13:25:45 +00:00
tmpfs - Constify local path variable for chflagsat(). 2013-03-22 07:40:34 +00:00
udf Add currently unused flag argument to the cluster_read(), 2013-03-14 20:28:26 +00:00
unionfs r16312 is not any longer real since many years (likely since when VFS 2012-11-19 22:43:45 +00:00