freebsd-dev/sys/geom
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
..
bde
cache
concat
eli
gate
journal Improve VFS locking: 2008-11-02 10:15:42 +00:00
label
linux_lvm
mirror
multipath
nop
part Add support for reading Tivo Series 1 partitioning. This likely needs 2008-11-02 03:02:56 +00:00
raid3
shsec
stripe
uzip
vinum - Import macros used in gmirror for printing gvinum debug messages and making 2008-10-26 17:20:37 +00:00
virstor
zero
geom_aes.c
geom_bsd_enc.c
geom_bsd.c
geom_ccd.c
geom_ctl.c
geom_ctl.h
geom_dev.c
geom_disk.c Revert r184136. Instead, push the check for crashdumpmap overflow into the 2008-10-31 10:11:35 +00:00
geom_disk.h
geom_dump.c
geom_event.c
geom_fox.c
geom_int.h
geom_io.c
geom_kern.c
geom_mbr_enc.c
geom_mbr.c
geom_pc98_enc.c
geom_pc98.c
geom_slice.c
geom_slice.h
geom_subr.c
geom_sunlabel_enc.c
geom_sunlabel.c
geom_vfs.c Remove the struct thread unuseful argument from bufobj interface. 2008-10-10 21:23:50 +00:00
geom_vfs.h Remove the struct thread unuseful argument from bufobj interface. 2008-10-10 21:23:50 +00:00
geom_vol_ffs.c
geom.h
notes