opnsense-src/sys/gnu/fs/ext2fs
Attilio Rao 83b3bdbc8a Improve VFS locking:
- Implement real draining for vfs consumers by not relying on the
  mnt_lock and using instead a refcount in order to keep track of lock
  requesters.
- Due to the change above, remove the mnt_lock lockmgr because it is now
  useless.
- Due to the change above, vfs_busy() is no more linked to a lockmgr.
  Change so its KPI by removing the interlock argument and defining 2 new
  flags for it: MBF_NOWAIT which basically replaces the LK_NOWAIT of the
  old version (which was unlinked from the lockmgr alredy) and
  MBF_MNTLSTLOCK which provides the ability to drop the mountlist_mtx
  once the mnt interlock is held (ability still desired by most consumers).
- The stub used into vfs_mount_destroy(), that allows to override the
  mnt_ref if running for more than 3 seconds, make it totally useless.
  Remove it as it was thought to work into older versions.
  If a problem of "refcount held never going away" should appear, we will
  need to fix properly instead than trust on such hackish solution.
- Fix a bug where returning (with an error) from dounmount() was still
  leaving the MNTK_MWAIT flag on even if it the waiters were actually
  woken up. Just a place in vfs_mount_destroy() is left because it is
  going to recycle the structure in any case, so it doesn't matter.
- Remove the markercnt refcount as it is useless.

This patch modifies VFS ABI and breaks KPI for vfs_busy() so manpages and
__FreeBSD_version will be modified accordingly.

Discussed with:	kib
Tested by:	pho
2008-11-02 10:15:42 +00:00
..
COPYRIGHT.INFO Updated/corrected the list of GPL'ed files. 2000-01-01 11:27:50 +00:00
ext2_alloc.c Fix -Wundef warnings found when compiling i386 LINT, GENERIC and 2005-12-05 11:58:35 +00:00
ext2_balloc.c Fix -Wundef warnings found when compiling i386 LINT, GENERIC and 2005-12-05 11:58:35 +00:00
ext2_bitops.h Repair ext2fs writes. 2006-04-13 19:37:32 +00:00
ext2_bmap.c - Move rusage from being per-process in struct pstats to per-thread in 2007-06-01 01:12:45 +00:00
ext2_extern.h Use vfs_hash() instead of home-rolled 2005-03-14 13:30:06 +00:00
ext2_fs.h Add standard GPL boilerplate to these files. They are the only ones 2005-06-16 06:51:38 +00:00
ext2_fs_sb.h Add standard GPL boilerplate to these files. They are the only ones 2005-06-16 06:51:38 +00:00
ext2_inode.c Retire the MALLOC and FREE macros. They are an abomination unto style(9). 2008-10-23 15:53:51 +00:00
ext2_inode_cnv.c Move ext2fs from src/gnu to src/gnu/fs. 2005-06-15 02:36:11 +00:00
ext2_linux_balloc.c Add standard GPL boilerplate to these files. They are the only ones 2005-06-16 06:51:38 +00:00
ext2_linux_ialloc.c Fix -Wundef from compiling the amd64 LINT. 2005-12-04 10:06:06 +00:00
ext2_lookup.c Retire the MALLOC and FREE macros. They are an abomination unto style(9). 2008-10-23 15:53:51 +00:00
ext2_mount.h /* -> /*- for copyright notices, minor format tweaks as necessary 2005-01-06 18:27:30 +00:00
ext2_readwrite.c /* -> /*- for copyright notices, minor format tweaks as necessary 2005-01-06 18:27:30 +00:00
ext2_subr.c Move ext2fs from src/gnu to src/gnu/fs. 2005-06-15 02:36:11 +00:00
ext2_vfsops.c Improve VFS locking: 2008-11-02 10:15:42 +00:00
ext2_vnops.c Introduce accmode_t. This is required for NFSv4 ACLs - it will be neccessary 2008-10-28 13:44:11 +00:00
fs.h VOP_LOCK1() (and so VOP_LOCK()) and VOP_UNLOCK() are only used in 2008-01-13 14:44:15 +00:00
i386-bitops.h Add standard GPL boilerplate to these files. They are the only ones 2005-06-16 06:51:38 +00:00
inode.h Move the head of byte-level advisory lock list from the 2008-04-16 11:33:32 +00:00
sparc64-bitops.h Add standard GPL boilerplate to these files. They are the only ones 2005-06-16 06:51:38 +00:00