Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 30 May 2009 19:16:34 GMT
From:      Edward Tomasz Napierala <trasz@FreeBSD.org>
To:        Perforce Change Reviews <perforce@freebsd.org>
Subject:   PERFORCE change 163109 for review
Message-ID:  <200905301916.n4UJGYCC002624@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=163109

Change 163109 by trasz@trasz_victim on 2009/05/30 19:16:19

	IFC.

Affected files ...

.. //depot/projects/soc2008/trasz_nfs4acl/UPDATING#30 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/bin/cp/utils.c#9 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/bin/rm/rm.c#3 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/lib/libarchive/Makefile#7 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sbin/fsck_ffs/fsck.h#4 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sbin/mksnap_ffs/Makefile#2 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sbin/mksnap_ffs/mksnap_ffs.8#3 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sbin/mksnap_ffs/mksnap_ffs.c#2 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/share/man/man9/Makefile#15 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/share/man/man9/VOP_ACCESS.9#7 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/amd64/amd64/dump_machdep.c#5 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/amd64/amd64/minidump_machdep.c#7 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/arm/arm/dump_machdep.c#6 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/arm/xscale/ixp425/if_npe.c#7 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/arm/xscale/ixp425/ixp425_qmgr.c#4 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/arm/xscale/ixp425/ixp425_qmgr.h#2 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/cddl/compat/opensolaris/kern/opensolaris.c#3 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/cddl/compat/opensolaris/kern/opensolaris_misc.c#4 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/compat/linux/linux_misc.c#13 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/compat/svr4/svr4_stat.c#6 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/ddb/db_textdump.c#4 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/bge/if_bge.c#10 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/bwi/if_bwi.c#3 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/dc/if_dc.c#7 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/e1000/if_em.c#8 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/firewire/firewire.c#8 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/firewire/if_fwe.c#3 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/firewire/if_fwip.c#3 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/fxp/if_fxp.c#10 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/iwn/if_iwn.c#10 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/ixgb/if_ixgb.c#3 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/lmc/if_lmc.c#8 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/lmc/if_lmc.h#5 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/mge/if_mge.c#4 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/nfe/if_nfe.c#5 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/nge/if_nge.c#3 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/ral/rt2560.c#6 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/re/if_re.c#15 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/sf/if_sf.c#2 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/sis/if_sis.c#5 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/smc/if_smc.c#2 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/ste/if_ste.c#2 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/stge/if_stge.c#2 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/syscons/daemon/daemon_saver.c#4 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/tsec/if_tsec.c#5 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/usb/controller/usb_controller.c#7 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/usb/usb_bus.h#7 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/usb/usb_busdma.c#5 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/usb/usb_busdma.h#4 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/usb/usb_compat_linux.c#7 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/usb/usb_compat_linux.h#5 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/usb/usb_controller.h#7 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/usb/usb_core.h#8 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/usb/usb_dev.c#6 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/usb/usb_dev.h#4 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/usb/usb_device.h#8 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/usb/usb_hid.c#6 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/usb/usb_hid.h#5 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/usb/usb_hub.c#8 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/usb/usb_hub.h#6 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/usb/usb_lookup.c#4 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/usb/usb_lookup.h#4 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/usb/usb_mbuf.c#4 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/usb/usb_mbuf.h#4 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/usb/usb_msctest.c#5 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/usb/usb_process.c#5 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/usb/usb_process.h#4 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/usb/usb_transfer.c#8 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/usb/usb_transfer.h#6 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/usb/wlan/if_rum.c#7 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/usb/wlan/if_ural.c#7 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/vge/if_vge.c#5 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/vr/if_vr.c#5 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/xl/if_xl.c#4 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/fs/cd9660/cd9660_rrip.c#7 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/fs/nfs/nfsport.h#6 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/fs/nfsclient/nfs_clstate.c#3 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/fs/nfsclient/nfs_clvfsops.c#4 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/fs/nullfs/null_vnops.c#10 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/geom/vinum/geom_vinum_create.c#2 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/geom/vinum/geom_vinum_drive.c#7 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/i386/i386/dump_machdep.c#5 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/i386/i386/minidump_machdep.c#5 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/i386/ibcs2/ibcs2_socksys.c#5 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/i386/xen/mp_machdep.c#11 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/ia64/ia64/dump_machdep.c#4 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/kern/kern_jail.c#20 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/kern/kern_mib.c#10 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/kern/kern_shutdown.c#5 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/kern/kern_xxx.c#8 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/kern/vfs_default.c#10 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/kern/vfs_subr.c#32 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/kern/vnode_if.src#13 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/kgssapi/gsstest.c#4 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/net/if.h#6 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/net/if_var.h#12 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/net80211/ieee80211_phy.h#2 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/netinet/sctp_pcb.c#14 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/netinet/sctp_sysctl.c#9 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/netinet/sctp_sysctl.h#8 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/netinet/sctp_uio.h#12 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/netinet/sctputil.c#16 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/netinet6/icmp6.c#16 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/netinet6/in6_ifattach.c#14 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/nfsclient/bootp_subr.c#9 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/nfsclient/nfs_vfsops.c#14 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/nfsserver/nfs_srvkrpc.c#6 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/nlm/nlm_advlock.c#5 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/pci/if_rl.c#9 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/rpc/authunix_prot.c#6 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/sparc64/sparc64/dump_machdep.c#4 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/sun4v/sun4v/dump_machdep.c#4 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/sys/jail.h#12 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/sys/kernel.h#9 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/sys/param.h#28 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/sys/priv.h#10 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/sys/vimage.h#12 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/sys/vnode.h#28 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/sys/xen/evtchn/evtchn.c#8 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/usr.bin/find/function.c#3 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/usr.sbin/jail/jail.8#6 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/usr.sbin/nfscbd/nfscbd.c#2 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/usr.sbin/nfsdumpstate/nfsdumpstate.c#2 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/usr.sbin/nfsrevoke/nfsrevoke.c#2 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/usr.sbin/nfsuserd/Makefile#2 integrate
.. //depot/projects/soc2008/trasz_nfs4acl/usr.sbin/nfsuserd/nfsuserd.c#2 integrate

