From owner-freebsd-geom@FreeBSD.ORG Wed Oct 3 14:53:24 2012 Return-Path: Delivered-To: freebsd-geom@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 5B4D3106566B for ; Wed, 3 Oct 2012 14:53:24 +0000 (UTC) (envelope-from avg@FreeBSD.org) Received: from citadel.icyb.net.ua (citadel.icyb.net.ua [212.40.38.140]) by mx1.freebsd.org (Postfix) with ESMTP id AB3708FC12 for ; Wed, 3 Oct 2012 14:53:23 +0000 (UTC) Received: from odyssey.starpoint.kiev.ua (alpha-e.starpoint.kiev.ua [212.40.38.101]) by citadel.icyb.net.ua (8.8.8p3/ICyb-2.3exp) with ESMTP id RAA07329; Wed, 03 Oct 2012 17:53:20 +0300 (EEST) (envelope-from avg@FreeBSD.org) Message-ID: <506C5160.4020206@FreeBSD.org> Date: Wed, 03 Oct 2012 17:53:20 +0300 From: Andriy Gapon User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:15.0) Gecko/20120911 Thunderbird/15.0.1 MIME-Version: 1.0 To: "Andrey V. Elsukov" References: <505DF409.9070908@FreeBSD.org> <505FE141.5070803@yandex.ru> In-Reply-To: <505FE141.5070803@yandex.ru> X-Enigmail-Version: 1.4.3 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Cc: freebsd-geom@FreeBSD.org Subject: Re: re-tasting of providers held with withering consumers X-BeenThere: freebsd-geom@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: GEOM-specific discussions and implementations List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 03 Oct 2012 14:53:24 -0000 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