diff options
| author | ad <ad@NetBSD.org> | 2007-07-09 20:51:58 +0000 |
|---|---|---|
| committer | ad <ad@NetBSD.org> | 2007-07-09 20:51:58 +0000 |
| commit | 88ab7da936c561aba9ff7492617ffb08f8d08ece (patch) | |
| tree | d9d78b17ff651178241606f2e7766abdd0f15137 /sys/dev/fss.c | |
| parent | 317bac119f13240650ea6882854b381cf1024fa1 (diff) | |
Merge some of the less invasive changes from the vmlocking branch:
- kthread, callout, devsw API changes
- select()/poll() improvements
- miscellaneous MT safety improvements
Diffstat (limited to 'sys/dev/fss.c')
| -rw-r--r-- | sys/dev/fss.c | 30 |
1 files changed, 15 insertions, 15 deletions
diff --git a/sys/dev/fss.c b/sys/dev/fss.c index 120184c5d3d..f812b34b29c 100644 --- a/sys/dev/fss.c +++ b/sys/dev/fss.c @@ -1,4 +1,4 @@ -/* $NetBSD: fss.c,v 1.32 2007/03/04 06:01:42 christos Exp $ */ +/* $NetBSD: fss.c,v 1.33 2007/07/09 21:00:28 ad Exp $ */ /*- * Copyright (c) 2003 The NetBSD Foundation, Inc. @@ -43,7 +43,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: fss.c,v 1.32 2007/03/04 06:01:42 christos Exp $"); +__KERNEL_RCSID(0, "$NetBSD: fss.c,v 1.33 2007/07/09 21:00:28 ad Exp $"); #include "fss.h" @@ -244,7 +244,7 @@ fss_strategy(struct buf *bp) bp->b_rawblkno = bp->b_blkno; BUFQ_PUT(sc->sc_bufq, bp); - wakeup(&sc->sc_bs_proc); + wakeup(&sc->sc_bs_lwp); FSS_UNLOCK(sc, s); } @@ -416,8 +416,8 @@ fss_softc_alloc(struct fss_softc *sc) if (sc->sc_indir_data == NULL) return(ENOMEM); - if ((error = kthread_create1(fss_bs_thread, sc, &sc->sc_bs_proc, - "fssbs%d", sc->sc_unit)) != 0) + if ((error = kthread_create(PINOD, 0, NULL, fss_bs_thread, sc, + &sc->sc_bs_lwp, "fssbs%d", sc->sc_unit)) != 0) return error; sc->sc_flags |= FSS_BS_THREAD; @@ -435,9 +435,9 @@ fss_softc_free(struct fss_softc *sc) if ((sc->sc_flags & FSS_BS_THREAD) != 0) { FSS_LOCK(sc, s); sc->sc_flags &= ~FSS_BS_THREAD; - wakeup(&sc->sc_bs_proc); - while (sc->sc_bs_proc != NULL) - ltsleep(&sc->sc_bs_proc, PRIBIO, "fssthread", 0, + wakeup(&sc->sc_bs_lwp); + while (sc->sc_bs_lwp != NULL) + ltsleep(&sc->sc_bs_lwp, PRIBIO, "fssthread", 0, &sc->sc_slock); FSS_UNLOCK(sc, s); } @@ -911,7 +911,7 @@ restart: bp->b_private = scp; bp->b_iodone = fss_cluster_iodone; - DEV_STRATEGY(bp); + bdev_strategy(bp); FSS_LOCK(sc, s); scp->fc_xfercount++; @@ -933,7 +933,7 @@ restart: setbit(sc->sc_copied, scp->fc_cluster); FSS_UNLOCK(sc, s); - wakeup(&sc->sc_bs_proc); + wakeup(&sc->sc_bs_lwp); } /* @@ -953,7 +953,7 @@ fss_bs_io(struct fss_softc *sc, fss_io_type rw, error = vn_rdwr((rw == FSS_READ ? UIO_READ : UIO_WRITE), sc->sc_bs_vp, data, len, off, UIO_SYSSPACE, IO_UNIT|IO_NODELOCKED, - sc->sc_bs_proc->p_cred, NULL, NULL); + sc->sc_bs_lwp->l_cred, NULL, NULL); if (error == 0) { simple_lock(&sc->sc_bs_vp->v_interlock); error = VOP_PUTPAGES(sc->sc_bs_vp, trunc_page(off), @@ -1030,12 +1030,12 @@ fss_bs_thread(void *arg) for (;;) { if (nfreed == 0 && nio == 0) - ltsleep(&sc->sc_bs_proc, PVM-1, "fssbs", 0, + ltsleep(&sc->sc_bs_lwp, PVM-1, "fssbs", 0, &sc->sc_slock); if ((sc->sc_flags & FSS_BS_THREAD) == 0) { - sc->sc_bs_proc = NULL; - wakeup(&sc->sc_bs_proc); + sc->sc_bs_lwp = NULL; + wakeup(&sc->sc_bs_lwp); FSS_UNLOCK(sc, s); @@ -1164,7 +1164,7 @@ fss_bs_thread(void *arg) nbp->b_dev = sc->sc_bdev; nbp->b_vp = NULLVP; - DEV_STRATEGY(nbp); + bdev_strategy(nbp); if (biowait(nbp) != 0) { bp->b_resid = bp->b_bcount; |