Differences ...

==== //depot/projects/soc2008/trasz_nfs4acl/UPDATING#30 (text+ko) ====

@@ -22,6 +22,15 @@
 	to maximize performance.  (To disable malloc debugging, run
 	ln -s aj /etc/malloc.conf.)
 
+20090530:
+	Add VOP_ACCESSX(9).  File system modules need to be rebuilt.
+	Bump __FreeBSD_version to 800094.
+
+20090529:
+	Add mnt_xflag field to 'struct mount'.  File system modules
+	need to be rebuilt.
+	Bump __FreeBSD_version to 800093.
+
 20090528:
 	The compiling option ADAPTIVE_SX has been retired while it has been
 	introduced the option NO_ADAPTIVE_SX which handles the reversed logic.
@@ -1547,4 +1556,4 @@
 Contact Warner Losh if you have any questions about your use of
 this document.
 
-$FreeBSD: src/UPDATING,v 1.606 2009/05/29 01:49:27 attilio Exp $
+$FreeBSD: src/UPDATING,v 1.609 2009/05/30 14:01:01 trasz Exp $

==== //depot/projects/soc2008/trasz_nfs4acl/bin/cp/utils.c#9 (text+ko) ====

@@ -33,7 +33,7 @@
 #endif
 #endif /* not lint */
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/bin/cp/utils.c,v 1.57 2008/10/30 14:05:57 ivoras Exp $");
+__FBSDID("$FreeBSD: src/bin/cp/utils.c,v 1.58 2009/05/30 10:36:14 jilles Exp $");
 
 #include <sys/types.h>
 #include <sys/acl.h>
