Date: Wed, 05 Oct 2011 09:10:45 +0400 From: "Andrey V. Elsukov" <bu7cher@yandex.ru> To: "Lev A. Serebryakov" <lev@FreeBSD.org> Cc: svn-src-projects@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r226011 - projects/geom-events/sys/geom/part Message-ID: <4E8BE6D5.9030107@yandex.ru> In-Reply-To: <201110041708.p94H8O8f069977@svn.freebsd.org> References: <201110041708.p94H8O8f069977@svn.freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On 04.10.2011 21:08, Lev A. Serebryakov wrote: > Author: lev (ports committer) > Date: Tue Oct 4 17:08:24 2011 > New Revision: 226011 > URL: http://svn.freebsd.org/changeset/base/226011 > > Log: > Add g_notify_*() calls to geom_part > > Modified: > projects/geom-events/sys/geom/part/g_part.c > > Modified: projects/geom-events/sys/geom/part/g_part.c > ============================================================================== > --- projects/geom-events/sys/geom/part/g_part.c Tue Oct 4 17:07:56 2011 (r226010) > +++ projects/geom-events/sys/geom/part/g_part.c Tue Oct 4 17:08:24 2011 (r226011) > @@ -2016,6 +2016,7 @@ g_part_orphan(struct g_consumer *cp) > { > struct g_provider *pp; > struct g_part_table *table; > + struct g_part_entry *e; > > pp = cp->provider; > KASSERT(pp != NULL, ("%s", __func__)); > @@ -2026,6 +2027,11 @@ g_part_orphan(struct g_consumer *cp) > table = cp->geom->softc; > if (table != NULL && table->gpt_opened) > g_access(cp, -1, -1, -1); > + > + LIST_FOREACH(e, &table->gpt_entry, gpe_entry) { > + g_notify_destroyed(e->gpe_pp); > + } > + In some cases you can get panic here. Also geom_part can destroy its providers in several places, not only when it is orphaned. -- WBR, Andrey V. Elsukov
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4E8BE6D5.9030107>