Date: Fri, 4 Jun 2004 10:26:59 +0200 From: Pawel Jakub Dawidek <pjd@FreeBSD.org> To: geom@freebsd.org Subject: spoiled but acr = 1. Message-ID: <20040604082659.GI12007@darkness.comp.waw.pl>
next in thread | raw e-mail | index | archive | help
--0FRtVia6Q6lt+M0P Content-Type: text/plain; charset=iso-8859-2 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Hi. While working on geom_mirror and using geom_nop I've found that this is possible to panic geom in this way: We have providers: md0 and md0.nop (attached to md0, but not opened). We load new class (geom_mirror). GEOM gives provider md0 for taste. Class is tasting md0 and opening it with r1w1e1. Provider was opened for writing so all md0's consumers are marked as beeing spoiled (md0.nop -> md0 consumer too) and g_spoil_event is send. Before g_spoil_event can be proceeded we're still in g_new_provider event and the next provider to taste is md0.nop. Class is trying to open md0.nop for reading. Provider md0.nop is trying to open through its consumer (which was marked as beeing spoiled) provider md0 and... panic. I'm not sure how to solve this yet. Maybe before we give provider for taste we should check if any of its consumer is marked as beeing spoiled. But when we should return with taste of this provider? Hmm, or maybe something like this: http://people.freebsd.org/~pjd/patches/geom_subr.c.14.patch but I'm afraid we can cancel too much. --=20 Pawel Jakub Dawidek http://www.FreeBSD.org pjd@FreeBSD.org http://garage.freebsd.pl FreeBSD committer Am I Evil? Yes, I Am! --0FRtVia6Q6lt+M0P Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (FreeBSD) iD8DBQFAwDJTForvXbEpPzQRAtobAKDidZOQ/RG70G6Sm5MuO5xwQgq0dwCgudPl TqikDgnNKmA7LFxG6GXRMvQ= =0B8G -----END PGP SIGNATURE----- --0FRtVia6Q6lt+M0P--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20040604082659.GI12007>