freebsd-nq/sys/fs
John Baldwin 33fc362512 Add a new internal mount flag (MNTK_EXTENDED_SHARED) to indicate that a
filesystem supports additional operations using shared vnode locks.
Currently this is used to enable shared locks for open() and close() of
read-only file descriptors.
- When an ISOPEN namei() request is performed with LOCKSHARED, use a
  shared vnode lock for the leaf vnode only if the mount point has the
  extended shared flag set.
- Set LOCKSHARED in vn_open_cred() for requests that specify O_RDONLY but
  not O_CREAT.
- Use a shared vnode lock around VOP_CLOSE() if the file was opened with
  O_RDONLY and the mountpoint has the extended shared flag set.
- Adjust md(4) to upgrade the vnode lock on the vnode it gets back from
  vn_open() since it now may only have a shared vnode lock.
- Don't enable shared vnode locks on FIFO vnodes in ZFS and UFS since
  FIFO's require exclusive vnode locks for their open() and close()
  routines.  (My recent MPSAFE patches for UDF and cd9660 already included
  this change.)
- Enable extended shared operations on UFS, cd9660, and UDF.

Submitted by:	ups
Reviewed by:	pjd (ZFS bits)
MFC after:	1 month
2009-03-11 14:13:47 +00:00
..
cd9660 Add a new internal mount flag (MNTK_EXTENDED_SHARED) to indicate that a 2009-03-11 14:13:47 +00:00
coda Use shared vnode locks when invoking VOP_READDIR(). 2009-02-13 18:18:14 +00:00
deadfs Add a simple VOP_VPTOCNP implementation for deadfs which returns EBADF. 2008-12-12 00:59:36 +00:00
devfs Enable advisory file locking for devfs vnodes. 2009-03-11 12:53:16 +00:00
fdescfs Retire the MALLOC and FREE macros. They are an abomination unto style(9). 2008-10-23 15:53:51 +00:00
fifofs Tweak the output of VOP_PRINT/vn_printf() some. 2009-02-06 20:06:48 +00:00
hpfs Remove unused local variables. 2009-01-31 17:36:22 +00:00
msdosfs - Hold a reference on the cdev a filesystem is mounted from in the mount. 2009-02-27 20:00:15 +00:00
ntfs According to phk@, VOP_STRATEGY should never, _ever_, return 2008-12-16 21:13:11 +00:00
nullfs Do not use bypass for vop_vptocnp() from nullfs, call standard 2009-03-10 14:35:21 +00:00
nwfs After r186194 the *fs_strategy() functions always return 0. 2009-01-31 18:06:34 +00:00
portalfs Retire the MALLOC and FREE macros. They are an abomination unto style(9). 2008-10-23 15:53:51 +00:00
procfs Use the p_sysent->sv_flags flag SV_ILP32 to detect 32bit process 2009-03-02 18:43:50 +00:00
pseudofs Fix a logic bug that caused the pfs_attr method to be called only for 2009-02-16 15:17:26 +00:00
smbfs After r186194 the *fs_strategy() functions always return 0. 2009-01-31 18:06:34 +00:00
tmpfs Use uiomove_fromphys() instead of the combination of sf_buf and uiomove(). 2009-02-22 19:50:09 +00:00
udf Add a new internal mount flag (MNTK_EXTENDED_SHARED) to indicate that a 2009-03-11 14:13:47 +00:00
unionfs Simplify mode_t check treatment (suggested by trasz). 2008-11-25 03:49:41 +00:00