Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 03 Oct 2012 17:53:20 +0300
From:      Andriy Gapon <avg@FreeBSD.org>
To:        "Andrey V. Elsukov" <bu7cher@yandex.ru>
Cc:        freebsd-geom@FreeBSD.org
Subject:   Re: re-tasting of providers held with withering consumers
Message-ID:  <506C5160.4020206@FreeBSD.org>
In-Reply-To: <505FE141.5070803@yandex.ru>
References:  <505DF409.9070908@FreeBSD.org> <505FE141.5070803@yandex.ru>

next in thread | previous in thread | raw e-mail | index | archive | help
on 24/09/2012 07:27 Andrey V. Elsukov said the following:
> On 22.09.2012 21:23, Andriy Gapon wrote:
>>
>> Because removal of withered geoms is done asynchronously, there is a window when
>> some provider may require re-tasting (because of media change or size change),
>> but it would still be in use by the withering geom.  That prevents re-tasting a
>> class of that withering geom (for obvious reasons).
>>
>> The following patch tries to trigger owed re-tasting after the withering
>> provider is gone for good:
>> http://people.freebsd.org/~avg/geom-withered-retaste.diff
> 
> Hi, Andriy,
> 
> it seems you forgot to include g_renew_provider() implementation into the patch.
> 

Oh, yes, it is as simple as:
void
g_renew_provider(struct g_provider *pp)
{

	g_topology_assert();
	G_VALID_PROVIDER(pp);
	KASSERT(!(pp->geom->flags & G_GEOM_WITHER),
	    ("renew provider on WITHERing geom(%s) (class %s)",
	    pp->geom->name, pp->geom->class->name));
	g_post_event(g_new_provider_event, pp, M_WAITOK, pp, NULL);
}

I actually borrowed it from a patch of yours :-)

-- 
Andriy Gapon



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?506C5160.4020206>