Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 10 Sep 2008 22:26:11 GMT
From:      Edward Tomasz Napierala <trasz@FreeBSD.org>
To:        Perforce Change Reviews <perforce@freebsd.org>
Subject:   PERFORCE change 149579 for review
Message-ID:  <200809102226.m8AMQBMQ090641@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
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 <sys/cdefs.h>
-__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 <sys/types.h>
 #include <sys/acl.h>
@@ -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 <sys/cdefs.h>
-__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 <sys/types.h>
 #include <sys/param.h>

==== //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 <sys/stat.h>
@@ -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 <sys/types.h>
@@ -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, &times) != 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) <<<



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