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);
 }
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "[email protected]"

Reply via email to