@@ -365,7 +365,7 @@
 	if (!gotstat || fs->st_flags != ts.st_flags)
 		if (fdval ?
 		    fchflags(fd, fs->st_flags) :
-		    (islink ? (errno = ENOSYS) :
+		    (islink ? lchflags(to.p_path, fs->st_flags) :
 		    chflags(to.p_path, fs->st_flags))) {
 			warn("chflags: %s", to.p_path);
 			rval = 1;

==== //depot/projects/soc2008/trasz_nfs4acl/bin/rm/rm.c#3 (text+ko) ====

@@ -39,7 +39,7 @@
 #endif /* not lint */
 #endif
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/bin/rm/rm.c,v 1.59 2009/04/29 18:08:18 imp Exp $");
+__FBSDID("$FreeBSD: src/bin/rm/rm.c,v 1.60 2009/05/30 10:42:37 jilles Exp $");
 
 #include <sys/stat.h>
 #include <sys/param.h>
@@ -234,7 +234,7 @@
 			else if (!uid &&
 				 (p->fts_statp->st_flags & (UF_APPEND|UF_IMMUTABLE)) &&
 				 !(p->fts_statp->st_flags & (SF_APPEND|SF_IMMUTABLE)) &&
-				 chflags(p->fts_accpath,
+				 lchflags(p->fts_accpath,
 					 p->fts_statp->st_flags &= ~(UF_APPEND|UF_IMMUTABLE)) < 0)
 				goto err;
 			continue;
@@ -253,7 +253,7 @@
 		if (!uid &&
 		    (p->fts_statp->st_flags & (UF_APPEND|UF_IMMUTABLE)) &&
 		    !(p->fts_statp->st_flags & (SF_APPEND|SF_IMMUTABLE)))
-			rval = chflags(p->fts_accpath,
+			rval = lchflags(p->fts_accpath,
 				       p->fts_statp->st_flags &= ~(UF_APPEND|UF_IMMUTABLE));
 		if (rval == 0) {
 			/*
@@ -368,7 +368,7 @@
 		if (!uid && !S_ISWHT(sb.st_mode) &&
 		    (sb.st_flags & (UF_APPEND|UF_IMMUTABLE)) &&
 		    !(sb.st_flags & (SF_APPEND|SF_IMMUTABLE)))
-			rval = chflags(f, sb.st_flags & ~(UF_APPEND|UF_IMMUTABLE));
+			rval = lchflags(f, sb.st_flags & ~(UF_APPEND|UF_IMMUTABLE));
 		if (rval == 0) {
 			if (S_ISWHT(sb.st_mode))
 				rval = undelete(f);

==== //depot/projects/soc2008/trasz_nfs4acl/lib/libarchive/Makefile#7 (text+ko) ====

@@ -1,9 +1,9 @@
-# $FreeBSD: src/lib/libarchive/Makefile,v 1.95 2009/04/27 22:39:43 kientzle Exp $
+# $FreeBSD: src/lib/libarchive/Makefile,v 1.97 2009/05/30 17:26:55 kientzle Exp $
 .include <bsd.own.mk>
 
 LIB=	archive
-DPADD=	${LIBBZ2} ${LIBZ}
-LDADD=	-lbz2 -lz
+DPADD=	${LIBBZ2} ${LIBZ} ${LIBMD}
+LDADD=	-lbz2 -lz -lmd
 
 # FreeBSD SHLIB_MAJOR value is managed as part of the FreeBSD system.
 # It has no real relation to the libarchive version number.
@@ -12,14 +12,16 @@
 CFLAGS+=	-DPLATFORM_CONFIG_H=\"config_freebsd.h\"
 CFLAGS+=	-I${.OBJDIR}
 #Uncomment to build with full lzma/xz support via liblzma
+#liblzma is not (yet?) part of the FreeBSD base system
 #CFLAGS+= -I/usr/local/include -DHAVE_LIBLZMA=1 -DHAVE_LZMA_H=1
 #LDADD+= -L/usr/local/lib -llzma
 
 .if ${MK_OPENSSL} != "no"
 CFLAGS+=	-DWITH_OPENSSL
+DPADD+=	${LIBCRYPTO}
+LDADD+=	-lcrypto
 .endif
 
-
 WARNS?=	6
 
 # Headers to be installed in /usr/include

==== //depot/projects/soc2008/trasz_nfs4acl/sbin/fsck_ffs/fsck.h#4 (text+ko) ====

@@ -57,7 +57,7 @@
  * SUCH DAMAGE.
  *
  *	@(#)fsck.h	8.4 (Berkeley) 5/9/95
- * $FreeBSD: src/sbin/fsck_ffs/fsck.h,v 1.41 2009/02/04 01:02:56 mckusick Exp $
+ * $FreeBSD: src/sbin/fsck_ffs/fsck.h,v 1.42 2009/05/29 20:01:50 lulf Exp $
  */
 
 #include <unistd.h>
@@ -297,8 +297,8 @@
 ufs2_daddr_t n_blks;		/* number of blocks in use */
 ino_t n_files;			/* number of files in use */
 
-int	got_siginfo;		/* received a SIGINFO */
-int	got_sigalarm;		/* received a SIGALRM */
+sig_atomic_t	got_siginfo;	/* received a SIGINFO */
+sig_atomic_t	got_sigalarm;	/* received a SIGALRM */
 
 #define	clearinode(dp) \
 	if (sblock.fs_magic == FS_UFS1_MAGIC) { \

==== //depot/projects/soc2008/trasz_nfs4acl/sbin/mksnap_ffs/Makefile#2 (text+ko) ====

@@ -1,8 +1,13 @@
-# $FreeBSD: src/sbin/mksnap_ffs/Makefile,v 1.1 2003/03/02 01:50:33 mckusick Exp $
+# $FreeBSD: src/sbin/mksnap_ffs/Makefile,v 1.2 2009/05/29 19:18:41 pjd Exp $
+
+.PATH:	${.CURDIR}/../mount
 
 PROG=	mksnap_ffs
+SRCS=	mksnap_ffs.c getmntopts.c
 MAN=	mksnap_ffs.8
 
+CFLAGS+=-I${.CURDIR}/../mount
+
 .if defined(NOSUID)
 BINMODE=550
 .else

==== //depot/projects/soc2008/trasz_nfs4acl/sbin/mksnap_ffs/mksnap_ffs.8#3 (text+ko) ====

@@ -32,9 +32,9 @@
 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 .\" SUCH DAMAGE.
 .\"
-.\" $FreeBSD: src/sbin/mksnap_ffs/mksnap_ffs.8,v 1.4 2008/07/26 13:18:33 kib Exp $
+.\" $FreeBSD: src/sbin/mksnap_ffs/mksnap_ffs.8,v 1.5 2009/05/29 19:18:41 pjd Exp $
 .\"
-.Dd January 19, 2003
+.Dd May 29, 2009
 .Dt MKSNAP_FFS 8
 .Os
 .Sh NAME
@@ -42,19 +42,12 @@
 .Nd take a file system snapshot
 .Sh SYNOPSIS
 .Nm
-.Ar mountpoint
 .Ar snapshot_name
 .Sh DESCRIPTION
 The
 .Nm
 utility creates a snapshot named
-.Ar snapshot_name
-on the file system mounted at
-.Ar mountpoint .
-The
-.Ar snapshot_name
-argument must be contained within the file system mounted at
-.Ar mountpoint .
+.Ar snapshot_name .
 .Pp
 The group ownership of the file is set to
 .Dq Li operator ;
@@ -64,9 +57,19 @@
 or members of the
 .Dq Li operator
 group.
+.Sh EXAMPLES
+Create a snapshot of
+.Pa /usr/home
+file system and mount the snapshot elsewhere:
+.Bd -literal -offset indent
+mksnap_ffs /usr/home/snapshot
+mdconfig -a -t vnode -o readonly -f /usr/home/snapshot
+mount -o ro /dev/md0 /mnt/
+.Ed
 .Sh SEE ALSO
 .Xr chmod 2 ,
 .Xr chown 8 ,
+.Xr mdconfig 8,
 .Xr mount 8
 .Sh CAVEATS
 The disk full situation is not handled gracefully and may

==== //depot/projects/soc2008/trasz_nfs4acl/sbin/mksnap_ffs/mksnap_ffs.c#2 (text+ko) ====

@@ -32,7 +32,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $FreeBSD: src/sbin/mksnap_ffs/mksnap_ffs.c,v 1.8 2004/12/08 11:54:50 phk Exp $
+ * $FreeBSD: src/sbin/mksnap_ffs/mksnap_ffs.c,v 1.9 2009/05/29 19:18:41 pjd Exp $
  */
 
 #include <sys/param.h>
@@ -44,31 +44,38 @@
 #include <fcntl.h>
 #include <grp.h>
 #include <limits.h>
+#include <mntopts.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
 #include <sysexits.h>
 #include <unistd.h>
 
-void usage(void);
+static void
+usage(void)
+{
+
+	errx(EX_USAGE, "usage: mksnap_ffs snapshot_name");
+}
 
 int
 main(int argc, char **argv)
 {
-	char *dir, *cp, path[PATH_MAX];
+	char errmsg[255], path[PATH_MAX];
+	char *cp, *snapname;
 	struct statfs stfsbuf;
-	struct ufs_args args;
 	struct group *grp;
 	struct stat stbuf;
-	int fd;
+	struct iovec *iov;
+	int fd, iovlen;
 
-	if (argc != 3)
+	if (argc == 2)
+		snapname = argv[1];
+	else if (argc == 3)
+		snapname = argv[2];	/* Old usage. */
+	else
 		usage();
 
-	dir = argv[1];
-	memset(&args, 0, sizeof args);
-	args.fspec = argv[2];
-
 	/*
 	 * Check that the user running this program has permission
 	 * to create and remove a snapshot file from the directory
@@ -77,15 +84,15 @@
 	 * will not be able to remove the snapshot when they are
 	 * done with it.
 	 */
-	if (strlen(args.fspec) >= PATH_MAX)
-		errx(1, "pathname too long %s", args.fspec);
-	cp = strrchr(args.fspec, '/');
+	if (strlen(snapname) >= PATH_MAX)
+		errx(1, "pathname too long %s", snapname);
+	cp = strrchr(snapname, '/');
 	if (cp == NULL) {
 		strlcpy(path, ".", PATH_MAX);
-	} else if (cp == args.fspec) {
+	} else if (cp == snapname) {
 		strlcpy(path, "/", PATH_MAX);
 	} else {
-		strlcpy(path, args.fspec, cp - args.fspec + 1);
+		strlcpy(path, snapname, cp - snapname + 1);
 	}
 	if (statfs(path, &stfsbuf) < 0)
 		err(1, "%s", path);
@@ -104,27 +111,26 @@
 	 */
 	if ((grp = getgrnam("operator")) == NULL)
 		errx(1, "Cannot retrieve operator gid");
-	if (mount("ufs", dir, MNT_UPDATE | MNT_SNAPSHOT | stfsbuf.f_flags,
-	    &args) < 0)
-		err(1, "Cannot create %s", args.fspec);
-	if ((fd = open(args.fspec, O_RDONLY)) < 0)
-		err(1, "Cannot open %s", args.fspec);
+
+	build_iovec(&iov, &iovlen, "fstype", "ffs", 4);
+	build_iovec(&iov, &iovlen, "from", snapname, (size_t)-1);
+	build_iovec(&iov, &iovlen, "fspath", stfsbuf.f_mntonname, (size_t)-1);
+	build_iovec(&iov, &iovlen, "errmsg", errmsg, sizeof(errmsg));
+	build_iovec(&iov, &iovlen, "update", NULL, 0);
+	build_iovec(&iov, &iovlen, "snapshot", NULL, 0);
+
+	if (nmount(iov, iovlen, stfsbuf.f_flags) < 0)
+		err(1, "Cannot create snapshot %s: %s", snapname, errmsg);
+	if ((fd = open(snapname, O_RDONLY)) < 0)
+		err(1, "Cannot open %s", snapname);
 	if (fstat(fd, &stbuf) != 0)
-		err(1, "Cannot stat %s", args.fspec);
+		err(1, "Cannot stat %s", snapname);
 	if ((stbuf.st_flags & SF_SNAPSHOT) == 0)
-		errx(1, "File %s is not a snapshot", args.fspec);
+		errx(1, "File %s is not a snapshot", snapname);
 	if (fchown(fd, -1, grp->gr_gid) != 0)
-		err(1, "Cannot chown %s", args.fspec);
+		err(1, "Cannot chown %s", snapname);
 	if (fchmod(fd, S_IRUSR | S_IRGRP) != 0)
-		err(1, "Cannot chmod %s", args.fspec);
+		err(1, "Cannot chmod %s", snapname);
 
 	exit(EXIT_SUCCESS);
 }
-
-void
-usage()
-{
-
-	fprintf(stderr, "usage: mksnap_ffs mountpoint snapshot_name\n");
-	exit(EX_USAGE);
-}

==== //depot/projects/soc2008/trasz_nfs4acl/share/man/man9/Makefile#15 (text+ko) ====

@@ -1,4 +1,4 @@
-# $FreeBSD: src/share/man/man9/Makefile,v 1.350 2009/05/27 16:36:54 zml Exp $
+# $FreeBSD: src/share/man/man9/Makefile,v 1.351 2009/05/30 13:59:05 trasz Exp $
 
 MAN=	accept_filter.9 \
 	accf_data.9 \
@@ -1289,6 +1289,7 @@
 MLINKS+=vm_page_wakeup.9 vm_page_busy.9 \
 	vm_page_wakeup.9 vm_page_flash.9
 MLINKS+=vm_page_wire.9 vm_page_unwire.9
+MLINKS+=VOP_ACCESS.9 VOP_ACCESSX.9
 MLINKS+=VOP_ATTRIB.9 VOP_GETATTR.9 \
 	VOP_ATTRIB.9 VOP_SETATTR.9
 MLINKS+=VOP_CREATE.9 VOP_MKDIR.9 \

==== //depot/projects/soc2008/trasz_nfs4acl/share/man/man9/VOP_ACCESS.9#7 (text+ko) ====

@@ -27,19 +27,22 @@
 .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
 .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 .\"
-.\" $FreeBSD: src/share/man/man9/VOP_ACCESS.9,v 1.24 2009/03/30 20:56:37 trasz Exp $
+.\" $FreeBSD: src/share/man/man9/VOP_ACCESS.9,v 1.25 2009/05/30 13:59:05 trasz Exp $
 .\"
-.Dd July 24, 1996
+.Dd May 30, 2009
 .Os
 .Dt VOP_ACCESS 9
 .Sh NAME
-.Nm VOP_ACCESS
+.Nm VOP_ACCESS ,
+.Nm VOP_ACCESSX
 .Nd "check access permissions of a file or Unix domain socket"
 .Sh SYNOPSIS
 .In sys/param.h
 .In sys/vnode.h
 .Ft int
 .Fn VOP_ACCESS "struct vnode *vp" "accmode_t accmode" "struct ucred *cred" "struct thread *td"
+.Ft int
+.Fn VOP_ACCESSX "struct vnode *vp" "accmode_t accmode" "struct ucred *cred" "struct thread *td"
 .Sh DESCRIPTION
 This entry point checks the access permissions of the file against the
 given credentials.
@@ -63,6 +66,20 @@
 .Dv VWRITE
 or
 .Dv VEXEC .
+For
+.Fn VOP_ACCESS ,
+the only flags that may be set in
+.Fa accmode
+are
+.Dv VEXEC ,
+.Dv VWRITE ,
+.Dv VREAD ,
+.Dv VADMIN
+and
+.Dv VAPPEND .
+To check for other bits, one has to use
+.Fn VOP_ACCESSX
+instead.
 .Sh LOCKS
 The vnode will be locked on entry and should remain locked on return.
 .Sh RETURN VALUES

==== //depot/projects/soc2008/trasz_nfs4acl/sys/amd64/amd64/dump_machdep.c#5 (text+ko) ====

@@ -25,7 +25,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/dump_machdep.c,v 1.17 2008/10/31 10:11:35 kib Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/dump_machdep.c,v 1.18 2009/05/29 21:27:12 jamie Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -34,7 +34,6 @@
 #include <sys/sysctl.h>
 #include <sys/kernel.h>
 #include <sys/kerneldump.h>
-#include <sys/vimage.h>
 #include <vm/vm.h>
 #include <vm/pmap.h>
 #include <machine/elf.h>

==== //depot/projects/soc2008/trasz_nfs4acl/sys/amd64/amd64/minidump_machdep.c#7 (text) ====

@@ -25,7 +25,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/minidump_machdep.c,v 1.9 2008/10/31 10:11:35 kib Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/minidump_machdep.c,v 1.10 2009/05/29 21:27:12 jamie Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -34,7 +34,6 @@
 #include <sys/kernel.h>
 #include <sys/kerneldump.h>
 #include <sys/msgbuf.h>
-#include <sys/vimage.h>
 #include <vm/vm.h>
 #include <vm/pmap.h>
 #include <machine/atomic.h>

==== //depot/projects/soc2008/trasz_nfs4acl/sys/arm/arm/dump_machdep.c#6 (text+ko) ====

@@ -25,7 +25,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/arm/arm/dump_machdep.c,v 1.7 2009/02/02 20:09:14 cognet Exp $");
+__FBSDID("$FreeBSD: src/sys/arm/arm/dump_machdep.c,v 1.8 2009/05/29 21:27:12 jamie Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -35,7 +35,6 @@
 #include <sys/kernel.h>
 #include <sys/proc.h>
 #include <sys/kerneldump.h>
-#include <sys/vimage.h>
 #include <vm/vm.h>
 #include <vm/pmap.h>
 #include <machine/elf.h>

==== //depot/projects/soc2008/trasz_nfs4acl/sys/arm/xscale/ixp425/if_npe.c#7 (text+ko) ====

@@ -23,7 +23,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/arm/xscale/ixp425/if_npe.c,v 1.15 2009/05/23 19:14:20 sam Exp $");
+__FBSDID("$FreeBSD: src/sys/arm/xscale/ixp425/if_npe.c,v 1.17 2009/05/30 18:23:55 sam Exp $");
 
 /*
  * Intel XScale NPE Ethernet driver.
@@ -229,7 +229,7 @@
 static void	npe_txdone(int qid, void *arg);
 static int	npe_rxbuf_init(struct npe_softc *, struct npebuf *,
 			struct mbuf *);
-static void	npe_rxdone(int qid, void *arg);
+static int	npe_rxdone(int qid, void *arg);
 static void	npeinit(void *);
 static void	npestart_locked(struct ifnet *);
 static void	npestart(struct ifnet *);
@@ -777,7 +777,7 @@
 	 */
 	sc->rx_qid = npeconfig[sc->sc_npeid].rx_qid;
 	ixpqmgr_qconfig(sc->rx_qid, npe_rxbuf, 0,  1,
-		IX_QMGR_Q_SOURCE_ID_NOT_E, npe_rxdone, sc);
+		IX_QMGR_Q_SOURCE_ID_NOT_E, (qconfig_hand_t *)npe_rxdone, sc);
 	sc->rx_freeqid = npeconfig[sc->sc_npeid].rx_freeqid;
 	ixpqmgr_qconfig(sc->rx_freeqid,	npe_rxbuf, 0, npe_rxbuf/2, 0, NULL, sc);
 	/*
@@ -1091,7 +1091,7 @@
  * from the hardware queue and pass the frames up the
  * stack. Pass the rx buffers to the free list.
  */
-static void
+static int
 npe_rxdone(int qid, void *arg)
 {
 #define	P2V(a, dma) \
@@ -1099,6 +1099,7 @@
 	struct npe_softc *sc = arg;
 	struct npedma *dma = &sc->rxdma;
 	uint32_t entry;
+	int rx_npkts = 0;
 
 	while (ixpqmgr_qread(qid, &entry) == 0) {
 		struct npebuf *npe = P2V(NPE_QM_Q_ADDR(entry), dma);
@@ -1132,6 +1133,7 @@
 
 			ifp->if_ipackets++;
 			ifp->if_input(ifp, mrx);
+			rx_npkts++;
 		} else {
 			/* discard frame and re-use mbuf */
 			m = npe->ix_m;
@@ -1143,19 +1145,22 @@
 			/* XXX should not happen */
 		}
 	}
+	return rx_npkts;
 #undef P2V
 }
 
 #ifdef DEVICE_POLLING
-static void
+static int
 npe_poll(struct ifnet *ifp, enum poll_cmd cmd, int count)
 {
 	struct npe_softc *sc = ifp->if_softc;
+	int rx_npkts = 0;
 
 	if (ifp->if_drv_flags & IFF_DRV_RUNNING) {
-		npe_rxdone(sc->rx_qid, sc);
+		rx_npkts = npe_rxdone(sc->rx_qid, sc);
 		npe_txdone(sc->tx_doneqid, sc);	/* XXX polls both NPE's */
 	}
+	return rx_npkts;
 }
 #endif /* DEVICE_POLLING */
 

==== //depot/projects/soc2008/trasz_nfs4acl/sys/arm/xscale/ixp425/ixp425_qmgr.c#4 (text+ko) ====

@@ -57,7 +57,7 @@
  * SUCH DAMAGE.
 */
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/arm/xscale/ixp425/ixp425_qmgr.c,v 1.5 2008/12/20 03:26:09 sam Exp $");
+__FBSDID("$FreeBSD: src/sys/arm/xscale/ixp425/ixp425_qmgr.c,v 1.6 2009/05/30 15:14:44 attilio Exp $");
 
 /*
  * Intel XScale Queue Manager support.
@@ -338,7 +338,7 @@
 
 int
 ixpqmgr_qconfig(int qId, int qEntries, int ne, int nf, int srcSel,
-    void (*cb)(int, void *), void *cbarg)
+    qconfig_hand_t *cb, void *cbarg)
 {
 	struct ixpqmgr_softc *sc = ixpqmgr_sc;
 	struct qmgrInfo *qi = &sc->qinfo[qId];

==== //depot/projects/soc2008/trasz_nfs4acl/sys/arm/xscale/ixp425/ixp425_qmgr.h#2 (text+ko) ====

@@ -26,7 +26,7 @@
  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
  * THE POSSIBILITY OF SUCH DAMAGES.
  *
- * $FreeBSD: src/sys/arm/xscale/ixp425/ixp425_qmgr.h,v 1.1 2006/11/19 23:55:23 sam Exp $
+ * $FreeBSD: src/sys/arm/xscale/ixp425/ixp425_qmgr.h,v 1.2 2009/05/30 15:14:44 attilio Exp $
  */
 
 /*-
@@ -229,8 +229,10 @@
 #define IX_QMGR_ENTRY2_OFFSET 1
 #define IX_QMGR_ENTRY4_OFFSET 3
 
+typedef void qconfig_hand_t(int, void *);
+
 int	ixpqmgr_qconfig(int qId, int qSizeInWords, int ne, int nf, int srcSel,
-	    void (*cb)(int, void *), void *cbarg);
+	    qconfig_hand_t *cb, void *cbarg);
 int	ixpqmgr_qwrite(int qId, uint32_t entry);
 int	ixpqmgr_qread(int qId, uint32_t *entry);
 int	ixpqmgr_qreadm(int qId, uint32_t n, uint32_t *p);

==== //depot/projects/soc2008/trasz_nfs4acl/sys/cddl/compat/opensolaris/kern/opensolaris.c#3 (text+ko) ====

@@ -22,7 +22,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $FreeBSD: src/sys/cddl/compat/opensolaris/kern/opensolaris.c,v 1.2 2009/05/08 14:11:06 zec Exp $
+ * $FreeBSD: src/sys/cddl/compat/opensolaris/kern/opensolaris.c,v 1.3 2009/05/29 21:27:12 jamie Exp $
  *
  */
 
@@ -31,11 +31,11 @@
 #include <sys/conf.h>
 #include <sys/cpuvar.h>
 #include <sys/errno.h>
+#include <sys/jail.h>
 #include <sys/kernel.h>
 #include <sys/misc.h>
 #include <sys/module.h>
 #include <sys/mutex.h>
-#include <sys/vimage.h>
 
 cpu_core_t	cpu_core[MAXCPU];
 kmutex_t	cpu_lock;
@@ -83,7 +83,7 @@
 
 	switch (type) {
 	case MOD_LOAD:
-		utsname.nodename = G_hostname;
+		utsname.nodename = prison0.pr_host;
 		break;
 
 	case MOD_UNLOAD:

==== //depot/projects/soc2008/trasz_nfs4acl/sys/cddl/compat/opensolaris/kern/opensolaris_misc.c#4 (text+ko) ====

@@ -25,9 +25,10 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/cddl/compat/opensolaris/kern/opensolaris_misc.c,v 1.5 2009/05/08 14:11:06 zec Exp $");
+__FBSDID("$FreeBSD: src/sys/cddl/compat/opensolaris/kern/opensolaris_misc.c,v 1.6 2009/05/29 21:27:12 jamie Exp $");
 
 #include <sys/param.h>
+#include <sys/jail.h>
 #include <sys/kernel.h>
 #include <sys/libkern.h>
 #include <sys/limits.h>
@@ -57,7 +58,7 @@
 {
 
 	if (str == hw_serial) {
-		*result = hostid;
+		*result = prison0.pr_hostid;
 		return (0);
 	}
 

==== //depot/projects/soc2008/trasz_nfs4acl/sys/compat/linux/linux_misc.c#13 (text+ko) ====

@@ -28,7 +28,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/compat/linux/linux_misc.c,v 1.236 2009/05/10 18:43:43 dchagin Exp $");
+__FBSDID("$FreeBSD: src/sys/compat/linux/linux_misc.c,v 1.237 2009/05/29 21:27:12 jamie Exp $");
 
 #include "opt_compat.h"
 #include "opt_mac.h"
@@ -64,7 +64,6 @@
 #include <sys/vnode.h>
 #include <sys/wait.h>
 #include <sys/cpuset.h>
-#include <sys/vimage.h>
 
 #include <security/mac/mac_framework.h>
 
@@ -715,10 +714,10 @@
 int
 linux_newuname(struct thread *td, struct linux_newuname_args *args)
 {
-	INIT_VPROCG(TD_TO_VPROCG(td));
 	struct l_new_utsname utsname;
 	char osname[LINUX_MAX_UTSNAME];
 	char osrelease[LINUX_MAX_UTSNAME];
+	struct prison *pr;
 	char *p;
 
 #ifdef DEBUG
@@ -741,9 +740,10 @@
 		}
 	strlcpy(utsname.machine, linux_platform, LINUX_MAX_UTSNAME);
 
-	mtx_lock(&hostname_mtx);
-	strlcpy(utsname.domainname, V_domainname, LINUX_MAX_UTSNAME);
-	mtx_unlock(&hostname_mtx);
+	pr = td->td_ucred->cr_prison;
+	mtx_lock(&pr->pr_mtx);
+	strlcpy(utsname.domainname, pr->pr_domain, LINUX_MAX_UTSNAME);
+	mtx_unlock(&pr->pr_mtx);
 
 	return (copyout(&utsname, args->buf, sizeof(utsname)));
 }

==== //depot/projects/soc2008/trasz_nfs4acl/sys/compat/svr4/svr4_stat.c#6 (text+ko) ====

@@ -27,7 +27,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/compat/svr4/svr4_stat.c,v 1.29 2009/05/29 06:27:30 delphij Exp $");
+__FBSDID("$FreeBSD: src/sys/compat/svr4/svr4_stat.c,v 1.31 2009/05/30 07:33:32 delphij Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -43,7 +43,6 @@
 #include <sys/sysctl.h>
 #include <sys/sysproto.h>
 #include <sys/un.h>
-#include <sys/vimage.h>
 
 #include <vm/vm.h>
 
@@ -386,7 +385,7 @@
 	return 0;
 }
 
-/*extern char ostype[], hostname[], osrelease[], version[], machine[];*/
+/*extern char ostype[], osrelease[], version[], machine[];*/
 
 int
 svr4_sys_uname(td, uap)
@@ -412,15 +411,12 @@
 	struct thread *td;
 	struct svr4_sys_systeminfo_args *uap;
 {
-	INIT_VPROCG(TD_TO_VPROCG(td));
+	struct prison	*pr;
 	char		*str = NULL;
 	int		error = 0;
 	register_t	*retval = td->td_retval;
 	size_t		len = 0;
-	char		buf[11];   /* XXX NetBSD uses 256, but we use 11
-				     here as that seems like awfully
-				     excessive kstack usage for hostid
-				     string... */
+	char		buf[MAXHOSTNAMELEN];
 	u_int		rlen = uap->len;
 
 	switch (uap->what) {
@@ -429,7 +425,8 @@
 		break;
 
 	case SVR4_SI_HOSTNAME:
-		str = V_hostname;
+		getcredhostname(td->td_ucred, buf, sizeof(buf));
+		str = buf;
 		break;
 
 	case SVR4_SI_RELEASE:
@@ -461,7 +458,10 @@
 		break;
 
 	case SVR4_SI_HW_SERIAL:
-		snprintf(buf, sizeof(buf), "%lu", hostid);
+		pr = td->td_ucred->cr_prison;
+		mtx_lock(&pr->pr_mtx);
+		snprintf(buf, sizeof(buf), "%lu", pr->pr_hostid);
+		mtx_unlock(&pr->pr_mtx);
 		str = buf;
 		break;
 
@@ -470,8 +470,11 @@
 		break;
 
 	case SVR4_SI_SRPC_DOMAIN:
-		/* XXXRW: locking? */
-		str = V_domainname;
+		pr = td->td_ucred->cr_prison;
+		mtx_lock(&pr->pr_mtx);
+		strlcpy(buf, pr->pr_domain, sizeof(buf));
+		mtx_unlock(&pr->pr_mtx);
+		str = buf;
 		break;
 
 	case SVR4_SI_PLATFORM:

==== //depot/projects/soc2008/trasz_nfs4acl/sys/ddb/db_textdump.c#4 (text+ko) ====

@@ -57,7 +57,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/ddb/db_textdump.c,v 1.5 2008/10/01 22:08:53 peter Exp $");
+__FBSDID("$FreeBSD: src/sys/ddb/db_textdump.c,v 1.6 2009/05/29 21:27:12 jamie Exp $");
 
 #include "opt_config.h"
 
@@ -68,7 +68,6 @@
 #include <sys/msgbuf.h>
 #include <sys/sysctl.h>
 #include <sys/systm.h>
-#include <sys/vimage.h>
 
 #include <ddb/ddb.h>
 #include <ddb/db_lex.h>

==== //depot/projects/soc2008/trasz_nfs4acl/sys/dev/bge/if_bge.c#10 (text+ko) ====

@@ -32,7 +32,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/bge/if_bge.c,v 1.222 2009/05/14 22:36:56 delphij Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/bge/if_bge.c,v 1.225 2009/05/30 17:56:19 attilio Exp $");
 
 /*
  * Broadcom BCM570x family gigabit ethernet driver for FreeBSD.
@@ -332,7 +332,7 @@
 static int bge_get_eaddr(struct bge_softc *, uint8_t[]);
 
 static void bge_txeof(struct bge_softc *);
-static void bge_rxeof(struct bge_softc *);
+static int bge_rxeof(struct bge_softc *);
 
 static void bge_asf_driver_up (struct bge_softc *);
 static void bge_tick(void *);
@@ -390,7 +390,7 @@
 static int bge_miibus_writereg(device_t, int, int, int);
 static void bge_miibus_statchg(device_t);
 #ifdef DEVICE_POLLING
-static void bge_poll(struct ifnet *ifp, enum poll_cmd cmd, int count);
+static int bge_poll(struct ifnet *ifp, enum poll_cmd cmd, int count);
 #endif
 
 #define	BGE_RESET_START 1
@@ -3050,18 +3050,18 @@
  * 2) the frame is from the standard receive ring
  */
 
-static void
+static int
 bge_rxeof(struct bge_softc *sc)
 {
 	struct ifnet *ifp;
-	int stdcnt = 0, jumbocnt = 0;
+	int rx_npkts = 0, stdcnt = 0, jumbocnt = 0;
 
 	BGE_LOCK_ASSERT(sc);
 
 	/* Nothing to do. */
 	if (sc->bge_rx_saved_considx ==
 	    sc->bge_ldata.bge_status_block->bge_idx[0].bge_rx_prod_idx)
-		return;
+		return (rx_npkts);
 
 	ifp = sc->bge_ifp;
 
@@ -3193,9 +3193,10 @@
 		BGE_UNLOCK(sc);
 		(*ifp->if_input)(ifp, m);
 		BGE_LOCK(sc);
+		rx_npkts++;
 
 		if (!(ifp->if_drv_flags & IFF_DRV_RUNNING))
-			return;
+			return (rx_npkts);
 	}
 
 	if (stdcnt > 0)
@@ -3219,6 +3220,7 @@
 	if (BGE_IS_5705_PLUS(sc))

>>> TRUNCATED FOR MAIL (1000 lines) <<<



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200905301916.n4UJGYCC002624>