diff options
author | pjd <pjd@FreeBSD.org> | 2005-07-17 13:15:02 +0000 |
---|---|---|
committer | pjd <pjd@FreeBSD.org> | 2005-07-17 13:15:02 +0000 |
commit | e180bbc58e398b413d1f6290b995532422fb2a57 (patch) | |
tree | f03735fde9599b7964ac8e69e729a5db2fbd5fd0 /sys/geom | |
parent | 8462e72cfb5f746807b7c16cfc8cc25893b975f9 (diff) | |
download | FreeBSD-src-e180bbc58e398b413d1f6290b995532422fb2a57.zip FreeBSD-src-e180bbc58e398b413d1f6290b995532422fb2a57.tar.gz |
Before calling g_orphan_provider(), add G_PF_WITHER flag, so GEOM will know
to destroy it.
PR: kern/81758
Submitted by: trasz <trasz@buziaczek.pl>
MFC after: 3 days
Diffstat (limited to 'sys/geom')
-rw-r--r-- | sys/geom/concat/g_concat.c | 1 | ||||
-rw-r--r-- | sys/geom/stripe/g_stripe.c | 1 |
2 files changed, 2 insertions, 0 deletions
diff --git a/sys/geom/concat/g_concat.c b/sys/geom/concat/g_concat.c index f64ae0a..bb5b232 100644 --- a/sys/geom/concat/g_concat.c +++ b/sys/geom/concat/g_concat.c @@ -124,6 +124,7 @@ g_concat_remove_disk(struct g_concat_disk *disk) disk->d_consumer = NULL; if (sc->sc_provider != NULL) { + sc->sc_provider->flags |= G_PF_WITHER; g_orphan_provider(sc->sc_provider, ENXIO); sc->sc_provider = NULL; G_CONCAT_DEBUG(0, "Device %s removed.", sc->sc_name); diff --git a/sys/geom/stripe/g_stripe.c b/sys/geom/stripe/g_stripe.c index 6fb8609..3f66102 100644 --- a/sys/geom/stripe/g_stripe.c +++ b/sys/geom/stripe/g_stripe.c @@ -171,6 +171,7 @@ g_stripe_remove_disk(struct g_consumer *cp) sc->sc_disks[no] = NULL; if (sc->sc_provider != NULL) { + sc->sc_provider->flags |= G_PF_WITHER; g_orphan_provider(sc->sc_provider, ENXIO); sc->sc_provider = NULL; G_STRIPE_DEBUG(0, "Device %s removed.", sc->sc_name); |