Author: jhb
Date: Fri Aug 20 20:33:13 2010
New Revision: 211532
URL: http://svn.freebsd.org/changeset/base/211532

Log:
  MFC: Use VN_LOCK_AREC() and VN_LOCK_ASHARE() rather than manipulating
  lockmgr lock flags directly.

Modified:
  stable/7/sys/fs/nwfs/nwfs_node.c
  stable/7/sys/fs/pseudofs/pseudofs_vncache.c
  stable/7/sys/fs/smbfs/smbfs_node.c
  stable/7/sys/gnu/fs/xfs/FreeBSD/xfs_freebsd_iget.c
  stable/7/sys/kern/vfs_lookup.c

Modified: stable/7/sys/fs/nwfs/nwfs_node.c
==============================================================================
--- stable/7/sys/fs/nwfs/nwfs_node.c    Fri Aug 20 19:46:50 2010        
(r211531)
+++ stable/7/sys/fs/nwfs/nwfs_node.c    Fri Aug 20 20:33:13 2010        
(r211532)
@@ -192,7 +192,7 @@ rescan:
        if (dvp) {
                np->n_parent = VTONW(dvp)->n_fid;
        }
-       vp->v_vnlock->lk_flags |= LK_CANRECURSE;
+       VN_LOCK_AREC(vp);
        sx_xlock(&nwhashlock);
        /*
         * Another process can create vnode while we blocked in malloc() or

Modified: stable/7/sys/fs/pseudofs/pseudofs_vncache.c
==============================================================================
--- stable/7/sys/fs/pseudofs/pseudofs_vncache.c Fri Aug 20 19:46:50 2010        
(r211531)
+++ stable/7/sys/fs/pseudofs/pseudofs_vncache.c Fri Aug 20 20:33:13 2010        
(r211532)
@@ -189,7 +189,7 @@ retry:
        if ((pn->pn_flags & PFS_PROCDEP) != 0)
                (*vpp)->v_vflag |= VV_PROCDEP;
        pvd->pvd_vnode = *vpp;
-       (*vpp)->v_vnlock->lk_flags |= LK_CANRECURSE;
+       VN_LOCK_AREC(*vpp);
        vn_lock(*vpp, LK_EXCLUSIVE | LK_RETRY, curthread);
        error = insmntque(*vpp, mp);
        if (error != 0) {

Modified: stable/7/sys/fs/smbfs/smbfs_node.c
==============================================================================
--- stable/7/sys/fs/smbfs/smbfs_node.c  Fri Aug 20 19:46:50 2010        
(r211531)
+++ stable/7/sys/fs/smbfs/smbfs_node.c  Fri Aug 20 20:33:13 2010        
(r211532)
@@ -259,7 +259,7 @@ loop:
        } else if (vp->v_type == VREG)
                SMBERROR("new vnode '%s' born without parent ?\n", np->n_name);
 
-       vp->v_vnlock->lk_flags |= LK_CANRECURSE;
+       VN_LOCK_AREC(vp);
        vn_lock(vp, LK_EXCLUSIVE | LK_RETRY, td);
 
        smbfs_hash_lock(smp);

Modified: stable/7/sys/gnu/fs/xfs/FreeBSD/xfs_freebsd_iget.c
==============================================================================
--- stable/7/sys/gnu/fs/xfs/FreeBSD/xfs_freebsd_iget.c  Fri Aug 20 19:46:50 
2010        (r211531)
+++ stable/7/sys/gnu/fs/xfs/FreeBSD/xfs_freebsd_iget.c  Fri Aug 20 20:33:13 
2010        (r211532)
@@ -29,6 +29,8 @@
  * For further information regarding this notice, see:
  *
  * http://oss.sgi.com/projects/GenInfo/SGIGPLNoticeExplan/
+ *
+ * $FreeBSD$
  */
 
 #include "xfs.h"
@@ -389,7 +391,7 @@ xfs_vn_allocate(xfs_mount_t *mp, xfs_ino
                return (error);
        }
 
-       vp->v_vnlock->lk_flags |= LK_CANRECURSE;
+       VN_LOCK_AREC(vp);
        vn_lock(vp, LK_EXCLUSIVE | LK_RETRY, curthread);
        error = insmntque(vp, XVFSTOMNT(XFS_MTOVFS(mp)));
        if (error != 0) {

Modified: stable/7/sys/kern/vfs_lookup.c
==============================================================================
--- stable/7/sys/kern/vfs_lookup.c      Fri Aug 20 19:46:50 2010        
(r211531)
+++ stable/7/sys/kern/vfs_lookup.c      Fri Aug 20 20:33:13 2010        
(r211532)
@@ -83,7 +83,7 @@ nameiinit(void *dummy __unused)
        error = getnewvnode("crossmp", NULL, &dead_vnodeops, &vp_crossmp);
        if (error != 0)
                panic("nameiinit: getnewvnode");
-       vp_crossmp->v_vnlock->lk_flags &= ~LK_NOSHARE;
+       VN_LOCK_ASHARE(vp_crossmp);
 }
 SYSINIT(vfs, SI_SUB_VFS, SI_ORDER_SECOND, nameiinit, NULL);
 
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "[email protected]"

Reply via email to