freebsd-skq/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 Rename the kthread_xxx (e.g. kthread_create()) calls 2007-10-20 23:23:23 +00:00
cache Despite several examples in the kernel, the third argument of 2007-06-04 18:25:08 +00:00
concat Add sbuf_new_auto as a shortcut for the very common case of creating a 2008-08-09 11:14:05 +00:00
eli Style(9). 2008-08-12 20:19:08 +00:00
gate Bump copyright year. 2006-09-08 10:20:44 +00:00
journal Improve VFS locking: 2008-11-02 10:15:42 +00:00
label o s/resiserfs_sb/reiserfs_sb/. 2007-11-16 19:43:26 +00:00
linux_lvm Add a geom class to map Linux LVM logical volumes. 2008-02-20 07:45:36 +00:00
mirror Rename the kthread_xxx (e.g. kthread_create()) calls 2007-10-20 23:23:23 +00:00
multipath Rename the kthread_xxx (e.g. kthread_create()) calls 2007-10-20 23:23:23 +00:00
nop Remove trailing spaces. 2006-09-30 08:16:49 +00:00
part Add support for reading Tivo Series 1 partitioning. This likely needs 2008-11-02 03:02:56 +00:00
raid3 Rename the kthread_xxx (e.g. kthread_create()) calls 2007-10-20 23:23:23 +00:00
shsec Add BIO_FLUSH support to GSHSEC class. 2006-11-01 12:30:51 +00:00
stripe Add sbuf_new_auto as a shortcut for the very common case of creating a 2008-08-09 11:14:05 +00:00
uzip If compressed length is zero, return a zero-filled block. 2007-04-24 06:30:06 +00:00
vinum - Import macros used in gmirror for printing gvinum debug messages and making 2008-10-26 17:20:37 +00:00
virstor Avoid NULL deference. 2008-06-30 15:21:42 +00:00
zero Remove trailing spaces. 2006-02-01 12:06:01 +00:00
geom_aes.c Don't pass error value pointer to g_read_data(9) at all if we don't 2005-11-30 22:15:00 +00:00
geom_bsd_enc.c Decode as many or as few partition entries as the label claims there 2007-12-09 22:44:22 +00:00
geom_bsd.c Only attach to a GPT partition if it has the GPT_ENT_TYPE_FREEBSD type. 2007-12-06 09:20:27 +00:00
geom_ccd.c Add sbuf_new_auto as a shortcut for the very common case of creating a 2008-08-09 11:14:05 +00:00
geom_ctl.c Add sbuf_new_auto as a shortcut for the very common case of creating a 2008-08-09 11:14:05 +00:00
geom_ctl.h
geom_dev.c Remove unit2minor() use from kernel code. 2008-09-26 14:19:52 +00:00
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 - Extend disk structure to allow to store disk's serial number, which can be 2007-05-05 17:12:15 +00:00
geom_dump.c Make the kern.geom.conftxt sysctl more usable by also dumping the 2005-11-12 20:02:02 +00:00
geom_event.c When orphaning a provider, cancel events related to it. 2007-09-27 20:18:34 +00:00
geom_fox.c Don't pass error value pointer to g_read_data(9) at all if we don't 2005-11-30 22:15:00 +00:00
geom_int.h
geom_io.c Just a fixup for a KTRACE message I stumbled upon many moons ago. 2008-09-18 15:02:19 +00:00
geom_kern.c Add sbuf_new_auto as a shortcut for the very common case of creating a 2008-08-09 11:14:05 +00:00
geom_mbr_enc.c
geom_mbr.c Don't pass error value pointer to g_read_data(9) at all if we don't 2005-11-30 22:15:00 +00:00
geom_pc98_enc.c
geom_pc98.c Don't pass error value pointer to g_read_data(9) at all if we don't 2005-11-30 22:15:00 +00:00
geom_slice.c Add sbuf_new_auto as a shortcut for the very common case of creating a 2008-08-09 11:14:05 +00:00
geom_slice.h Allow to use g_slice_orphan() from outside. 2006-02-18 11:21:17 +00:00
geom_subr.c Add sbuf_new_auto as a shortcut for the very common case of creating a 2008-08-09 11:14:05 +00:00
geom_sunlabel_enc.c
geom_sunlabel.c Don't pass error value pointer to g_read_data(9) at all if we don't 2005-11-30 22:15:00 +00:00
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 Don't pass error value pointer to g_read_data(9) at all if we don't 2005-11-30 22:15:00 +00:00
geom.h Add g_retaste(), which given a class will present all non-open providers 2008-03-23 01:23:35 +00:00
notes