svn commit: r226011 - projects/geom-events/sys/geom/part

Andrey V. Elsukov bu7cher at yandex.ru
Wed Oct 5 05:10:48 UTC 2011


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


More information about the svn-src-projects mailing list