summaryrefslogtreecommitdiffstats
path: root/sys/geom/geom_slice.c
diff options
context:
space:
mode:
authormarcel <marcel@FreeBSD.org>2006-04-10 03:55:13 +0000
committermarcel <marcel@FreeBSD.org>2006-04-10 03:55:13 +0000
commitc168f9530e1b94a463b6747ea1f1bcb5b4ab8cbf (patch)
tree81cff68e80c2afb7c70386d60e4b5557ec440179 /sys/geom/geom_slice.c
parent271e02009f1ba97cb64faec0aef6565c45658e3e (diff)
downloadFreeBSD-src-c168f9530e1b94a463b6747ea1f1bcb5b4ab8cbf.zip
FreeBSD-src-c168f9530e1b94a463b6747ea1f1bcb5b4ab8cbf.tar.gz
Add g_wither_provider() to abstract the details of destroying a
particular provider. Use this function where g_orphan_provider() is being called so that the flags are updated correctly and g_orphan_provider() is called only when allowed.
Diffstat (limited to 'sys/geom/geom_slice.c')
-rw-r--r--sys/geom/geom_slice.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/sys/geom/geom_slice.c b/sys/geom/geom_slice.c
index 97b58f5..2cf3385 100644
--- a/sys/geom/geom_slice.c
+++ b/sys/geom/geom_slice.c
@@ -338,8 +338,7 @@ g_slice_config(struct g_geom *gp, u_int idx, int how, off_t offset, off_t length
return (0);
if (bootverbose)
printf("GEOM: Deconfigure %s\n", pp->name);
- pp->flags |= G_PF_WITHER;
- g_orphan_provider(pp, ENXIO);
+ g_wither_provider(pp, ENXIO);
gsl->provider = NULL;
gsp->nprovider--;
return (0);
OpenPOWER on IntegriCloud