svn commit: r301173 - head/sys/geom/mirror
Gleb Smirnoff
glebius at FreeBSD.org
Wed Jun 1 22:11:55 UTC 2016
Author: glebius
Date: Wed Jun 1 22:11:54 2016
New Revision: 301173
URL: https://svnweb.freebsd.org/changeset/base/301173
Log:
When we are in panic, always go the asynchronous path in g_mirror_destroy(),
otherwise the system will hang.
This is a temporarily least intrusive crutch to get certain panicing systems
dumping. The proper fix should question is g_mirror_destroy() should be called
on a panicing system at all.
Discussed with: mav
Modified:
head/sys/geom/mirror/g_mirror.c
Modified: head/sys/geom/mirror/g_mirror.c
==============================================================================
--- head/sys/geom/mirror/g_mirror.c Wed Jun 1 22:04:10 2016 (r301172)
+++ head/sys/geom/mirror/g_mirror.c Wed Jun 1 22:11:54 2016 (r301173)
@@ -2989,7 +2989,8 @@ g_mirror_destroy(struct g_mirror_softc *
sx_assert(&sc->sc_lock, SX_XLOCKED);
pp = sc->sc_provider;
- if (pp != NULL && (pp->acr != 0 || pp->acw != 0 || pp->ace != 0)) {
+ if (pp != NULL && (pp->acr != 0 || pp->acw != 0 || pp->ace != 0 ||
+ SCHEDULER_STOPPED())) {
switch (how) {
case G_MIRROR_DESTROY_SOFT:
G_MIRROR_DEBUG(1,
More information about the svn-src-all
mailing list