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>