Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 4 Dec 2013 09:46:27 +0000 (UTC)
From:      Edward Tomasz Napierala <trasz@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org
Subject:   svn commit: r258915 - stable/10/sys/dev/iscsi
Message-ID:  <201312040946.rB49kRlJ053192@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: trasz
Date: Wed Dec  4 09:46:27 2013
New Revision: 258915
URL: http://svnweb.freebsd.org/changeset/base/258915

Log:
  MFC r258790:
  
  Fix hang on reboot with active iSCSI connections.
  
  Approved by:	re (glebius)
  Sponsored by:	The FreeBSD Foundation

Modified:
  stable/10/sys/dev/iscsi/iscsi.c
Directory Properties:
  stable/10/sys/   (props changed)

Modified: stable/10/sys/dev/iscsi/iscsi.c
==============================================================================
--- stable/10/sys/dev/iscsi/iscsi.c	Wed Dec  4 08:20:04 2013	(r258914)
+++ stable/10/sys/dev/iscsi/iscsi.c	Wed Dec  4 09:46:27 2013	(r258915)
@@ -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);
 }



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201312040946.rB49kRlJ053192>