Author: markj
Date: Mon Jan  8 15:41:49 2018
New Revision: 327698
URL: https://svnweb.freebsd.org/changeset/base/327698

Log:
  Release the queue lock before restarting the worker loop.
  
  Reported and tested by:       pho
  MFC after:    3 days
  Sponsored by: Dell EMC Isilon

Modified:
  head/sys/geom/mirror/g_mirror.c

Modified: head/sys/geom/mirror/g_mirror.c
==============================================================================
--- head/sys/geom/mirror/g_mirror.c     Mon Jan  8 15:41:48 2018        
(r327697)
+++ head/sys/geom/mirror/g_mirror.c     Mon Jan  8 15:41:49 2018        
(r327698)
@@ -1964,8 +1964,10 @@ g_mirror_worker(void *arg)
                                        continue;
                                }
                        }
-                       if (g_mirror_event_first(sc) != NULL)
+                       if (g_mirror_event_first(sc) != NULL) {
+                               mtx_unlock(&sc->sc_queue_mtx);
                                continue;
+                       }
                        sx_xunlock(&sc->sc_lock);
                        MSLEEP(sc, &sc->sc_queue_mtx, PRIBIO | PDROP, "m:w1",
                            timeout * hz);
_______________________________________________
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to