From owner-p4-projects@FreeBSD.ORG Wed Sep 10 22:26:12 2008 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id A0F0F1065673; Wed, 10 Sep 2008 22:26:12 +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 62E25106566B for ; Wed, 10 Sep 2008 22:26:12 +0000 (UTC) (envelope-from trasz@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 4F72B8FC15 for ; Wed, 10 Sep 2008 22:26:12 +0000 (UTC) (envelope-from trasz@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id m8AMQCw5090774 for ; Wed, 10 Sep 2008 22:26:12 GMT (envelope-from trasz@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id m8AMQBMQ090641 for perforce@freebsd.org; Wed, 10 Sep 2008 22:26:11 GMT (envelope-from trasz@freebsd.org) Date: Wed, 10 Sep 2008 22:26:11 GMT Message-Id: <200809102226.m8AMQBMQ090641@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to trasz@freebsd.org using -f From: Edward Tomasz Napierala To: Perforce Change Reviews Cc: Subject: PERFORCE change 149579 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: Wed, 10 Sep 2008 22:26:12 -0000 http://perforce.freebsd.org/chv.cgi?CH=149579 Change 149579 by trasz@trasz_traszkan on 2008/09/10 22:25:56 IFC. Affected files ... .. //depot/projects/soc2008/trasz_nfs4acl/ObsoleteFiles.inc#10 integrate .. //depot/projects/soc2008/trasz_nfs4acl/bin/cp/utils.c#5 integrate .. //depot/projects/soc2008/trasz_nfs4acl/bin/setfacl/setfacl.c#14 integrate .. //depot/projects/soc2008/trasz_nfs4acl/contrib/gcc/config/arm/arm.h#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/contrib/ntp/libparse/clk_rawdcf.c#3 integrate .. //depot/projects/soc2008/trasz_nfs4acl/etc/rc.initdiskless#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/include/rpc/svc_auth.h#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/lib/libarchive/archive_entry_link_resolver.c#3 integrate .. //depot/projects/soc2008/trasz_nfs4acl/lib/libarchive/archive_write_disk.3#3 integrate .. //depot/projects/soc2008/trasz_nfs4acl/lib/libarchive/archive_write_disk.c#7 integrate .. //depot/projects/soc2008/trasz_nfs4acl/lib/libarchive/test/Makefile#4 integrate .. //depot/projects/soc2008/trasz_nfs4acl/lib/libarchive/test/test_read_format_gtar_sparse.c#3 integrate .. //depot/projects/soc2008/trasz_nfs4acl/lib/libarchive/test/test_write_disk.c#5 integrate .. //depot/projects/soc2008/trasz_nfs4acl/lib/libarchive/test/test_write_disk_hardlink.c#5 integrate .. //depot/projects/soc2008/trasz_nfs4acl/lib/libarchive/test/test_write_disk_secure.c#4 integrate .. //depot/projects/soc2008/trasz_nfs4acl/lib/libc/gen/arc4random.c#4 integrate .. //depot/projects/soc2008/trasz_nfs4acl/lib/libc/regex/re_format.7#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/lib/libc/rpc/svc.c#3 integrate .. //depot/projects/soc2008/trasz_nfs4acl/lib/libc/rpc/svc_auth.c#3 integrate .. //depot/projects/soc2008/trasz_nfs4acl/lib/libc/stdlib/malloc.c#6 integrate .. //depot/projects/soc2008/trasz_nfs4acl/lib/libgeom/geom_util.c#3 integrate .. //depot/projects/soc2008/trasz_nfs4acl/lib/libgeom/libgeom.3#4 integrate .. //depot/projects/soc2008/trasz_nfs4acl/lib/libgeom/libgeom.h#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/lib/librpcsec_gss/svc_rpcsec_gss.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/lib/libstand/stand.h#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/lib/libstand/ufs.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/lib/libstand/zalloc_malloc.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/lib/libthr/thread/thr_exit.c#3 integrate .. //depot/projects/soc2008/trasz_nfs4acl/release/Makefile.inc.docports#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/release/doc/en_US.ISO8859-1/relnotes/article.sgml#5 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sbin/fdisk/fdisk.c#3 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sbin/ipfw/ipfw2.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sbin/md5/md5.1#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sbin/natd/natd.c#3 integrate .. //depot/projects/soc2008/trasz_nfs4acl/share/man/man4/Makefile#7 integrate .. //depot/projects/soc2008/trasz_nfs4acl/share/man/man4/if_bridge.4#3 integrate .. //depot/projects/soc2008/trasz_nfs4acl/share/man/man4/man4.i386/Makefile#4 integrate .. //depot/projects/soc2008/trasz_nfs4acl/share/man/man4/man4.i386/sbni.4#3 branch .. //depot/projects/soc2008/trasz_nfs4acl/share/man/man4/pts.4#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/share/man/man4/tap.4#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/share/man/man9/CTASSERT.9#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/share/man/man9/bus_dma.9#3 integrate .. //depot/projects/soc2008/trasz_nfs4acl/share/misc/committers-ports.dot#6 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/amd64/amd64/cpu_switch.S#4 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/amd64/amd64/genassym.c#4 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/amd64/amd64/machdep.c#4 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/amd64/amd64/mp_machdep.c#4 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/amd64/amd64/trap.c#4 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/amd64/include/pcb.h#3 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/amd64/include/pcpu.h#3 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/amd64/include/segments.h#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/amd64/linux32/linux32_genassym.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/amd64/linux32/linux32_locore.s#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/amd64/linux32/linux32_machdep.c#3 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/amd64/pci/pci_cfgreg.c#3 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/arm/at91/at91.c#3 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/arm/at91/at91_mci.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/arm/at91/at91_ssc.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/arm/at91/kb920x_machdep.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/arm/conf/KB920X#3 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/arm/conf/NSLU#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/boot/common/dev_net.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/boot/common/devopen.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/boot/forth/loader.conf#9 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/boot/powerpc/uboot/start.S#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/boot/sparc64/loader/main.c#4 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/boot/uboot/common/main.c#3 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/boot/uboot/lib/glue.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/boot/uboot/lib/glue.h#3 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/cddl/contrib/opensolaris/uts/common/fs/gfs.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ctldir.c#4 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c#8 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_znode.c#3 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/compat/linux/linux_file.c#3 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/compat/linux/linux_socket.c#3 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/conf/NOTES#11 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/conf/files.i386#5 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/conf/files.pc98#4 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/conf/files.sparc64#3 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/conf/files.sun4v#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/contrib/dev/ath/public/mipsisa32-be-elf.hal.o.uu#3 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/contrib/dev/ath/public/wisoc.hal.o.uu#1 branch .. //depot/projects/soc2008/trasz_nfs4acl/sys/contrib/dev/ath/public/wisoc.inc#1 branch .. //depot/projects/soc2008/trasz_nfs4acl/sys/contrib/dev/ath/public/wisoc.opt_ah.h#1 branch .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/acpi_support/acpi_fujitsu.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/asmc/asmc.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/asmc/asmcvar.h#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/ata/ata-chipset.c#5 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/ata/ata-pci.h#3 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/ath/if_athvar.h#3 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/bge/if_bge.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/cxgb/cxgb_adapter.h#4 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/cxgb/cxgb_main.c#5 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/cxgb/cxgb_sge.c#5 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/drm/ati_pcigart.c#3 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/drm/drm_bufs.c#3 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/drm/drm_pci.c#3 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/drm/i915_dma.c#3 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/drm/mach64_dma.c#3 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/esp/esp_sbus.c#3 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/esp/ncr53c9x.c#3 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/esp/ncr53c9xreg.h#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/esp/ncr53c9xvar.h#3 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/ic/i8251.h#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/ic/i8255.h#1 branch .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/iicbus/ds133x.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/iicbus/ds1672.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/jme/if_jme.c#4 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/jme/if_jmereg.h#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/le/if_le_ledma.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/mii/e1000phy.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/mii/miidevs#4 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/re/if_re.c#6 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/sbni/if_sbni.c#3 branch .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/sbni/if_sbni_isa.c#3 branch .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/sbni/if_sbni_pci.c#3 branch .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/sbni/if_sbnireg.h#3 branch .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/sbni/if_sbnivar.h#3 branch .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/si/si.c#3 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/sound/pci/hda/hdac.c#4 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/uart/uart_cpu_pc98.c#3 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/usb/if_zyd.c#3 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/usb/if_zydreg.h#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/usb/ucom.c#3 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/usb/ucomvar.h#3 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/usb/usb_quirks.c#3 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/usb/usbdevs#7 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/fs/tmpfs/tmpfs.h#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/fs/tmpfs/tmpfs_fifoops.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/fs/tmpfs/tmpfs_fifoops.h#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/fs/tmpfs/tmpfs_subr.c#3 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/fs/tmpfs/tmpfs_vfsops.c#3 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/fs/tmpfs/tmpfs_vnops.c#4 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/fs/tmpfs/tmpfs_vnops.h#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/geom/geom_dev.c#3 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/geom/part/g_part.c#4 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/geom/part/g_part.h#3 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/geom/part/g_part_gpt.c#3 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/gnu/fs/xfs/FreeBSD/xfs_vnode.h#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/i386/conf/NOTES#6 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/i386/conf/XEN#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/i386/cpufreq/est.c#5 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/i386/i386/local_apic.c#4 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/i386/i386/machdep.c#3 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/i386/include/pmc_mdep.h#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/i386/include/xen/xenpmap.h#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/i386/include/xen/xenvar.h#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/i386/isa/isa.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/i386/linux/linux_genassym.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/i386/linux/linux_locore.s#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/i386/pci/pci_cfgreg.c#3 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/i386/xen/mp_machdep.c#1 branch .. //depot/projects/soc2008/trasz_nfs4acl/sys/i386/xen/mptable.c#1 branch .. //depot/projects/soc2008/trasz_nfs4acl/sys/i386/xen/pmap.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/i386/xen/xen_machdep.c#3 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/kern/kern_exec.c#7 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/kern/kern_lock.c#6 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/kern/kern_mutex.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/kern/kern_proc.c#5 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/kern/kern_resource.c#3 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/kern/kern_rmlock.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/kern/kern_rwlock.c#3 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/kern/kern_sx.c#3 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/kern/subr_sleepqueue.c#4 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/kern/subr_turnstile.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/kern/subr_witness.c#5 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/kern/tty.c#6 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/kern/tty_compat.c#3 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/kern/tty_pts.c#4 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/kern/tty_ttydisc.c#4 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/kern/uipc_mbuf.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/kern/uipc_mqueue.c#4 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/kern/uipc_sockbuf.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/kern/vfs_mount.c#8 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/mips/adm5120/admpci.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/mips/adm5120/if_admsw.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/mips/adm5120/if_admswvar.h#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/mips/adm5120/obio.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/mips/adm5120/std.adm5120#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/mips/adm5120/uart_bus_adm5120.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/mips/adm5120/uart_cpu_adm5120.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/mips/adm5120/uart_dev_adm5120.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/mips/conf/ADM5120#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/mips/conf/IDT#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/mips/conf/MALTA#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/mips/conf/SENTRY5#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/mips/idt/idtpci.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/mips/idt/if_kr.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/mips/idt/obio.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/mips/idt/std.idt#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/mips/idt/uart_bus_rc32434.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/mips/malta/files.malta#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/mips/malta/gt.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/mips/malta/gt_pci.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/mips/malta/malta_machdep.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/mips/malta/obio.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/mips/malta/std.malta#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/mips/malta/uart_bus_maltausart.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/mips/malta/uart_cpu_maltausart.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/mips/malta/yamon.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/mips/mips/in_cksum.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/mips/mips/intr_machdep.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/mips/sentry5/obio.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/mips/sentry5/s5_machdep.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/mips/sentry5/uart_bus_sbusart.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/mips/sentry5/uart_cpu_sbusart.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/modules/Makefile#8 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/modules/sbni/Makefile#3 branch .. //depot/projects/soc2008/trasz_nfs4acl/sys/net/if_bridge.c#5 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/net/if_mib.c#3 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/net/if_tap.c#3 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/net/if_tap.h#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/net/route.h#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/net80211/ieee80211.c#4 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/net80211/ieee80211.h#3 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/net80211/ieee80211_ddb.c#4 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/net80211/ieee80211_freebsd.h#3 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/net80211/ieee80211_ht.c#4 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/net80211/ieee80211_ht.h#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/net80211/ieee80211_ioctl.c#4 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/net80211/ieee80211_ioctl.h#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/net80211/ieee80211_node.c#4 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/net80211/ieee80211_node.h#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/net80211/ieee80211_phy.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/net80211/ieee80211_sta.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/netgraph/ng_pipe.c#1 branch .. //depot/projects/soc2008/trasz_nfs4acl/sys/netgraph/ng_pipe.h#1 branch .. //depot/projects/soc2008/trasz_nfs4acl/sys/netinet/if_ether.c#5 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/netinet/ip_fw.h#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/netinet/ip_fw2.c#4 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/netinet/tcp_debug.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/netinet/tcp_input.c#4 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/netinet/tcp_output.c#5 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/netinet/tcp_subr.c#4 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/netinet/tcp_var.h#3 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/netinet6/icmp6.c#6 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/netinet6/mld6.c#4 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/pc98/cbus/sio.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/pc98/conf/NOTES#6 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/pc98/include/bus.h#3 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/pc98/pc98/busiosubr.c#3 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/security/audit/audit_syscalls.c#5 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/security/mac_bsdextended/mac_bsdextended.c#5 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/sparc64/include/asi.h#3 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/sparc64/include/clock.h#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/sparc64/include/cpu.h#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/sparc64/include/cpufunc.h#3 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/sparc64/include/dcr.h#1 branch .. //depot/projects/soc2008/trasz_nfs4acl/sys/sparc64/include/pcpu.h#4 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/sparc64/include/smp.h#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/sparc64/include/tick.h#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/sparc64/include/tlb.h#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/sparc64/include/trap.h#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/sparc64/include/tte.h#3 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/sparc64/include/ver.h#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/sparc64/sbus/dma_sbus.c#3 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/sparc64/sbus/lsi64854.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/sparc64/sbus/lsi64854var.h#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/sparc64/sparc64/cheetah.c#4 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/sparc64/sparc64/clock.c#3 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/sparc64/sparc64/exception.S#3 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/sparc64/sparc64/genassym.c#3 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/sparc64/sparc64/jbusppm.c#1 branch .. //depot/projects/soc2008/trasz_nfs4acl/sys/sparc64/sparc64/locore.S#3 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/sparc64/sparc64/machdep.c#4 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/sparc64/sparc64/mp_exception.S#3 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/sparc64/sparc64/mp_locore.S#3 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/sparc64/sparc64/mp_machdep.c#4 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/sparc64/sparc64/pmap.c#4 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/sparc64/sparc64/schppm.c#1 branch .. //depot/projects/soc2008/trasz_nfs4acl/sys/sparc64/sparc64/support.S#3 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/sparc64/sparc64/swtch.S#3 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/sparc64/sparc64/tick.c#3 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/sparc64/sparc64/tlb.c#3 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/sparc64/sparc64/trap.c#3 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/sun4v/include/asi.h#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/sys/disk.h#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/sys/gpt.h#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/sys/lock.h#3 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/sys/param.h#5 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/sys/systm.h#4 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/sys/termios.h#4 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/sys/tty.h#4 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/sys/ttydevsw.h#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/sys/vnode.h#10 integrate .. //depot/projects/soc2008/trasz_nfs4acl/tools/regression/sockets/sendfile/sendfile.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/tools/tools/nanobsd/nanobsd.sh#5 integrate .. //depot/projects/soc2008/trasz_nfs4acl/usr.bin/cpio/cpio.c#8 integrate .. //depot/projects/soc2008/trasz_nfs4acl/usr.sbin/boot0cfg/boot0cfg.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/usr.sbin/crunch/crunchide/exec_elf32.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/usr.sbin/cxgbtool/cxgbtool.c#3 integrate .. //depot/projects/soc2008/trasz_nfs4acl/usr.sbin/fwcontrol/fwcontrol.8#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/usr.sbin/fwcontrol/fwcontrol.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/usr.sbin/setfib/setfib.c#4 integrate Differences ... ==== //depot/projects/soc2008/trasz_nfs4acl/ObsoleteFiles.inc#10 (text+ko) ==== @@ -1,5 +1,5 @@ # -# $FreeBSD: src/ObsoleteFiles.inc,v 1.157 2008/08/31 08:33:41 antoine Exp $ +# $FreeBSD: src/ObsoleteFiles.inc,v 1.158 2008/09/10 18:36:58 jhb Exp $ # # This file lists old files (OLD_FILES), libraries (OLD_LIBS) and # directories (OLD_DIRS) which should get removed at an update. Recently @@ -53,11 +53,6 @@ # 20080704: sbsh(4) removed OLD_FILES+=usr/share/man/man4/if_sbsh.4.gz OLD_FILES+=usr/share/man/man4/sbsh.4.gz -# 20080704: sbni(4) removed -.if ${TARGET_ARCH} == "i386" -OLD_FILES+=usr/share/man/man4/i386/if_sbni.4.gz -OLD_FILES+=usr/share/man/man4/i386/sbni.4.gz -.endif # 20080704: cnw(4) removed OLD_FILES+=usr/share/man/man4/if_cnw.4.gz OLD_FILES+=usr/share/man/man4/cnw.4.gz ==== //depot/projects/soc2008/trasz_nfs4acl/bin/cp/utils.c#5 (text+ko) ==== @@ -33,7 +33,7 @@ #endif #endif /* not lint */ #include -__FBSDID("$FreeBSD: src/bin/cp/utils.c,v 1.54 2008/08/07 07:29:26 trasz Exp $"); +__FBSDID("$FreeBSD: src/bin/cp/utils.c,v 1.55 2008/09/09 12:31:42 trasz Exp $"); #include #include @@ -224,7 +224,6 @@ rval = 1; if (pflag && preserve_fd_acls(from_fd, to_fd) != 0) rval = 1; - (void)close(from_fd); if (close(to_fd)) { warn("%s", to.p_path); rval = 1; ==== //depot/projects/soc2008/trasz_nfs4acl/bin/setfacl/setfacl.c#14 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/bin/setfacl/setfacl.c,v 1.13 2007/02/26 00:42:17 mckusick Exp $"); +__FBSDID("$FreeBSD: src/bin/setfacl/setfacl.c,v 1.14 2008/09/06 13:17:35 trasz Exp $"); #include #include ==== //depot/projects/soc2008/trasz_nfs4acl/contrib/gcc/config/arm/arm.h#2 (text+ko) ==== @@ -507,7 +507,7 @@ /* wchar_t is unsigned under the AAPCS. */ #ifndef WCHAR_TYPE #define WCHAR_TYPE (TARGET_AAPCS_BASED ? "unsigned int" : "int") - +#undef WCHAR_TYPE_SIZE #define WCHAR_TYPE_SIZE BITS_PER_WORD #endif ==== //depot/projects/soc2008/trasz_nfs4acl/contrib/ntp/libparse/clk_rawdcf.c#3 (text+ko) ==== @@ -229,7 +229,7 @@ unsigned char *c = dcfprm->zerobits; int i; - parseprintf(DD_RAWDCF,("parse: convert_rawdcf: \"%s\"\n", buffer)); + parseprintf(DD_RAWDCF,("parse: convert_rawdcf: \"%.*s\"\n", size, buffer)); if (size < 57) { @@ -320,7 +320,7 @@ * bad format - not for us */ #ifndef PARSEKERNEL - msyslog(LOG_ERR, "parse: convert_rawdcf: parity check FAILED for \"%s\"\n", buffer); + msyslog(LOG_ERR, "parse: convert_rawdcf: parity check FAILED for \"%.*s\"\n", size, buffer); #endif return CVT_FAIL|CVT_BADFMT; } ==== //depot/projects/soc2008/trasz_nfs4acl/etc/rc.initdiskless#2 (text+ko) ==== @@ -24,7 +24,7 @@ # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF # SUCH DAMAGE. # -# $FreeBSD: src/etc/rc.initdiskless,v 1.53 2008/05/15 11:00:23 bms Exp $ +# $FreeBSD: src/etc/rc.initdiskless,v 1.54 2008/09/09 18:40:50 bms Exp $ # On entry to this script the entire system consists of a read-only root # mounted via NFS. The kernel has run BOOTP and configured an interface @@ -73,6 +73,16 @@ # If this file exists, then failure to execute the mount # command contained in /conf/T/M/remount is non-fatal. # +# /conf/T/M/remount_subdir +# If this file exists, then the behaviour of /conf/T/M/remount +# changes as follows: +# 1. /conf/T/M/remount is invoked to mount the root of the +# filesystem where the configuration data exists on a +# temporary mountpoint. +# 2. /conf/T/M/remount_subdir is then invoked to mount a +# *subdirectory* of the filesystem mounted by +# /conf/T/M/remount on /conf/T/M/. +# # /conf/T/M/diskless_remount # The contents of the file points to an NFS filesystem, # possibly followed by mount_nfs options. If the server name @@ -296,10 +306,33 @@ # remount. Beware, the command is in the file itself! if [ -f $j/remount ]; then - nfspt=`/bin/cat $j/remount` - $nfspt $j - chkerr $? "$nfspt $j" - to_umount="$j ${to_umount}" # XXX hope it is really a mount! + if [ -f $j/remount_subdir ]; then + k="/conf.tmp/$i/$subdir" + [ -d $k ] || continue + + # Mount the filesystem root where the config data is + # on the temporary mount point. + nfspt=`/bin/cat $j/remount` + $nfspt $k + chkerr $? "$nfspt $k" + + # Now use a nullfs mount to get the data where we + # really want to see it. + remount_subdir=`/bin/cat $j/remount_subdir` + remount_subdir_cmd="mount -t nullfs $k/$remount_subdir" + + $remount_subdir_cmd $j + chkerr $? "$remount_subdir_cmd $j" + + # XXX check order -- we must force $k to be unmounted + # after j, as j depends on k. + to_umount="$j $k ${to_umount}" + else + nfspt=`/bin/cat $j/remount` + $nfspt $j + chkerr $? "$nfspt $j" + to_umount="$j ${to_umount}" # XXX hope it is really a mount! + fi fi # NFS remount ==== //depot/projects/soc2008/trasz_nfs4acl/include/rpc/svc_auth.h#2 (text+ko) ==== @@ -30,7 +30,7 @@ * * from: @(#)svc_auth.h 1.6 86/07/16 SMI * @(#)svc_auth.h 2.1 88/07/29 4.0 RPCSRC - * $FreeBSD: src/include/rpc/svc_auth.h,v 1.14 2002/03/23 17:24:55 imp Exp $ + * $FreeBSD: src/include/rpc/svc_auth.h,v 1.15 2008/09/09 14:15:55 dfr Exp $ */ /* @@ -46,6 +46,8 @@ * Server side authenticator */ __BEGIN_DECLS +extern struct svc_auth_ops svc_auth_null_ops; + extern enum auth_stat _authenticate(struct svc_req *, struct rpc_msg *); extern int svc_auth_reg(int, enum auth_stat (*)(struct svc_req *, struct rpc_msg *)); ==== //depot/projects/soc2008/trasz_nfs4acl/lib/libarchive/archive_entry_link_resolver.c#3 (text+ko) ==== @@ -24,7 +24,7 @@ */ #include "archive_platform.h" -__FBSDID("$FreeBSD: src/lib/libarchive/archive_entry_link_resolver.c,v 1.3 2008/06/15 04:31:43 kientzle Exp $"); +__FBSDID("$FreeBSD: src/lib/libarchive/archive_entry_link_resolver.c,v 1.4 2008/09/05 06:15:25 kientzle Exp $"); #ifdef HAVE_SYS_STAT_H #include @@ -189,7 +189,7 @@ case ARCHIVE_ENTRY_LINKIFY_LIKE_TAR: le = find_entry(res, *e); if (le != NULL) { - archive_entry_set_size(*e, 0); + archive_entry_unset_size(*e); archive_entry_copy_hardlink(*e, archive_entry_pathname(le->canonical)); } else @@ -217,7 +217,7 @@ *e = le->entry; le->entry = t; /* Make the old entry into a hardlink. */ - archive_entry_set_size(*e, 0); + archive_entry_unset_size(*e); archive_entry_copy_hardlink(*e, archive_entry_pathname(le->canonical)); /* If we ran out of links, return the ==== //depot/projects/soc2008/trasz_nfs4acl/lib/libarchive/archive_write_disk.3#3 (text+ko) ==== @@ -22,9 +22,9 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $FreeBSD: src/lib/libarchive/archive_write_disk.3,v 1.3 2008/05/26 17:00:23 kientzle Exp $ +.\" $FreeBSD: src/lib/libarchive/archive_write_disk.3,v 1.4 2008/09/04 05:22:00 kientzle Exp $ .\" -.Dd March 2, 2007 +.Dd August 5, 2008 .Dt archive_write_disk 3 .Os .Sh NAME @@ -169,11 +169,11 @@ Note that paths ending in .Pa .. always cause an error, regardless of this flag. -.El .It Cm ARCHIVE_EXTRACT_SPARSE Scan data for blocks of NUL bytes and try to recreate them with holes. This results in sparse files, independent of whether the archive format supports or uses them. +.El .It Xo .Fn archive_write_disk_set_group_lookup , .Fn archive_write_disk_set_user_lookup ==== //depot/projects/soc2008/trasz_nfs4acl/lib/libarchive/archive_write_disk.c#7 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include "archive_platform.h" -__FBSDID("$FreeBSD: src/lib/libarchive/archive_write_disk.c,v 1.33 2008/09/01 02:50:24 kientzle Exp $"); +__FBSDID("$FreeBSD: src/lib/libarchive/archive_write_disk.c,v 1.36 2008/09/07 05:22:33 kientzle Exp $"); #ifdef HAVE_SYS_TYPES_H #include @@ -176,7 +176,7 @@ int fd; /* Current offset for writing data to the file. */ off_t offset; - /* Maximum size of file. */ + /* Maximum size of file, -1 if unknown. */ off_t filesize; /* Dir we were in before this restore; only for deep paths. */ int restore_pwd; @@ -231,7 +231,8 @@ static struct fixup_entry *sort_dir_list(struct fixup_entry *p); static gid_t trivial_lookup_gid(void *, const char *, gid_t); static uid_t trivial_lookup_uid(void *, const char *, uid_t); - +static ssize_t write_data_block(struct archive_write_disk *, + const char *, size_t, off_t); static struct archive_vtable *archive_write_disk_vtable(void); @@ -337,7 +338,10 @@ a->offset = 0; a->uid = a->user_uid; a->mode = archive_entry_mode(a->entry); - a->filesize = archive_entry_size(a->entry); + if (archive_entry_size_is_set(a->entry)) + a->filesize = archive_entry_size(a->entry); + else + a->filesize = -1; archive_strcpy(&(a->_name_data), archive_entry_pathname(a->entry)); a->name = a->_name_data.s; archive_clear_error(&a->archive); @@ -439,15 +443,25 @@ fe->mode = a->mode; } - if (a->deferred & TODO_TIMES) { + if ((a->deferred & TODO_TIMES) + && (archive_entry_mtime_is_set(entry) + || archive_entry_atime_is_set(entry))) { fe = current_fixup(a, archive_entry_pathname(entry)); fe->fixup |= TODO_TIMES; - fe->mtime = archive_entry_mtime(entry); - fe->mtime_nanos = archive_entry_mtime_nsec(entry); - fe->atime = archive_entry_atime(entry); - fe->atime_nanos = archive_entry_atime_nsec(entry); - if (fe->atime == 0 && fe->atime_nanos == 0) + if (archive_entry_mtime_is_set(entry)) { + fe->mtime = archive_entry_mtime(entry); + fe->mtime_nanos = archive_entry_mtime_nsec(entry); + } else { + fe->mtime = a->start_time; + fe->mtime_nanos = 0; + } + if (archive_entry_atime_is_set(entry)) { + fe->atime = archive_entry_atime(entry); + fe->atime_nanos = archive_entry_atime_nsec(entry); + } else { fe->atime = a->start_time; + fe->atime_nanos = 0; + } } if (a->deferred & TODO_FFLAGS) { @@ -486,89 +500,113 @@ } static ssize_t -_archive_write_data_block(struct archive *_a, - const void *buff, size_t size, off_t offset) +write_data_block(struct archive_write_disk *a, + const char *buff, size_t size, off_t offset) { - struct archive_write_disk *a = (struct archive_write_disk *)_a; ssize_t bytes_written = 0; - ssize_t block_size, bytes_to_write; - int r = ARCHIVE_OK; + ssize_t block_size = 0, bytes_to_write; + int r; - __archive_check_magic(&a->archive, ARCHIVE_WRITE_DISK_MAGIC, - ARCHIVE_STATE_DATA, "archive_write_disk_block"); - if (a->fd < 0) { - archive_set_error(&a->archive, 0, "File not open"); + if (a->filesize == 0 || a->fd < 0) { + archive_set_error(&a->archive, 0, + "Attempt to write to an empty file"); return (ARCHIVE_WARN); } - archive_clear_error(&a->archive); if (a->flags & ARCHIVE_EXTRACT_SPARSE) { if ((r = _archive_write_disk_lazy_stat(a)) != ARCHIVE_OK) return (r); block_size = a->pst->st_blksize; - } else - block_size = -1; + } - if ((off_t)(offset + size) > a->filesize) { - size = (size_t)(a->filesize - a->offset); - archive_set_error(&a->archive, 0, - "Write request too large"); - r = ARCHIVE_WARN; - } + if (a->filesize >= 0 && (off_t)(offset + size) > a->filesize) + size = (size_t)(a->filesize - offset); /* Write the data. */ while (size > 0) { - if (block_size != -1) { - const char *buf; + if (block_size == 0) { + bytes_to_write = size; + } else { + /* We're sparsifying the file. */ + const char *p, *end; + off_t block_end; - for (buf = buff; size; ++buf, --size, ++offset) { - if (*buf != '\0') + /* Skip leading zero bytes. */ + for (p = buff, end = buff + size; p < end; ++p) { + if (*p != '\0') break; } + offset += p - buff; + size -= p - buff; + buff = p; if (size == 0) break; - bytes_to_write = block_size - offset % block_size; - buff = buf; - } else + + /* Calculate next block boundary after offset. */ + block_end + = (offset / block_size) * block_size + block_size; + + /* If the adjusted write would cross block boundary, + * truncate it to the block boundary. */ bytes_to_write = size; + if (offset + bytes_to_write > block_end) + bytes_to_write = block_end - offset; + } + /* Seek if necessary to the specified offset. */ if (offset != a->last_offset) { if (lseek(a->fd, offset, SEEK_SET) < 0) { - archive_set_error(&a->archive, errno, "Seek failed"); + archive_set_error(&a->archive, errno, + "Seek failed"); return (ARCHIVE_FATAL); } } - bytes_written = write(a->fd, buff, size); + bytes_written = write(a->fd, buff, bytes_to_write); if (bytes_written < 0) { archive_set_error(&a->archive, errno, "Write failed"); return (ARCHIVE_WARN); } - buff = (const char *)buff + bytes_written; + buff += bytes_written; size -= bytes_written; offset += bytes_written; a->archive.file_position += bytes_written; a->archive.raw_position += bytes_written; a->last_offset = a->offset = offset; } - a->offset = offset; - return (r); + return (bytes_written); +} + +static ssize_t +_archive_write_data_block(struct archive *_a, + const void *buff, size_t size, off_t offset) +{ + struct archive_write_disk *a = (struct archive_write_disk *)_a; + ssize_t r; + + __archive_check_magic(&a->archive, ARCHIVE_WRITE_DISK_MAGIC, + ARCHIVE_STATE_DATA, "archive_write_disk_block"); + + r = write_data_block(a, buff, size, offset); + + if (r < 0) + return (r); + if ((size_t)r < size) { + archive_set_error(&a->archive, 0, + "Write request too large"); + return (ARCHIVE_WARN); + } + return (ARCHIVE_OK); } static ssize_t _archive_write_data(struct archive *_a, const void *buff, size_t size) { struct archive_write_disk *a = (struct archive_write_disk *)_a; - int r; __archive_check_magic(&a->archive, ARCHIVE_WRITE_DISK_MAGIC, ARCHIVE_STATE_DATA, "archive_write_data"); - if (a->fd < 0) - return (ARCHIVE_OK); - r = _archive_write_data_block(_a, buff, size, a->offset); - if (r < ARCHIVE_OK) - return (r); - return size; + return (write_data_block(a, buff, size, a->offset)); } static int @@ -584,7 +622,15 @@ return (ARCHIVE_OK); archive_clear_error(&a->archive); - if (a->last_offset != a->filesize && a->fd >= 0) { + /* Pad or truncate file to the right size. */ + if (a->fd < 0) { + /* There's no file. */ + } else if (a->filesize < 0) { + /* File size is unknown, so we can't set the size. */ + } else if (a->last_offset == a->filesize) { + /* Last write ended at exactly the filesize; we're done. */ + /* Hopefully, this is the common case. */ + } else { if (ftruncate(a->fd, a->filesize) == -1 && a->filesize == 0) { archive_set_error(&a->archive, errno, @@ -601,7 +647,8 @@ if (a->st.st_size != a->filesize) { const char nul = '\0'; if (lseek(a->fd, a->st.st_size - 1, SEEK_SET) < 0) { - archive_set_error(&a->archive, errno, "Seek failed"); + archive_set_error(&a->archive, errno, + "Seek failed"); return (ARCHIVE_FATAL); } if (write(a->fd, &nul, 1) < 0) { @@ -609,6 +656,7 @@ "Write to restore size failed"); return (ARCHIVE_FATAL); } + a->pst = NULL; } } @@ -859,14 +907,26 @@ * We know something is in the way, but we don't know what; * we need to find out before we go any further. */ - if (lstat(a->name, &a->st) != 0) { + int r = 0; + /* + * The SECURE_SYMLINK logic has already removed a + * symlink to a dir if the client wants that. So + * follow the symlink if we're creating a dir. + */ + if (S_ISDIR(a->mode)) + r = stat(a->name, &a->st); + /* + * If it's not a dir (or it's a broken symlink), + * then don't follow it. + */ + if (r != 0 || !S_ISDIR(a->mode)) + r = lstat(a->name, &a->st); + if (r != 0) { archive_set_error(&a->archive, errno, "Can't stat existing object"); return (ARCHIVE_WARN); } - /* TODO: if it's a symlink... */ - /* * NO_OVERWRITE_NEWER doesn't apply to directories. */ @@ -963,7 +1023,7 @@ * If the hardlink does carry data, let the last * archive entry decide ownership. */ - if (r == 0 && a->filesize == 0) { + if (r == 0 && a->filesize <= 0) { a->todo = 0; a->deferred = 0; } if (r == 0 && a->filesize > 0) { @@ -1623,18 +1683,31 @@ { struct timeval times[2]; - times[1].tv_sec = archive_entry_mtime(a->entry); - times[1].tv_usec = archive_entry_mtime_nsec(a->entry) / 1000; + /* If no time was provided, we're done. */ + if (!archive_entry_atime_is_set(a->entry) + && !archive_entry_mtime_is_set(a->entry)) + return (ARCHIVE_OK); - times[0].tv_sec = archive_entry_atime(a->entry); - times[0].tv_usec = archive_entry_atime_nsec(a->entry) / 1000; + /* We know at least one is set, so... */ + if (archive_entry_mtime_is_set(a->entry)) { + times[1].tv_sec = archive_entry_mtime(a->entry); + times[1].tv_usec = archive_entry_mtime_nsec(a->entry) / 1000; + } else { + times[1].tv_sec = a->start_time; + times[1].tv_usec = 0; + } /* If no atime was specified, use start time instead. */ /* In theory, it would be marginally more correct to use * time(NULL) here, but that would cost us an extra syscall * for little gain. */ - if (times[0].tv_sec == 0 && times[0].tv_usec == 0) + if (archive_entry_atime_is_set(a->entry)) { + times[0].tv_sec = archive_entry_atime(a->entry); + times[0].tv_usec = archive_entry_atime_nsec(a->entry) / 1000; + } else { times[0].tv_sec = a->start_time; + times[0].tv_usec = 0; + } #ifdef HAVE_FUTIMES if (a->fd >= 0 && futimes(a->fd, times) == 0) { @@ -1672,10 +1745,24 @@ { struct utimbuf times; - times.modtime = archive_entry_mtime(a->entry); - times.actime = archive_entry_atime(a->entry); - if (times.actime == 0) + /* If no time was provided, we're done. */ + if (!archive_entry_atime_is_set(a->entry) + && !archive_entry_mtime_is_set(a->entry)) + return (ARCHIVE_OK); + + /* We know at least one is set, so... */ + /* Set mtime from mtime if set, else start time. */ + if (archive_entry_mtime_is_set(a->entry)) + times.modtime = archive_entry_mtime(a->entry); + else + times.modtime = a->start_time; + + /* Set atime from provided atime, else mtime. */ + if (archive_entry_atime_is_set(a->entry)) + times.actime = archive_entry_atime(a->entry); + else times.actime = a->start_time; + if (!S_ISLNK(a->mode) && utime(a->name, ×) != 0) { archive_set_error(&a->archive, errno, "Can't update time for %s", a->name); ==== //depot/projects/soc2008/trasz_nfs4acl/lib/libarchive/test/Makefile#4 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/lib/libarchive/test/Makefile,v 1.24 2008/08/25 06:08:22 kientzle Exp $ +# $FreeBSD: src/lib/libarchive/test/Makefile,v 1.25 2008/09/08 00:58:12 kientzle Exp $ # Where to find the libarchive sources LA_SRCDIR=${.CURDIR}/.. @@ -89,7 +89,7 @@ # Uncomment to link against dmalloc #LDADD+= -L/usr/local/lib -ldmalloc #CFLAGS+= -I/usr/local/include -DUSE_DMALLOC -#WARNS=6 +WARNS=6 # Build libarchive_test and run it. check test: libarchive_test ==== //depot/projects/soc2008/trasz_nfs4acl/lib/libarchive/test/test_read_format_gtar_sparse.c#3 (text+ko) ==== @@ -23,7 +23,7 @@ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #include "test.h" -__FBSDID("$FreeBSD: src/lib/libarchive/test/test_read_format_gtar_sparse.c,v 1.9 2008/09/01 05:38:33 kientzle Exp $"); +__FBSDID("$FreeBSD: src/lib/libarchive/test/test_read_format_gtar_sparse.c,v 1.10 2008/09/08 00:58:12 kientzle Exp $"); struct contents { @@ -187,6 +187,7 @@ struct contents expect; /* data, size, offset of block read from archive. */ struct contents actual; + const void *p; struct archive *a; extract_reference_file(name); @@ -206,10 +207,10 @@ expect = *cts++; while (0 == (err = archive_read_data_block(a, - (const void **)&actual.d, - &actual.s, &actual.o))) { + &p, &actual.s, &actual.o))) { + actual.d = p; while (actual.s > 0) { - char c = *(const char *)actual.d; + char c = *actual.d; if(actual.o < expect.o) { /* * Any byte before the expected ==== //depot/projects/soc2008/trasz_nfs4acl/lib/libarchive/test/test_write_disk.c#5 (text+ko) ==== @@ -23,7 +23,7 @@ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #include "test.h" -__FBSDID("$FreeBSD: src/lib/libarchive/test/test_write_disk.c,v 1.13 2008/09/01 05:38:33 kientzle Exp $"); +__FBSDID("$FreeBSD: src/lib/libarchive/test/test_write_disk.c,v 1.14 2008/09/05 06:13:11 kientzle Exp $"); #if ARCHIVE_VERSION_NUMBER >= 1009000 @@ -84,7 +84,7 @@ * the entry being a maximum size. */ archive_entry_set_size(ae, sizeof(data)); - archive_entry_set_mtime(ae, 123456789, 0); + archive_entry_set_mtime(ae, 123456789, 0); assertEqualIntA(ad, 0, archive_write_header(ad, ae)); assertEqualInt(sizeof(data), archive_write_data(ad, data, sizeof(data))); assertEqualIntA(ad, 0, archive_write_finish_entry(ad)); @@ -152,8 +152,63 @@ free(compare); free(data); } + +static void create_reg_file3(struct archive_entry *ae, const char *msg) +{ + static const char data[]="abcdefghijklmnopqrstuvwxyz"; + struct archive *ad; + struct stat st; + + /* Write the entry to disk. */ + assert((ad = archive_write_disk_new()) != NULL); + failure("%s", msg); + /* Set the size smaller than the data and verify the truncation. */ + archive_entry_set_size(ae, 5); + assertEqualIntA(ad, 0, archive_write_header(ad, ae)); + assertEqualInt(5, archive_write_data(ad, data, sizeof(data))); + assertEqualIntA(ad, 0, archive_write_finish_entry(ad)); +#if ARCHIVE_VERSION_NUMBER < 2000000 + archive_write_finish(ad); +#else + assertEqualInt(0, archive_write_finish(ad)); #endif + /* Test the entry on disk. */ + assert(0 == stat(archive_entry_pathname(ae), &st)); >>> TRUNCATED FOR MAIL (1000 lines) <<<