PERFORCE change 136105 for review

Marcel Moolenaar marcel at FreeBSD.org
Sun Feb 24 17:37:35 UTC 2008


http://perforce.freebsd.org/chv.cgi?CH=136105

Change 136105 by marcel at marcel_xcllnt on 2008/02/24 17:37:18

	IFC @136100

Affected files ...

.. //depot/projects/e500/sbin/ipfw/ipfw.8#7 integrate
.. //depot/projects/e500/sbin/ipfw/ipfw2.c#10 integrate
.. //depot/projects/e500/sys/contrib/opensolaris/uts/common/fs/zfs/zfs_znode.c#5 integrate
.. //depot/projects/e500/sys/dev/usb/ucom.c#4 integrate
.. //depot/projects/e500/sys/fs/nwfs/nwfs_node.c#4 integrate
.. //depot/projects/e500/sys/fs/pseudofs/pseudofs_vncache.c#3 integrate
.. //depot/projects/e500/sys/fs/smbfs/smbfs_node.c#5 integrate
.. //depot/projects/e500/sys/gnu/fs/xfs/FreeBSD/xfs_freebsd_iget.c#3 integrate
.. //depot/projects/e500/sys/kern/vfs_lookup.c#6 integrate
.. //depot/projects/e500/sys/netinet/ip_fw2.c#7 integrate
.. //depot/projects/e500/sys/netinet/tcp_var.h#7 integrate
.. //depot/projects/e500/sys/netncp/ncp_conn.c#4 integrate
.. //depot/projects/e500/sys/netsmb/smb_conn.c#3 integrate
.. //depot/projects/e500/sys/nfsclient/nfs_node.c#3 integrate
.. //depot/projects/e500/sys/powerpc/fpu/fpu_emu.c#8 integrate
.. //depot/projects/e500/sys/sys/vnode.h#6 integrate
.. //depot/projects/e500/sys/ufs/ffs/ffs_softdep.c#6 integrate
.. //depot/projects/e500/sys/ufs/ffs/ffs_vfsops.c#6 integrate

Differences ...

==== //depot/projects/e500/sbin/ipfw/ipfw.8#7 (text+ko) ====

@@ -1,5 +1,5 @@
 .\"
-.\" $FreeBSD: src/sbin/ipfw/ipfw.8,v 1.209 2008/02/18 19:56:09 julian Exp $
+.\" $FreeBSD: src/sbin/ipfw/ipfw.8,v 1.210 2008/02/24 15:37:45 piso Exp $
 .\"
 .Dd November 26, 2007
 .Dt IPFW 8
@@ -1609,7 +1609,7 @@
 The
 .Cm tablearg
 argument can be used with the following actions:
-.Cm pipe , queue, divert, tee, netgraph, ngtee, fwd
+.Cm nat, pipe , queue, divert, tee, netgraph, ngtee, fwd
 action parameters:
 .Cm tag, untag,
 rule options:

==== //depot/projects/e500/sbin/ipfw/ipfw2.c#10 (text+ko) ====

@@ -17,7 +17,7 @@
  *
  * NEW command line interface for IP firewall facility
  *
- * $FreeBSD: src/sbin/ipfw/ipfw2.c,v 1.116 2008/02/21 22:55:54 piso Exp $
+ * $FreeBSD: src/sbin/ipfw/ipfw2.c,v 1.117 2008/02/24 15:37:45 piso Exp $
  */
 
 #include <sys/param.h>
@@ -1612,7 +1612,7 @@
 			break;
 
 		case O_NAT:
- 			printf("nat %u", cmd->arg1);
+			PRINT_UINT_ARG("nat ", cmd->arg1);
  			break;
 			
 		default:
@@ -4848,6 +4848,10 @@
 		action->opcode = O_COUNT;
 		break;
 
+	case TOK_NAT:
+ 		action->opcode = O_NAT;
+ 		action->len = F_INSN_SIZE(ipfw_insn_nat);
+		goto chkarg;
 	case TOK_QUEUE:
 		action->opcode = O_QUEUE;
 		goto chkarg;
