g_wither_geom(9)
NAME
- g_wither_geom - destroy geom and related providers and con
- sumers when you
get a chance
SYNOPSIS
#include <geom/geom.h> void g_wither_geom(struct g_geom *gp, int error);
DESCRIPTION
- The g_wither_geom() function tells GEOM that geom gp is to
- be destroyed.
GEOM sets an error on each provider of the given geom (in - the orphaning
process) and waits for a chance to destroy the geom. If the - access count
of any possessed consumer goes to 0, the consumer will be - detached and
destroyed automatically. If the last consumer attached to - any possessed
provider will be detached, the provider will be destroyed. - If there are
no more providers nor consumers, the geom will be destroyed. - This is an automatic ``garbage collect'' to avoid duplicated
- code in all
classes. Before it is called, field softc should be dis - posed off and set
to NULL. Note that the g_wither_geom() function gives no - guarantee that
the geom will be immediately destroyed, mostly because the - access counts
of the geom's consumers and providers may not be 0. That is - why calling
this function for every geom from a given class is not - enough to be sure
that the class can be unloaded.
RESTRICTIONS/CONDITIONS
The argument error must be nonzero.
The topology lock has to be held.
SEE ALSO
- geom(4), DECLARE_GEOM_CLASS(9), g_access(9), g_attach(9),
- g_bio(9),
g_consumer(9), g_data(9), g_event(9), g_geom(9), - g_provider(9),
g_provider_by_name(9)
AUTHORS
- This manual page was written by Pawel Jakub Dawidek
- <pjd@FreeBSD.org>.
- BSD January 16, 2004