From b6d4028166891f4797bf30f487d4b899eda2ef6f Mon Sep 17 00:00:00 2001 From: "Andrey V. Elsukov" Date: Mon, 2 Aug 2010 10:26:15 +0000 Subject: [PATCH] Release access for consumers that are opened, but will be destroyed indirectly by orphan method. PR: 148688 Silence from: marcel Approved by: mav (mentor) MFC after: 2 weeks --- sys/geom/part/g_part.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/sys/geom/part/g_part.c b/sys/geom/part/g_part.c index 98ec7028f4ef..2129f390dff6 100644 --- a/sys/geom/part/g_part.c +++ b/sys/geom/part/g_part.c @@ -1739,6 +1739,7 @@ static void g_part_orphan(struct g_consumer *cp) { struct g_provider *pp; + struct g_part_table *table; pp = cp->provider; KASSERT(pp != NULL, (__func__)); @@ -1746,6 +1747,9 @@ g_part_orphan(struct g_consumer *cp) g_topology_assert(); KASSERT(pp->error != 0, (__func__)); + table = cp->geom->softc; + if (table->gpt_opened) + g_access(cp, -1, -1, -1); g_part_wither(cp->geom, pp->error); }