@@ -4929,14 +4933,6 @@
 		action->opcode = O_COUNT;
 		ac++; av--;	/* go back... */
 		break;
-
-	case TOK_NAT:
- 		action->opcode = O_NAT;
- 		action->len = F_INSN_SIZE(ipfw_insn_nat);
- 		NEED1("missing nat number");
- 	        action->arg1 = strtoul(*av, NULL, 10);
- 		ac--; av++;
- 		break;
 		
 	default:
 		errx(EX_DATAERR, "invalid action %s\n", av[-1]);

==== //depot/projects/e500/sys/contrib/opensolaris/uts/common/fs/zfs/zfs_znode.c#5 (text+ko) ====

@@ -119,8 +119,8 @@
 		ASSERT(error == 0);
 		zp->z_vnode = vp;
 		vp->v_data = (caddr_t)zp;
-		vp->v_vnlock->lk_flags |= LK_CANRECURSE;
-		vp->v_vnlock->lk_flags &= ~LK_NOSHARE;
+		VN_LOCK_AREC(vp);
+		VN_LOCK_ASHARE(vp);
 	} else {
 		zp->z_vnode = NULL;
 	}
@@ -604,8 +604,8 @@
 			ASSERT(err == 0);
 			vp = ZTOV(zp);
 			vp->v_data = (caddr_t)zp;
-			vp->v_vnlock->lk_flags |= LK_CANRECURSE;
-			vp->v_vnlock->lk_flags &= ~LK_NOSHARE;
+			VN_LOCK_AREC(vp);
+			VN_LOCK_ASHARE(vp);
 			vp->v_type = IFTOVT((mode_t)zp->z_phys->zp_mode);
 			if (vp->v_type == VDIR)
 				zp->z_zn_prefetch = B_TRUE;	/* z_prefetch default is enabled */

==== //depot/projects/e500/sys/dev/usb/ucom.c#4 (text+ko) ====

@@ -1,7 +1,8 @@
 /*	$NetBSD: ucom.c,v 1.40 2001/11/13 06:24:54 lukem Exp $	*/
 
 /*-
- * Copyright (c) 2001-2003, 2005 Shunsuke Akiyama <akiyama at jp.FreeBSD.org>.
+ * Copyright (c) 2001-2003, 2005, 2008
+ *	Shunsuke Akiyama <akiyama at jp.FreeBSD.org>.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -27,7 +28,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/usb/ucom.c,v 1.64 2007/06/25 06:40:20 imp Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/usb/ucom.c,v 1.65 2008/02/24 12:16:01 akiyama Exp $");
 
 /*-
  * Copyright (c) 1998, 2000 The NetBSD Foundation, Inc.
@@ -113,6 +114,7 @@
 #define DPRINTFN(n, x)
 #endif
 
+static int ucom_modevent(module_t, int, void *);
 static void ucom_cleanup(struct ucom_softc *);
 static int ucomparam(struct tty *, struct termios *);
 static void ucomstart(struct tty *);
@@ -135,7 +137,7 @@
 
 static moduledata_t ucom_mod = {
 	"ucom",
-	NULL,
+	ucom_modevent,
 	NULL
 };
 
@@ -143,6 +145,21 @@
 MODULE_DEPEND(ucom, usb, 1, 1, 1);
 MODULE_VERSION(ucom, UCOM_MODVER);
 
+static int
+ucom_modevent(module_t mod, int type, void *data)
+{
+	switch (type) {
+	case MOD_LOAD:
+		break;
+	case MOD_UNLOAD:
+		break;
+	default:
+		return (EOPNOTSUPP);
+		break;
+	}
+	return (0);
+}
+
 int
 ucom_attach(struct ucom_softc *sc)
 {

==== //depot/projects/e500/sys/fs/nwfs/nwfs_node.c#4 (text+ko) ====

@@ -29,7 +29,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $FreeBSD: src/sys/fs/nwfs/nwfs_node.c,v 1.41 2008/01/24 12:34:27 attilio Exp $
+ * $FreeBSD: src/sys/fs/nwfs/nwfs_node.c,v 1.42 2008/02/24 16:38:56 attilio Exp $
  */
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -188,7 +188,7 @@
 	if (dvp) {
 		np->n_parent = VTONW(dvp)->n_fid;
 	}
