Date: Wed, 06 Sep 2006 21:03:34 -0400 From: Michael Butler <imb@protected-networks.net> To: Volker <volker@vwsoft.com> Cc: freebsd-stable@freebsd.org Subject: Re: gmirror RAID-1: rebuilding freezes machine Message-ID: <44FF6FE6.4080602@protected-networks.net> In-Reply-To: <44FF5B02.3090804@vwsoft.com> References: <44FF4909.9020108@vwsoft.com> <44FF5B02.3090804@vwsoft.com>
next in thread | previous in thread | raw e-mail | index | archive | help
This is a multi-part message in MIME format. --------------010702000506000506010009 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 I'm backing out the attached change to see if it fixes it .. Michael -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.5 (FreeBSD) iD8DBQFE/2/mQv9rrgRC1JIRArNYAJsEuTtrmig9bdW4aDQQ8W1May+EfQCfUjDQ Xc1A9gUrrLS2jgbDP4xyC7I= =5DtW -----END PGP SIGNATURE----- --------------010702000506000506010009 Content-Type: text/plain; name="gmirror-1.66.2.7-1.66.2.8-patch" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="gmirror-1.66.2.7-1.66.2.8-patch" Index: src/sys/geom/mirror/g_mirror.c =================================================================== RCS file: /usr/home/ncvs/src/sys/geom/mirror/g_mirror.c,v retrieving revision 1.66.2.7 retrieving revision 1.66.2.8 diff -u -r1.66.2.7 -r1.66.2.8 --- src/sys/geom/mirror/g_mirror.c 16 Jul 2006 15:47:46 -0000 1.66.2.7 +++ src/sys/geom/mirror/g_mirror.c 4 Sep 2006 12:55:43 -0000 1.66.2.8 @@ -1813,12 +1813,19 @@ bioq_remove(&sc->sc_queue, bp); mtx_unlock(&sc->sc_queue_mtx); - if ((bp->bio_cflags & G_MIRROR_BIO_FLAG_REGULAR) != 0) - g_mirror_regular_request(bp); - else if ((bp->bio_cflags & G_MIRROR_BIO_FLAG_SYNC) != 0) - g_mirror_sync_request(bp); - else + if (bp->bio_to != sc->sc_provider) { + if ((bp->bio_cflags & G_MIRROR_BIO_FLAG_REGULAR) != 0) + g_mirror_regular_request(bp); + else if ((bp->bio_cflags & G_MIRROR_BIO_FLAG_SYNC) != 0) + g_mirror_sync_request(bp); + else { + KASSERT(0, + ("Invalid request cflags=0x%hhx to=%s.", + bp->bio_cflags, bp->bio_to->name)); + } + } else { g_mirror_register_request(bp); + } G_MIRROR_DEBUG(5, "%s: I'm here 9.", __func__); } } --------------010702000506000506010009--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?44FF6FE6.4080602>