+/*
+ * Put a buffer on the clean list after I/O is done.
+ * Called from biodone.
+ */
+swdone(bp)
+ register struct buf *bp;
+{
+ register int s;
+
+ if (bp->b_flags & B_ERROR)
+ panic("IO err in push");
+ s = spl6();
+ bp->av_forw = bclnlist;
+ cnt.v_pgout++;
+ cnt.v_pgpgout += bp->b_bcount / NBPG;
+ bclnlist = bp;
+ if (bswlist.b_flags & B_WANTED)
+ wakeup((caddr_t)&proc[2]);
+ splx(s);
+}
+