-	vp->v_vnlock->lk_flags |= LK_CANRECURSE;
+	VN_LOCK_AREC(vp);
 	lockmgr(&nwhashlock, LK_EXCLUSIVE, NULL);
 	/*
 	 * Another process can create vnode while we blocked in malloc() or

==== //depot/projects/e500/sys/fs/pseudofs/pseudofs_vncache.c#3 (text+ko) ====

@@ -27,7 +27,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/fs/pseudofs/pseudofs_vncache.c,v 1.40 2008/01/13 14:44:05 attilio Exp $");
+__FBSDID("$FreeBSD: src/sys/fs/pseudofs/pseudofs_vncache.c,v 1.41 2008/02/24 16:38:56 attilio Exp $");
 
 #include "opt_pseudofs.h"
 
@@ -196,7 +196,7 @@
 	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);
 	error = insmntque(*vpp, mp);
 	if (error != 0) {

==== //depot/projects/e500/sys/fs/smbfs/smbfs_node.c#5 (text+ko) ====

@@ -29,7 +29,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $FreeBSD: src/sys/fs/smbfs/smbfs_node.c,v 1.36 2008/01/24 12:34:27 attilio Exp $
+ * $FreeBSD: src/sys/fs/smbfs/smbfs_node.c,v 1.37 2008/02/24 16:38:57 attilio Exp $
  */
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -261,7 +261,7 @@
 	} 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);
 
 	smbfs_hash_lock(smp, td);

==== //depot/projects/e500/sys/gnu/fs/xfs/FreeBSD/xfs_freebsd_iget.c#3 (text+ko) ====

@@ -389,7 +389,7 @@
 		return (error);
 	}
 
-	vp->v_vnlock->lk_flags |= LK_CANRECURSE;
+	VN_LOCK_AREC(vp);
 	vn_lock(vp, LK_EXCLUSIVE | LK_RETRY);
 	error = insmntque(vp, XVFSTOMNT(XFS_MTOVFS(mp)));
 	if (error != 0) {

==== //depot/projects/e500/sys/kern/vfs_lookup.c#6 (text+ko) ====

@@ -35,7 +35,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/kern/vfs_lookup.c,v 1.105 2008/01/13 14:44:10 attilio Exp $");
+__FBSDID("$FreeBSD: src/sys/kern/vfs_lookup.c,v 1.106 2008/02/24 16:38:57 attilio Exp $");
 
 #include "opt_ktrace.h"
 #include "opt_mac.h"
@@ -84,7 +84,7 @@
 	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)
 

==== //depot/projects/e500/sys/netinet/ip_fw2.c#7 (text+ko) ====

@@ -24,7 +24,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/netinet/ip_fw2.c,v 1.180 2008/01/25 14:38:27 rwatson Exp $");
+__FBSDID("$FreeBSD: src/sys/netinet/ip_fw2.c,v 1.181 2008/02/24 15:37:45 piso Exp $");
 
 #define        DEB(x)
 #define        DDB(x) x
@@ -3486,7 +3486,7 @@
 				struct cfg_nat *t;
 				struct mbuf *mcl;
 				/* XXX - libalias duct tape */
-				int ldt; 
+				int ldt, nat_id;
 				char *c;
 				
 				ldt = 0;
