aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEdward Tomasz Napierala <trasz@FreeBSD.org>2013-12-01 08:13:10 +0000
committerEdward Tomasz Napierala <trasz@FreeBSD.org>2013-12-01 08:13:10 +0000
commitc4dfe4abe23dd2481f0ab9125bef4e06bde37a8f (patch)
treecd0d7767c599d417846e584e5e6a9ed71eb82db5
parent2e436d88a3c8cebf8f83f688a1d0ae283cfd5927 (diff)
Notes
-rw-r--r--sys/dev/iscsi/iscsi.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/sys/dev/iscsi/iscsi.c b/sys/dev/iscsi/iscsi.c
index 1e65416b2aa27..2f5328db3229c 100644
--- a/sys/dev/iscsi/iscsi.c
+++ b/sys/dev/iscsi/iscsi.c
@@ -2110,10 +2110,12 @@ iscsi_load(void)
sc->sc_cdev->si_drv1 = sc;
/*
- * XXX: For some reason this doesn't do its job; active sessions still hang out there
- * after final sync, making the reboot effectively hang.
+ * Note that this needs to get run before dashutdown(). Otherwise,
+ * when rebooting with iSCSI session with outstanding requests,
+ * but disconnected, dashutdown() will hang on cam_periph_runccb().
*/
- sc->sc_shutdown_eh = EVENTHANDLER_REGISTER(shutdown_post_sync, iscsi_shutdown, sc, SHUTDOWN_PRI_DEFAULT);
+ sc->sc_shutdown_eh = EVENTHANDLER_REGISTER(shutdown_post_sync,
+ iscsi_shutdown, sc, SHUTDOWN_PRI_FIRST);
return (0);
}