From owner-p4-projects@FreeBSD.ORG Sun Feb 24 17:37:35 2008 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 33F0616A405; Sun, 24 Feb 2008 17:37:35 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D26E616A400 for ; Sun, 24 Feb 2008 17:37:34 +0000 (UTC) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id AC61C13C469 for ; Sun, 24 Feb 2008 17:37:34 +0000 (UTC) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id m1OHbYwR066665 for ; Sun, 24 Feb 2008 17:37:34 GMT (envelope-from marcel@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id m1OHbWqv066662 for perforce@freebsd.org; Sun, 24 Feb 2008 17:37:32 GMT (envelope-from marcel@freebsd.org) Date: Sun, 24 Feb 2008 17:37:32 GMT Message-Id: <200802241737.m1OHbWqv066662@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to marcel@freebsd.org using -f From: Marcel Moolenaar To: Perforce Change Reviews Cc: Subject: PERFORCE change 136105 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 24 Feb 2008 17:37:35 -0000 http://perforce.freebsd.org/chv.cgi?CH=136105 Change 136105 by marcel@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 @@ -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 . + * Copyright (c) 2001-2003, 2005, 2008 + * Shunsuke Akiyama . * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -27,7 +28,7 @@ */ #include -__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 #include @@ -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 -__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 #include @@ -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 -__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 -__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 -__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 #include @@ -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 -__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 #include @@ -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 -__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 #include @@ -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 -__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 #include #include ==== //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 -__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 -__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;