@@ -3494,7 +3494,9 @@
 				retval = 0;
 				t = ((ipfw_insn_nat *)cmd)->nat;
 				if (t == NULL) {
-					t = lookup_nat(cmd->arg1);
+					nat_id = (cmd->arg1 == IP_FW_TABLEARG) ?
+					    tablearg : cmd->arg1;
+					t = lookup_nat(nat_id);
 					if (t == NULL) {
 						retval = IP_FW_DENY;
 						goto done;

==== //depot/projects/e500/sys/netinet/tcp_var.h#7 (text+ko) ====

@@ -27,7 +27,7 @@
  * SUCH DAMAGE.
  *
  *	@(#)tcp_var.h	8.4 (Berkeley) 5/24/95
- * $FreeBSD: src/sys/netinet/tcp_var.h,v 1.160 2007/12/12 23:31:49 kmacy Exp $
+ * $FreeBSD: src/sys/netinet/tcp_var.h,v 1.161 2008/02/24 05:13:20 silby Exp $
  */
 
 #ifndef _NETINET_TCP_VAR_H_
@@ -238,14 +238,17 @@
  * to tcp_dooptions and tcp_addoptions.
  * The binary order of the to_flags is relevant for packing of the
  * options in tcp_addoptions.
+ * SACK should be kept after TS; some broken cable modem / router
+ * devices were found in the field that ignore SYN-ACKs with
+ * SACK before TS.
  */
 struct tcpopt {
 	u_long		to_flags;	/* which options are present */
 #define	TOF_MSS		0x0001		/* maximum segment size */
 #define	TOF_SCALE	0x0002		/* window scaling */
-#define	TOF_SACKPERM	0x0004		/* SACK permitted */
 #define	TOF_TS		0x0010		/* timestamp */
-#define	TOF_SIGNATURE	0x0040		/* TCP-MD5 signature option (RFC2385) */
+#define	TOF_SIGNATURE	0x0020		/* TCP-MD5 signature option (RFC2385) */
+#define	TOF_SACKPERM	0x0040		/* SACK permitted */
 #define	TOF_SACK	0x0080		/* Peer sent SACK option */
 #define	TOF_MAXOPT	0x0100
 	u_int32_t	to_tsval;	/* new timestamp */

==== //depot/projects/e500/sys/netncp/ncp_conn.c#4 (text+ko) ====

@@ -33,7 +33,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/netncp/ncp_conn.c,v 1.31 2008/01/24 12:34:28 attilio Exp $");
+__FBSDID("$FreeBSD: src/sys/netncp/ncp_conn.c,v 1.32 2008/02/24 16:38:57 attilio Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -193,7 +193,7 @@
 int
 ncp_conn_assert_locked(struct ncp_conn *conn, const char *checker, struct thread *td)
 {
-	if (conn->nc_lock.lk_flags & LK_HAVE_EXCL) return 0;
+	if (lockstatus(&conn->nc_lock, curthread) == LK_EXCLUSIVE) return 0;
 	printf("%s: connection isn't locked!\n", checker);
 	return EIO;
 }

==== //depot/projects/e500/sys/netsmb/smb_conn.c#3 (text+ko) ====

@@ -35,7 +35,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/netsmb/smb_conn.c,v 1.19 2008/01/24 12:34:29 attilio Exp $");
+__FBSDID("$FreeBSD: src/sys/netsmb/smb_conn.c,v 1.20 2008/02/24 16:26:52 attilio Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -62,8 +62,8 @@
 
 MALLOC_DEFINE(M_SMBCONN, "smb_conn", "SMB connection");
 
-static void smb_co_init(struct smb_connobj *cp, int level, char *objname,
-	struct thread *td);
+static void smb_co_init(struct smb_connobj *cp, int level, char *ilockname,
+    char *lockname, struct thread *td);
 static void smb_co_done(struct smb_connobj *cp);
 static int  smb_co_lockstatus(struct smb_connobj *cp, struct thread *td);
 
@@ -82,7 +82,7 @@
 smb_sm_init(void)
 {
 
-	smb_co_init(&smb_vclist, SMBL_SM, "smbsm", curthread);
+	smb_co_init(&smb_vclist, SMBL_SM, "smbsm ilock", "smbsm", curthread);
 	smb_co_unlock(&smb_vclist, 0, curthread);
 	return 0;
 }
@@ -227,11 +227,12 @@
  * Common code for connection object
  */
 static void
-smb_co_init(struct smb_connobj *cp, int level, char *objname, struct thread *td)
+smb_co_init(struct smb_connobj *cp, int level, char *ilockname, char *lockname,
+    struct thread *td)
 {
 	SLIST_INIT(&cp->co_children);
-	smb_sl_init(&cp->co_interlock, objname);
-	lockinit(&cp->co_lock, PZERO, objname, 0, 0);
+	smb_sl_init(&cp->co_interlock, ilockname);
+	lockinit(&cp->co_lock, PZERO, lockname, 0, 0);
 	cp->co_level = level;
 	cp->co_usecount = 1;
 	if (smb_co_lock(cp, LK_EXCLUSIVE, td) != 0)
@@ -398,7 +399,7 @@
 		return EPERM;
 
 	vcp = smb_zmalloc(sizeof(*vcp), M_SMBCONN, M_WAITOK);
-	smb_co_init(VCTOCP(vcp), SMBL_VC, "smb_vc", td);
+	smb_co_init(VCTOCP(vcp), SMBL_VC, "smb_vc ilock", "smb_vc", td);
 	vcp->obj.co_free = smb_vc_free;
 	vcp->obj.co_gone = smb_vc_gone;
 	vcp->vc_number = smb_vcnext++;
@@ -716,7 +717,7 @@
 	if (gid == SMBM_ANY_GROUP)
 		gid = cred->cr_groups[0];
 	ssp = smb_zmalloc(sizeof(*ssp), M_SMBCONN, M_WAITOK);
-	smb_co_init(SSTOCP(ssp), SMBL_SHARE, "smbss", td);
+	smb_co_init(SSTOCP(ssp), SMBL_SHARE, "smbss ilock", "smbss", td);
 	ssp->obj.co_free = smb_share_free;
 	ssp->obj.co_gone = smb_share_gone;
 	smb_sl_init(&ssp->ss_stlock, "ssstlock");

==== //depot/projects/e500/sys/nfsclient/nfs_node.c#3 (text+ko) ====

@@ -33,7 +33,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/nfsclient/nfs_node.c,v 1.87 2008/01/24 12:34:29 attilio Exp $");
+__FBSDID("$FreeBSD: src/sys/nfsclient/nfs_node.c,v 1.88 2008/02/24 16:38:57 attilio Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -158,8 +158,8 @@
 	/*
 	 * NFS supports recursive and shared locking.
 	 */
-	vp->v_vnlock->lk_flags |= LK_CANRECURSE;
-	vp->v_vnlock->lk_flags &= ~LK_NOSHARE;
+	VN_LOCK_AREC(vp);
+	VN_LOCK_ASHARE(vp);
 	if (fhsize > NFS_SMALLFH) {
 		MALLOC(np->n_fhp, nfsfh_t *, fhsize, M_NFSBIGFH, M_WAITOK);
 	} else

==== //depot/projects/e500/sys/powerpc/fpu/fpu_emu.c#8 (text+ko) ====

@@ -76,12 +76,10 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/powerpc/fpu/fpu_emu.c,v 1.2 2008/02/24 03:01:26 marcel Exp $");
+__FBSDID("$FreeBSD: src/sys/powerpc/fpu/fpu_emu.c,v 1.3 2008/02/24 17:10:30 marcel Exp $");
 
 #include "opt_ddb.h"
 
-#define DEBUG
-
 #include <sys/param.h>
 #include <sys/systm.h>
 #include <sys/kdb.h>

==== //depot/projects/e500/sys/sys/vnode.h#6 (text+ko) ====

@@ -27,7 +27,7 @@
  * SUCH DAMAGE.
  *
  *	@(#)vnode.h	8.7 (Berkeley) 2/4/94
- * $FreeBSD: src/sys/sys/vnode.h,v 1.329 2008/01/13 14:44:13 attilio Exp $
+ * $FreeBSD: src/sys/sys/vnode.h,v 1.330 2008/02/24 16:38:57 attilio Exp $
  */
 
 #ifndef _SYS_VNODE_H_
@@ -400,6 +400,9 @@
 #define	VI_UNLOCK(vp)	mtx_unlock(&(vp)->v_interlock)
 #define	VI_MTX(vp)	(&(vp)->v_interlock)
 
+#define	VN_LOCK_AREC(vp)	((vp)->v_vnlock->lk_flags |= LK_CANRECURSE)
+#define	VN_LOCK_ASHARE(vp)	((vp)->v_vnlock->lk_flags &= ~LK_NOSHARE)
+
 #endif /* _KERNEL */
 
 /*

==== //depot/projects/e500/sys/ufs/ffs/ffs_softdep.c#6 (text+ko) ====

@@ -39,7 +39,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/ufs/ffs/ffs_softdep.c,v 1.216 2008/01/13 14:44:13 attilio Exp $");
+__FBSDID("$FreeBSD: src/sys/ufs/ffs/ffs_softdep.c,v 1.217 2008/02/24 16:38:58 attilio Exp $");
 
 /*
  * For now we want the safety net that the DEBUG flag provides.
@@ -564,6 +564,9 @@
 #define ACQUIRE_LOCK(lk)		mtx_lock(lk)
 #define FREE_LOCK(lk)			mtx_unlock(lk)
 
+#define	BUF_AREC(bp)	((bp)->b_lock.lk_flags |= LK_CANRECURSE)
+#define	BUF_NOREC(bp)	((bp)->b_lock.lk_flags &= ~LK_CANRECURSE)
+
 /*
  * Worklist queue management.
  * These routines require that the lock be held.
@@ -5251,7 +5254,7 @@
 		return (0);
 loop:
 	/* While syncing snapshots, we must allow recursive lookups */
-	bp->b_lock.lk_flags |= LK_CANRECURSE;
+	BUF_AREC(bp);
 	ACQUIRE_LOCK(&lk);
 	/*
 	 * As we hold the buffer locked, none of its dependencies
@@ -5393,7 +5396,7 @@
 		/* We reach here only in error and unlocked */
 		if (error == 0)
 			panic("softdep_sync_metadata: zero error");
-		bp->b_lock.lk_flags &= ~LK_CANRECURSE;
+		BUF_NOREC(bp);
 		bawrite(bp);
 		return (error);
 	}
@@ -5405,7 +5408,7 @@
 			break;
 	}
 	VI_UNLOCK(vp);
-	bp->b_lock.lk_flags &= ~LK_CANRECURSE;
+	BUF_NOREC(bp);
 	bawrite(bp);
 	if (nbp != NULL) {
 		bp = nbp;

==== //depot/projects/e500/sys/ufs/ffs/ffs_vfsops.c#6 (text+ko) ====

@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/ufs/ffs/ffs_vfsops.c,v 1.335 2008/01/24 12:34:29 attilio Exp $");
+__FBSDID("$FreeBSD: src/sys/ufs/ffs/ffs_vfsops.c,v 1.336 2008/02/24 16:38:58 attilio Exp $");
 
 #include "opt_mac.h"
 #include "opt_quota.h"
@@ -1363,8 +1363,8 @@
 	/*
 	 * FFS supports recursive and shared locking.
 	 */
-	vp->v_vnlock->lk_flags |= LK_CANRECURSE;
-	vp->v_vnlock->lk_flags &= ~LK_NOSHARE;
+	VN_LOCK_AREC(vp);
+	VN_LOCK_ASHARE(vp);
 	vp->v_data = ip;
 	vp->v_bufobj.bo_bsize = fs->fs_bsize;
 	ip->i_vnode = vp;


More information about the p4-projects mailing list