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>