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