Index: kern_alq.c =================================================================== RCS file: /home/ncvs/src/sys/kern/kern_alq.c,v retrieving revision 1.16 diff -u -r1.16 kern_alq.c --- kern_alq.c 22 Oct 2006 11:52:12 -0000 1.16 +++ kern_alq.c 4 Mar 2007 23:30:20 -0000 @@ -224,9 +224,7 @@ /* Drain IO */ while (alq->aq_flags & (AQ_FLUSHING|AQ_ACTIVE)) { alq->aq_flags |= AQ_WANTED; - ALQ_UNLOCK(alq); - tsleep(alq, PWAIT, "aldclose", 0); - ALQ_LOCK(alq); + msleep(alq, &(alq)->aq_mtx, PWAIT, "aldclose", 0); } ALQ_UNLOCK(alq); @@ -433,9 +431,7 @@ (ale = alq->aq_entfree) == NULL && (waitok & ALQ_WAITOK)) { alq->aq_flags |= AQ_WANTED; - ALQ_UNLOCK(alq); - tsleep(alq, PWAIT, "alqget", 0); - ALQ_LOCK(alq); + msleep(alq, &(alq)->aq_mtx, PWAIT, "alqget", 0); } if (ale != NULL) {