Add an argument to vfs_add_vnodeops() to specify VVF_* flags for the vop_ops
[dragonfly.git] / sys / vm / vm_swap.c
index 9def79f..57a449b 100644 (file)
@@ -32,7 +32,7 @@
  *
  *     @(#)vm_swap.c   8.5 (Berkeley) 2/17/94
  * $FreeBSD: src/sys/vm/vm_swap.c,v 1.96.2.2 2001/10/14 18:46:47 iedowse Exp $
- * $DragonFly: src/sys/vm/vm_swap.c,v 1.17 2004/12/17 00:18:49 dillon Exp $
+ * $DragonFly: src/sys/vm/vm_swap.c,v 1.19 2005/09/17 07:43:12 dillon Exp $
  */
 
 #include "opt_swap.h"
@@ -51,6 +51,7 @@
 #include <sys/lock.h>
 #include <sys/conf.h>
 #include <sys/stat.h>
+#include <sys/thread2.h>
 #include <vm/vm.h>
 #include <vm/vm_extern.h>
 #include <vm/swap_pager.h>
@@ -87,7 +88,7 @@ swapdev_strategy(struct vop_strategy_args /* {
                         struct buf *a_bp;
                 } */ *ap)
 {
-       int s, sz, off, seg, index;
+       int sz, off, seg, index;
        struct swdevt *sp;
        struct vnode *vp;
        struct buf *bp;
@@ -136,7 +137,7 @@ swapdev_strategy(struct vop_strategy_args /* {
        bp->b_blkno = ctodb(bp->b_blkno);
 
        vhold(sp->sw_vp);
-       s = splvm();
+       crit_enter();
        if ((bp->b_flags & B_READ) == 0) {
                vp = bp->b_vp;
                if (vp) {
@@ -149,7 +150,7 @@ swapdev_strategy(struct vop_strategy_args /* {
                sp->sw_vp->v_numoutput++;
        }
        pbreassignbuf(bp, sp->sw_vp);
-       splx(s);
+       crit_exit();
        VOP_STRATEGY(bp->b_vp, bp);
        return 0;
 }
@@ -165,7 +166,7 @@ static struct vnodeopv_entry_desc swapdev_vnodeop_entries[] = {
        { NULL, NULL }
 };
 static struct vnodeopv_desc swapdev_vnodeop_opv_desc =
-       { &swapdev_vnode_vops, swapdev_vnodeop_entries };
+       { &swapdev_vnode_vops, swapdev_vnodeop_entries, 0 };
 
 VNODEOP_SET(swapdev_vnodeop_opv_desc);