Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/sys LK_INTERLOCK is no longer a valid flag for VOP_LOCK().



details:   https://anonhg.NetBSD.org/src/rev/cbd0e48c561a
branches:  trunk
changeset: 755998:cbd0e48c561a
user:      hannken <hannken%NetBSD.org@localhost>
date:      Fri Jul 02 07:56:46 2010 +0000

description:
LK_INTERLOCK is no longer a valid flag for VOP_LOCK().

diffstat:

 sys/fs/union/union_vnops.c     |   7 ++-----
 sys/miscfs/deadfs/dead_vnops.c |  29 +++++++++++------------------
 2 files changed, 13 insertions(+), 23 deletions(-)

diffs (145 lines):

diff -r 9d1e8d96c873 -r cbd0e48c561a sys/fs/union/union_vnops.c
--- a/sys/fs/union/union_vnops.c        Fri Jul 02 07:43:36 2010 +0000
+++ b/sys/fs/union/union_vnops.c        Fri Jul 02 07:56:46 2010 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: union_vnops.c,v 1.37 2010/07/01 13:00:56 hannken Exp $ */
+/*     $NetBSD: union_vnops.c,v 1.38 2010/07/02 07:56:46 hannken Exp $ */
 
 /*
  * Copyright (c) 1992, 1993, 1994, 1995
@@ -72,7 +72,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: union_vnops.c,v 1.37 2010/07/01 13:00:56 hannken Exp $");
+__KERNEL_RCSID(0, "$NetBSD: union_vnops.c,v 1.38 2010/07/02 07:56:46 hannken Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -1630,7 +1630,6 @@
                flags = (flags & ~LK_SHARED) | LK_EXCLUSIVE;
        }
 
-       genfs_nolock(ap);
        /*
         * Need to do real lockmgr-style locking here.
         * in the mean time, draining won't work quite right,
@@ -1640,7 +1639,6 @@
        if ((flags & LK_TYPE_MASK) == LK_DRAIN)
                return (0);
         */
-       flags &= ~LK_INTERLOCK;
 
        un = VTOUNION(vp);
 start:
@@ -1734,7 +1732,6 @@
 #ifdef DIAGNOSTIC
        un->un_pid = 0;
 #endif
-       genfs_nounlock(ap);
 
        return (0);
 }
diff -r 9d1e8d96c873 -r cbd0e48c561a sys/miscfs/deadfs/dead_vnops.c
--- a/sys/miscfs/deadfs/dead_vnops.c    Fri Jul 02 07:43:36 2010 +0000
+++ b/sys/miscfs/deadfs/dead_vnops.c    Fri Jul 02 07:56:46 2010 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: dead_vnops.c,v 1.48 2009/03/14 21:04:24 dsl Exp $      */
+/*     $NetBSD: dead_vnops.c,v 1.49 2010/07/02 07:58:09 hannken Exp $  */
 
 /*
  * Copyright (c) 1989, 1993
@@ -32,7 +32,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: dead_vnops.c,v 1.48 2009/03/14 21:04:24 dsl Exp $");
+__KERNEL_RCSID(0, "$NetBSD: dead_vnops.c,v 1.49 2010/07/02 07:58:09 hannken Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -70,7 +70,7 @@
 int    dead_getpages(void *);
 #define dead_putpages  genfs_null_putpages
 
-int    chkvnlock(struct vnode *, bool);
+int    chkvnlock(struct vnode *);
 int    dead_default_error(void *);
 
 int (**dead_vnodeop_p)(void *);
@@ -135,7 +135,7 @@
                kauth_cred_t a_cred;
        } */ *ap = v;
 
-       if (chkvnlock(ap->a_vp, false))
+       if (chkvnlock(ap->a_vp))
                panic("dead_read: lock");
        /*
         * Return EOF for tty devices, EIO for others
@@ -159,7 +159,7 @@
                kauth_cred_t a_cred;
        } */ *ap = v;
 
-       if (chkvnlock(ap->a_vp, false))
+       if (chkvnlock(ap->a_vp))
                panic("dead_write: lock");
        return (EIO);
 }
@@ -180,7 +180,7 @@
                struct lwp *a_l;
        } */ *ap = v;
 
-       if (!chkvnlock(ap->a_vp, false))
+       if (!chkvnlock(ap->a_vp))
                return (EBADF);
        return (VCALL(ap->a_vp, VOFFSET(vop_ioctl), ap));
 }
@@ -213,7 +213,7 @@
                struct buf *a_bp;
        } */ *ap = v;
        struct buf *bp;
-       if (ap->a_vp == NULL || !chkvnlock(ap->a_vp, false)) {
+       if (ap->a_vp == NULL || !chkvnlock(ap->a_vp)) {
                bp = ap->a_bp;
                bp->b_error = EIO;
                bp->b_resid = bp->b_bcount;
@@ -234,14 +234,8 @@
                int a_flags;
                struct proc *a_p;
        } */ *ap = v;
-       bool interlock;
 
-       if (ap->a_flags & LK_INTERLOCK) {
-               interlock = true;
-               ap->a_flags &= ~LK_INTERLOCK;
-       } else
-               interlock = false;
-       if (!chkvnlock(ap->a_vp, interlock))
+       if (!chkvnlock(ap->a_vp))
                return (0);
        return (VCALL(ap->a_vp, VOFFSET(vop_lock), ap));
 }
@@ -260,7 +254,7 @@
                int *a_runp;
        } */ *ap = v;
 
-       if (!chkvnlock(ap->a_vp, false))
+       if (!chkvnlock(ap->a_vp))
                return (EIO);
        return (VOP_BMAP(ap->a_vp, ap->a_bn, ap->a_vpp, ap->a_bnp, ap->a_runp));
 }
@@ -301,12 +295,11 @@
  * in a state of change.
  */
 int
-chkvnlock(struct vnode *vp, bool interlock)
+chkvnlock(struct vnode *vp)
 {
        int locked = 0;
 
-       if (!interlock)
-               mutex_enter(&vp->v_interlock);
+       mutex_enter(&vp->v_interlock);
        while (vp->v_iflag & VI_XLOCK) {
                vwait(vp, VI_XLOCK);
                locked = 1;



Home | Main Index | Thread Index | Old Index