From owner-svn-src-projects@FreeBSD.ORG  Mon Jan 18 21:35:22 2010
Return-Path: <owner-svn-src-projects@FreeBSD.ORG>
Delivered-To: svn-src-projects@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id C90FC1065694;
	Mon, 18 Jan 2010 21:35:22 +0000 (UTC)
	(envelope-from rwatson@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id B992D8FC1D;
	Mon, 18 Jan 2010 21:35:22 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o0ILZMVH084602;
	Mon, 18 Jan 2010 21:35:22 GMT (envelope-from rwatson@svn.freebsd.org)
Received: (from rwatson@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id o0ILZMxl084600;
	Mon, 18 Jan 2010 21:35:22 GMT (envelope-from rwatson@svn.freebsd.org)
Message-Id: <201001182135.o0ILZMxl084600@svn.freebsd.org>
From: Robert Watson <rwatson@FreeBSD.org>
Date: Mon, 18 Jan 2010 21:35:22 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-projects@freebsd.org
X-SVN-Group: projects
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r202594 - projects/capabilities8/sys/sys
X-BeenThere: svn-src-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the src &quot; projects&quot;
	tree" <svn-src-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
	<mailto:svn-src-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-projects>
List-Post: <mailto:svn-src-projects@freebsd.org>
List-Help: <mailto:svn-src-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
	<mailto:svn-src-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Mon, 18 Jan 2010 21:35:22 -0000

Author: rwatson
Date: Mon Jan 18 21:35:22 2010
New Revision: 202594
URL: http://svn.freebsd.org/changeset/base/202594

Log:
  Merge P4 changeset 169523 to capabilities8:
  
    Add __BEGIN_DECLS/__END_DECLS to capability.h to make it (more)
    C++-friendly.
  
    Submitted by: Jonathan Anderson

Modified:
  projects/capabilities8/sys/sys/capability.h

Modified: projects/capabilities8/sys/sys/capability.h
==============================================================================
--- projects/capabilities8/sys/sys/capability.h	Mon Jan 18 21:28:11 2010	(r202593)
+++ projects/capabilities8/sys/sys/capability.h	Mon Jan 18 21:35:22 2010	(r202594)
@@ -30,7 +30,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $P4: //depot/projects/trustedbsd/capabilities/src/sys/sys/capability.h#24 $
+ * $P4: //depot/projects/trustedbsd/capabilities/src/sys/sys/capability.h#25 $
  */
 
 /*
@@ -39,6 +39,7 @@
 #ifndef _SYS_CAPABILITY_H_
 #define	_SYS_CAPABILITY_H_
 
+#include <sys/cdefs.h>
 #include <sys/types.h>
 
 /*
@@ -159,6 +160,7 @@ cap_rights_t	cap_rights(struct file *fp_
 
 #else /* !_KERNEL */
 
+__BEGIN_DECLS
 /*
  * cap_enter(): Cause the process to enter capability mode, which will
  * prevent it from directly accessing global namespaces.  System calls will
@@ -183,6 +185,7 @@ int	cap_new(int fd, cap_rights_t rights)
  * cap_getrights(): Query the rights on a capability.
  */
 int	cap_getrights(int fd, cap_rights_t *rightsp);
+__END_DECLS
 
 #endif /* !_KERNEL */
 

From owner-svn-src-projects@FreeBSD.ORG  Tue Jan 19 20:44:40 2010
Return-Path: <owner-svn-src-projects@FreeBSD.ORG>
Delivered-To: svn-src-projects@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id C95B4106568D;
	Tue, 19 Jan 2010 20:44:40 +0000 (UTC)
	(envelope-from nwhitehorn@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id B1F7A8FC14;
	Tue, 19 Jan 2010 20:44:40 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o0JKie1L002626;
	Tue, 19 Jan 2010 20:44:40 GMT
	(envelope-from nwhitehorn@svn.freebsd.org)
Received: (from nwhitehorn@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id o0JKieIE002590;
	Tue, 19 Jan 2010 20:44:40 GMT
	(envelope-from nwhitehorn@svn.freebsd.org)
Message-Id: <201001192044.o0JKieIE002590@svn.freebsd.org>
From: Nathan Whitehorn <nwhitehorn@FreeBSD.org>
Date: Tue, 19 Jan 2010 20:44:40 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-projects@freebsd.org
X-SVN-Group: projects
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r202651 - in projects/ppc64: . bin/cp bin/csh bin/date
	bin/kenv bin/pax bin/pkill bin/setfacl bin/sh
	cddl/contrib/opensolaris/cmd/zdb
	cddl/contrib/opensolaris/cmd/zfs cddl/contrib/opens...
X-BeenThere: svn-src-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the src &quot; projects&quot;
	tree" <svn-src-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
	<mailto:svn-src-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-projects>
List-Post: <mailto:svn-src-projects@freebsd.org>
List-Help: <mailto:svn-src-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
	<mailto:svn-src-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Tue, 19 Jan 2010 20:44:41 -0000

Author: nwhitehorn
Date: Tue Jan 19 20:44:37 2010
New Revision: 202651
URL: http://svn.freebsd.org/changeset/base/202651

Log:
  IFC

Added:
  projects/ppc64/contrib/ntp/html/build/hints/solaris.xtra.4095849
     - copied unchanged from r202640, head/contrib/ntp/html/build/hints/solaris.xtra.4095849
  projects/ppc64/etc/devd/uath.conf
     - copied unchanged from r202640, head/etc/devd/uath.conf
  projects/ppc64/include/semaphore.h
     - copied unchanged from r202640, head/include/semaphore.h
  projects/ppc64/include/utmpx.h
     - copied unchanged from r202640, head/include/utmpx.h
  projects/ppc64/lib/libarchive/archive_crc32.h
     - copied unchanged from r202640, head/lib/libarchive/archive_crc32.h
  projects/ppc64/lib/libarchive/archive_entry_xattr.c
     - copied unchanged from r202640, head/lib/libarchive/archive_entry_xattr.c
  projects/ppc64/lib/libarchive/archive_hash.h
     - copied unchanged from r202640, head/lib/libarchive/archive_hash.h
  projects/ppc64/lib/libarchive/archive_read_support_compression_uu.c
     - copied unchanged from r202640, head/lib/libarchive/archive_read_support_compression_uu.c
  projects/ppc64/lib/libarchive/archive_write_set_format_zip.c
     - copied unchanged from r202640, head/lib/libarchive/archive_write_set_format_zip.c
  projects/ppc64/lib/libarchive/test/test_compat_cpio.c
     - copied unchanged from r202640, head/lib/libarchive/test/test_compat_cpio.c
  projects/ppc64/lib/libarchive/test/test_compat_cpio_1.cpio.uu
     - copied unchanged from r202640, head/lib/libarchive/test/test_compat_cpio_1.cpio.uu
  projects/ppc64/lib/libarchive/test/test_compat_lzma.c
     - copied unchanged from r202640, head/lib/libarchive/test/test_compat_lzma.c
  projects/ppc64/lib/libarchive/test/test_compat_lzma_1.tlz.uu
     - copied unchanged from r202640, head/lib/libarchive/test/test_compat_lzma_1.tlz.uu
  projects/ppc64/lib/libarchive/test/test_compat_lzma_2.tlz.uu
     - copied unchanged from r202640, head/lib/libarchive/test/test_compat_lzma_2.tlz.uu
  projects/ppc64/lib/libarchive/test/test_compat_lzma_3.tlz.uu
     - copied unchanged from r202640, head/lib/libarchive/test/test_compat_lzma_3.tlz.uu
  projects/ppc64/lib/libarchive/test/test_fuzz_1.iso.Z.uu
     - copied unchanged from r202640, head/lib/libarchive/test/test_fuzz_1.iso.Z.uu
  projects/ppc64/lib/libarchive/test/test_read_format_ar.ar.uu
     - copied unchanged from r202640, head/lib/libarchive/test/test_read_format_ar.ar.uu
  projects/ppc64/lib/libarchive/test/test_read_format_cpio_bin_lzma.c
     - copied unchanged from r202640, head/lib/libarchive/test/test_read_format_cpio_bin_lzma.c
  projects/ppc64/lib/libarchive/test/test_read_format_iso.iso.Z.uu
     - copied unchanged from r202640, head/lib/libarchive/test/test_read_format_iso.iso.Z.uu
  projects/ppc64/lib/libarchive/test/test_read_format_iso_joliet.iso.Z.uu
     - copied unchanged from r202640, head/lib/libarchive/test/test_read_format_iso_joliet.iso.Z.uu
  projects/ppc64/lib/libarchive/test/test_read_format_iso_joliet_long.iso.Z.uu
     - copied unchanged from r202640, head/lib/libarchive/test/test_read_format_iso_joliet_long.iso.Z.uu
  projects/ppc64/lib/libarchive/test/test_read_format_iso_joliet_rockridge.iso.Z.uu
     - copied unchanged from r202640, head/lib/libarchive/test/test_read_format_iso_joliet_rockridge.iso.Z.uu
  projects/ppc64/lib/libarchive/test/test_read_format_iso_multi_extent.c
     - copied unchanged from r202640, head/lib/libarchive/test/test_read_format_iso_multi_extent.c
  projects/ppc64/lib/libarchive/test/test_read_format_iso_multi_extent.iso.Z.uu
     - copied unchanged from r202640, head/lib/libarchive/test/test_read_format_iso_multi_extent.iso.Z.uu
  projects/ppc64/lib/libarchive/test/test_read_format_iso_rockridge.iso.Z.uu
     - copied unchanged from r202640, head/lib/libarchive/test/test_read_format_iso_rockridge.iso.Z.uu
  projects/ppc64/lib/libarchive/test/test_read_format_iso_rockridge_ce.iso.Z.uu
     - copied unchanged from r202640, head/lib/libarchive/test/test_read_format_iso_rockridge_ce.iso.Z.uu
  projects/ppc64/lib/libarchive/test/test_read_format_iso_rockridge_new.iso.Z.uu
     - copied unchanged from r202640, head/lib/libarchive/test/test_read_format_iso_rockridge_new.iso.Z.uu
  projects/ppc64/lib/libarchive/test/test_read_format_iso_rockridge_rr_moved.iso.Z.uu
     - copied unchanged from r202640, head/lib/libarchive/test/test_read_format_iso_rockridge_rr_moved.iso.Z.uu
  projects/ppc64/lib/libarchive/test/test_read_format_iso_zisofs.iso.Z.uu
     - copied unchanged from r202640, head/lib/libarchive/test/test_read_format_iso_zisofs.iso.Z.uu
  projects/ppc64/lib/libarchive/test/test_read_format_isojoliet_long.c
     - copied unchanged from r202640, head/lib/libarchive/test/test_read_format_isojoliet_long.c
  projects/ppc64/lib/libarchive/test/test_read_format_isojoliet_rr.c
     - copied unchanged from r202640, head/lib/libarchive/test/test_read_format_isojoliet_rr.c
  projects/ppc64/lib/libarchive/test/test_read_format_isorr_ce.c
     - copied unchanged from r202640, head/lib/libarchive/test/test_read_format_isorr_ce.c
  projects/ppc64/lib/libarchive/test/test_read_format_isorr_new_bz2.c
     - copied unchanged from r202640, head/lib/libarchive/test/test_read_format_isorr_new_bz2.c
  projects/ppc64/lib/libarchive/test/test_read_format_isorr_rr_moved.c
     - copied unchanged from r202640, head/lib/libarchive/test/test_read_format_isorr_rr_moved.c
  projects/ppc64/lib/libarchive/test/test_read_format_isozisofs_bz2.c
     - copied unchanged from r202640, head/lib/libarchive/test/test_read_format_isozisofs_bz2.c
  projects/ppc64/lib/libarchive/test/test_read_format_mtree.mtree.uu
     - copied unchanged from r202640, head/lib/libarchive/test/test_read_format_mtree.mtree.uu
  projects/ppc64/lib/libarchive/test/test_read_format_tlz.c
     - copied unchanged from r202640, head/lib/libarchive/test/test_read_format_tlz.c
  projects/ppc64/lib/libarchive/test/test_read_uu.c
     - copied unchanged from r202640, head/lib/libarchive/test/test_read_uu.c
  projects/ppc64/lib/libarchive/test/test_write_disk_symlink.c
     - copied unchanged from r202640, head/lib/libarchive/test/test_write_disk_symlink.c
  projects/ppc64/lib/libarchive/test/test_write_format_zip.c
     - copied unchanged from r202640, head/lib/libarchive/test/test_write_format_zip.c
  projects/ppc64/lib/libarchive/test/test_write_format_zip_empty.c
     - copied unchanged from r202640, head/lib/libarchive/test/test_write_format_zip_empty.c
  projects/ppc64/lib/libarchive/test/test_write_format_zip_no_compression.c
     - copied unchanged from r202640, head/lib/libarchive/test/test_write_format_zip_no_compression.c
  projects/ppc64/lib/libc/gen/getutxent.3
     - copied unchanged from r202640, head/lib/libc/gen/getutxent.3
  projects/ppc64/lib/libc/gen/getutxent.c
     - copied unchanged from r202640, head/lib/libc/gen/getutxent.c
  projects/ppc64/lib/libc/gen/pututxline.c
     - copied unchanged from r202640, head/lib/libc/gen/pututxline.c
  projects/ppc64/lib/libc/gen/sem_new.c
     - copied unchanged from r202640, head/lib/libc/gen/sem_new.c
  projects/ppc64/lib/libc/gen/utxdb.c
     - copied unchanged from r202640, head/lib/libc/gen/utxdb.c
  projects/ppc64/lib/libc/gen/utxdb.h
     - copied unchanged from r202640, head/lib/libc/gen/utxdb.h
  projects/ppc64/lib/libc/mips/gen/hardfloat/
     - copied from r202640, head/lib/libc/mips/gen/hardfloat/
  projects/ppc64/lib/libpmc/pmc.xscale.3
     - copied unchanged from r202640, head/lib/libpmc/pmc.xscale.3
  projects/ppc64/release/picobsd/floppy.tree/sbin/
     - copied from r202640, head/release/picobsd/floppy.tree/sbin/
  projects/ppc64/release/picobsd/qemu/
     - copied from r202640, head/release/picobsd/qemu/
  projects/ppc64/sbin/geom/class/cache/gcache.8
     - copied unchanged from r202640, head/sbin/geom/class/cache/gcache.8
  projects/ppc64/sbin/geom/class/mountver/
     - copied from r202640, head/sbin/geom/class/mountver/
  projects/ppc64/share/man/man3/pthread_affinity_np.3
     - copied unchanged from r202640, head/share/man/man3/pthread_affinity_np.3
  projects/ppc64/share/man/man3/pthread_attr_affinity_np.3
     - copied unchanged from r202640, head/share/man/man3/pthread_attr_affinity_np.3
  projects/ppc64/share/man/man4/ipwfw.4
     - copied unchanged from r202640, head/share/man/man4/ipwfw.4
  projects/ppc64/share/man/man4/iwifw.4
     - copied unchanged from r202640, head/share/man/man4/iwifw.4
  projects/ppc64/share/man/man4/mk48txx.4
     - copied unchanged from r202640, head/share/man/man4/mk48txx.4
  projects/ppc64/share/man/man4/siba.4
     - copied unchanged from r202640, head/share/man/man4/siba.4
  projects/ppc64/share/man/man4/uhso.4
     - copied unchanged from r202640, head/share/man/man4/uhso.4
  projects/ppc64/sys/arm/arm/cpufunc_asm_fa526.S
     - copied unchanged from r202640, head/sys/arm/arm/cpufunc_asm_fa526.S
  projects/ppc64/sys/arm/conf/CNS11XXNAS
     - copied unchanged from r202640, head/sys/arm/conf/CNS11XXNAS
  projects/ppc64/sys/arm/econa/
     - copied from r202640, head/sys/arm/econa/
  projects/ppc64/sys/boot/common/md.c
     - copied unchanged from r202640, head/sys/boot/common/md.c
  projects/ppc64/sys/boot/efi/libefi/efipart.c
     - copied unchanged from r202640, head/sys/boot/efi/libefi/efipart.c
  projects/ppc64/sys/boot/pc98/boot2/boot1.S
     - copied unchanged from r202640, head/sys/boot/pc98/boot2/boot1.S
  projects/ppc64/sys/boot/pc98/boot2/boot2.c
     - copied unchanged from r202640, head/sys/boot/pc98/boot2/boot2.c
  projects/ppc64/sys/boot/pc98/libpc98/libpc98.h
     - copied unchanged from r202640, head/sys/boot/pc98/libpc98/libpc98.h
  projects/ppc64/sys/boot/pc98/libpc98/pc98_sys.c
     - copied unchanged from r202640, head/sys/boot/pc98/libpc98/pc98_sys.c
  projects/ppc64/sys/conf/ldscript.mips.mips64
     - copied unchanged from r202640, head/sys/conf/ldscript.mips.mips64
  projects/ppc64/sys/conf/ldscript.mips.octeon1.32
     - copied unchanged from r202640, head/sys/conf/ldscript.mips.octeon1.32
  projects/ppc64/sys/conf/ldscript.mips.octeon1.64
     - copied unchanged from r202640, head/sys/conf/ldscript.mips.octeon1.64
  projects/ppc64/sys/conf/ldscript.mips.octeon1.n32
     - copied unchanged from r202640, head/sys/conf/ldscript.mips.octeon1.n32
  projects/ppc64/sys/contrib/dev/iwn/iwlwifi-1000-128.50.3.1.fw.uu
     - copied unchanged from r202640, head/sys/contrib/dev/iwn/iwlwifi-1000-128.50.3.1.fw.uu
  projects/ppc64/sys/contrib/dev/iwn/iwlwifi-4965-228.61.2.24.fw.uu
     - copied unchanged from r202640, head/sys/contrib/dev/iwn/iwlwifi-4965-228.61.2.24.fw.uu
  projects/ppc64/sys/contrib/dev/iwn/iwlwifi-5000-8.24.2.12.fw.uu
     - copied unchanged from r202640, head/sys/contrib/dev/iwn/iwlwifi-5000-8.24.2.12.fw.uu
  projects/ppc64/sys/contrib/dev/iwn/iwlwifi-6000-9.176.4.1.fw.uu
     - copied unchanged from r202640, head/sys/contrib/dev/iwn/iwlwifi-6000-9.176.4.1.fw.uu
  projects/ppc64/sys/dev/cfe/cfe_env.c
     - copied unchanged from r202640, head/sys/dev/cfe/cfe_env.c
  projects/ppc64/sys/dev/flash/mx25l.c
     - copied unchanged from r202640, head/sys/dev/flash/mx25l.c
  projects/ppc64/sys/dev/flash/mx25lreg.h
     - copied unchanged from r202640, head/sys/dev/flash/mx25lreg.h
  projects/ppc64/sys/dev/hwpmc/hwpmc_xscale.c
     - copied unchanged from r202640, head/sys/dev/hwpmc/hwpmc_xscale.c
  projects/ppc64/sys/dev/hwpmc/hwpmc_xscale.h
     - copied unchanged from r202640, head/sys/dev/hwpmc/hwpmc_xscale.h
  projects/ppc64/sys/dev/siba/siba_cc.c
     - copied unchanged from r202640, head/sys/dev/siba/siba_cc.c
  projects/ppc64/sys/dev/usb/net/uhso.c
     - copied unchanged from r202640, head/sys/dev/usb/net/uhso.c
  projects/ppc64/sys/fs/ext2fs/
     - copied from r202640, head/sys/fs/ext2fs/
  projects/ppc64/sys/geom/mountver/
     - copied from r202640, head/sys/geom/mountver/
  projects/ppc64/sys/ia64/ia64/bus_machdep.c
     - copied unchanged from r202640, head/sys/ia64/ia64/bus_machdep.c
  projects/ppc64/sys/ia64/ia64/iodev_machdep.c
     - copied unchanged from r202640, head/sys/ia64/ia64/iodev_machdep.c
  projects/ppc64/sys/ia64/include/iodev.h
     - copied unchanged from r202640, head/sys/ia64/include/iodev.h
  projects/ppc64/sys/mips/alchemy/
     - copied from r202640, head/sys/mips/alchemy/
  projects/ppc64/sys/mips/atheros/
     - copied from r202640, head/sys/mips/atheros/
  projects/ppc64/sys/mips/cavium/
     - copied from r202640, head/sys/mips/cavium/
  projects/ppc64/sys/mips/conf/ALCHEMY
     - copied unchanged from r202640, head/sys/mips/conf/ALCHEMY
  projects/ppc64/sys/mips/conf/AR71XX
     - copied unchanged from r202640, head/sys/mips/conf/AR71XX
  projects/ppc64/sys/mips/conf/AR71XX.hints
     - copied unchanged from r202640, head/sys/mips/conf/AR71XX.hints
  projects/ppc64/sys/mips/conf/MALTA64
     - copied unchanged from r202640, head/sys/mips/conf/MALTA64
  projects/ppc64/sys/mips/conf/OCTEON1
     - copied unchanged from r202640, head/sys/mips/conf/OCTEON1
  projects/ppc64/sys/mips/conf/OCTEON1-32
     - copied unchanged from r202640, head/sys/mips/conf/OCTEON1-32
  projects/ppc64/sys/mips/conf/OCTEON1.hints
     - copied unchanged from r202640, head/sys/mips/conf/OCTEON1.hints
  projects/ppc64/sys/mips/conf/SWARM
     - copied unchanged from r202640, head/sys/mips/conf/SWARM
  projects/ppc64/sys/mips/conf/SWARM.hints
     - copied unchanged from r202640, head/sys/mips/conf/SWARM.hints
  projects/ppc64/sys/mips/conf/XLR
     - copied unchanged from r202640, head/sys/mips/conf/XLR
  projects/ppc64/sys/mips/include/cdefs.h
     - copied unchanged from r202640, head/sys/mips/include/cdefs.h
  projects/ppc64/sys/mips/include/fls64.h
     - copied unchanged from r202640, head/sys/mips/include/fls64.h
  projects/ppc64/sys/mips/mips/bus_space_generic.c
     - copied unchanged from r202640, head/sys/mips/mips/bus_space_generic.c
  projects/ppc64/sys/mips/mips/elf_trampoline.c
     - copied unchanged from r202640, head/sys/mips/mips/elf_trampoline.c
  projects/ppc64/sys/mips/mips/inckern.S
     - copied unchanged from r202640, head/sys/mips/mips/inckern.S
  projects/ppc64/sys/mips/mips/ptrace_machdep.c
     - copied unchanged from r202640, head/sys/mips/mips/ptrace_machdep.c
  projects/ppc64/sys/mips/mips/sys_machdep.c
     - copied unchanged from r202640, head/sys/mips/mips/sys_machdep.c
  projects/ppc64/sys/mips/rmi/
     - copied from r202640, head/sys/mips/rmi/
  projects/ppc64/sys/mips/sibyte/
     - copied from r202640, head/sys/mips/sibyte/
  projects/ppc64/sys/modules/epic/
     - copied from r202640, head/sys/modules/epic/
  projects/ppc64/sys/modules/geom/geom_mountver/
     - copied from r202640, head/sys/modules/geom/geom_mountver/
  projects/ppc64/sys/modules/iwnfw/iwn1000/
     - copied from r202640, head/sys/modules/iwnfw/iwn1000/
  projects/ppc64/sys/modules/iwnfw/iwn6000/
     - copied from r202640, head/sys/modules/iwnfw/iwn6000/
  projects/ppc64/sys/modules/usb/uhso/
     - copied from r202640, head/sys/modules/usb/uhso/
  projects/ppc64/sys/netinet/ipfw/ip_fw_dynamic.c
     - copied unchanged from r202640, head/sys/netinet/ipfw/ip_fw_dynamic.c
  projects/ppc64/sys/netinet/ipfw/ip_fw_log.c
     - copied unchanged from r202640, head/sys/netinet/ipfw/ip_fw_log.c
  projects/ppc64/sys/netinet/ipfw/ip_fw_private.h
     - copied unchanged from r202640, head/sys/netinet/ipfw/ip_fw_private.h
  projects/ppc64/sys/netinet/ipfw/ip_fw_sockopt.c
     - copied unchanged from r202640, head/sys/netinet/ipfw/ip_fw_sockopt.c
  projects/ppc64/sys/netinet/ipfw/ip_fw_table.c
     - copied unchanged from r202640, head/sys/netinet/ipfw/ip_fw_table.c
  projects/ppc64/sys/sparc64/ebus/epic.c
     - copied unchanged from r202640, head/sys/sparc64/ebus/epic.c
  projects/ppc64/sys/sparc64/pci/fire.c
     - copied unchanged from r202640, head/sys/sparc64/pci/fire.c
  projects/ppc64/sys/sparc64/pci/firereg.h
     - copied unchanged from r202640, head/sys/sparc64/pci/firereg.h
  projects/ppc64/sys/sparc64/pci/firevar.h
     - copied unchanged from r202640, head/sys/sparc64/pci/firevar.h
  projects/ppc64/sys/sys/_umtx.h
     - copied unchanged from r202640, head/sys/sys/_umtx.h
  projects/ppc64/tools/regression/acltools/02.t
     - copied unchanged from r202640, head/tools/regression/acltools/02.t
  projects/ppc64/tools/regression/bin/sh/builtins/builtin1.0
     - copied unchanged from r202640, head/tools/regression/bin/sh/builtins/builtin1.0
  projects/ppc64/tools/regression/bin/sh/builtins/command6.0
     - copied unchanged from r202640, head/tools/regression/bin/sh/builtins/command6.0
  projects/ppc64/tools/regression/bin/sh/builtins/command6.0.stdout
     - copied unchanged from r202640, head/tools/regression/bin/sh/builtins/command6.0.stdout
  projects/ppc64/tools/regression/bin/sh/builtins/command7.0
     - copied unchanged from r202640, head/tools/regression/bin/sh/builtins/command7.0
  projects/ppc64/tools/regression/bin/sh/builtins/fc2.0
     - copied unchanged from r202640, head/tools/regression/bin/sh/builtins/fc2.0
  projects/ppc64/tools/regression/bin/sh/builtins/type2.0
     - copied unchanged from r202640, head/tools/regression/bin/sh/builtins/type2.0
  projects/ppc64/tools/regression/bin/sh/expansion/arith1.0
     - copied unchanged from r202640, head/tools/regression/bin/sh/expansion/arith1.0
  projects/ppc64/tools/regression/bin/sh/expansion/arith2.0
     - copied unchanged from r202640, head/tools/regression/bin/sh/expansion/arith2.0
  projects/ppc64/tools/regression/bin/sh/expansion/cmdsubst1.0
     - copied unchanged from r202640, head/tools/regression/bin/sh/expansion/cmdsubst1.0
  projects/ppc64/tools/regression/kqueue/
     - copied from r202640, head/tools/regression/kqueue/
  projects/ppc64/tools/regression/posixsem2/
     - copied from r202640, head/tools/regression/posixsem2/
  projects/ppc64/tools/regression/usr.bin/comm/
     - copied from r202640, head/tools/regression/usr.bin/comm/
  projects/ppc64/tools/regression/usr.bin/make/syntax/directive-t0/
     - copied from r202640, head/tools/regression/usr.bin/make/syntax/directive-t0/
  projects/ppc64/tools/regression/usr.bin/make/sysmk/
     - copied from r202640, head/tools/regression/usr.bin/make/sysmk/
  projects/ppc64/tools/tools/notescheck/
     - copied from r202640, head/tools/tools/notescheck/
  projects/ppc64/usr.bin/wtmpcvt/
     - copied from r202640, head/usr.bin/wtmpcvt/
  projects/ppc64/usr.sbin/service/
     - copied from r202640, head/usr.sbin/service/
  projects/ppc64/usr.sbin/traceroute/findsaddr-udp.c
     - copied unchanged from r202640, head/usr.sbin/traceroute/findsaddr-udp.c
  projects/ppc64/usr.sbin/uhsoctl/
     - copied from r202640, head/usr.sbin/uhsoctl/
Deleted:
  projects/ppc64/contrib/one-true-awk/mac.code
  projects/ppc64/lib/libarchive/test/test_fuzz_1.iso.uu
  projects/ppc64/lib/libarchive/test/test_read_format_iso_gz.iso.gz.uu
  projects/ppc64/lib/libarchive/test/test_read_format_isojoliet_bz2.iso.bz2.uu
  projects/ppc64/lib/libarchive/test/test_read_format_isojolietrr_bz2.iso.bz2.uu
  projects/ppc64/lib/libarchive/test/test_read_format_isorr_bz2.iso.bz2.uu
  projects/ppc64/lib/libc/mips/gen/fpgetmask.c
  projects/ppc64/lib/libc/mips/gen/fpgetround.c
  projects/ppc64/lib/libc/mips/gen/fpgetsticky.c
  projects/ppc64/lib/libc/mips/gen/fpsetmask.c
  projects/ppc64/lib/libc/mips/gen/fpsetround.c
  projects/ppc64/lib/libc/mips/gen/fpsetsticky.c
  projects/ppc64/lib/libulog/ulog_getutxent.3
  projects/ppc64/lib/libulog/ulog_getutxent.c
  projects/ppc64/lib/libulog/ulog_internal.h
  projects/ppc64/lib/libulog/ulog_pututxline.c
  projects/ppc64/lib/libulog/ulog_setutxfile.3
  projects/ppc64/lib/libulog/ulog_util.c
  projects/ppc64/lib/libutil/login.3
  projects/ppc64/lib/libutil/login.c
  projects/ppc64/lib/libutil/logout.3
  projects/ppc64/lib/libutil/logout.c
  projects/ppc64/lib/libutil/logwtmp.3
  projects/ppc64/lib/libutil/logwtmp.c
  projects/ppc64/share/examples/pppd/
  projects/ppc64/share/examples/slattach/
  projects/ppc64/share/examples/sliplogin/
  projects/ppc64/share/examples/startslip/
  projects/ppc64/share/man/man5/utmp.5
  projects/ppc64/sys/boot/efi/libefi/efifs.c
  projects/ppc64/sys/boot/pc98/boot2/asm.S
  projects/ppc64/sys/boot/pc98/boot2/asm.h
  projects/ppc64/sys/boot/pc98/boot2/bios.S
  projects/ppc64/sys/boot/pc98/boot2/boot.c
  projects/ppc64/sys/boot/pc98/boot2/boot.h
  projects/ppc64/sys/boot/pc98/boot2/boot2.S
  projects/ppc64/sys/boot/pc98/boot2/dinode.h
  projects/ppc64/sys/boot/pc98/boot2/disk.c
  projects/ppc64/sys/boot/pc98/boot2/fs.h
  projects/ppc64/sys/boot/pc98/boot2/inode.h
  projects/ppc64/sys/boot/pc98/boot2/io.c
  projects/ppc64/sys/boot/pc98/boot2/probe_keyboard.c
  projects/ppc64/sys/boot/pc98/boot2/quota.h
  projects/ppc64/sys/boot/pc98/boot2/serial.S
  projects/ppc64/sys/boot/pc98/boot2/serial_16550.S
  projects/ppc64/sys/boot/pc98/boot2/serial_8251.S
  projects/ppc64/sys/boot/pc98/boot2/start.S
  projects/ppc64/sys/boot/pc98/boot2/sys.c
  projects/ppc64/sys/boot/pc98/boot2/table.c
  projects/ppc64/sys/contrib/dev/iwn/iwlwifi-4965-228.57.2.23.fw.uu
  projects/ppc64/sys/contrib/dev/iwn/iwlwifi-5000-5.4.A.11.fw.uu
  projects/ppc64/sys/gnu/fs/ext2fs/
  projects/ppc64/sys/mips/include/bus_octeon.h
  projects/ppc64/sys/mips/include/intr.h
  projects/ppc64/sys/mips/include/pltfm.h
  projects/ppc64/sys/mips/sentry5/siba_cc.c
  projects/ppc64/sys/mips/sentry5/siba_mips.c
  projects/ppc64/sys/mips/sentry5/siba_sdram.c
  projects/ppc64/sys/sys/semaphore.h
  projects/ppc64/usr.bin/awk/b.c.diff
  projects/ppc64/usr.bin/awk/main.c.diff
  projects/ppc64/usr.bin/awk/run.c.diff
  projects/ppc64/usr.sbin/ndp/gnuc.h
  projects/ppc64/usr.sbin/ntp/ntptrace/Makefile
Modified:
  projects/ppc64/COPYRIGHT
  projects/ppc64/MAINTAINERS
  projects/ppc64/Makefile
  projects/ppc64/Makefile.inc1
  projects/ppc64/ObsoleteFiles.inc
  projects/ppc64/UPDATING
  projects/ppc64/bin/cp/cp.1
  projects/ppc64/bin/cp/cp.c
  projects/ppc64/bin/cp/utils.c
  projects/ppc64/bin/csh/config.h
  projects/ppc64/bin/csh/config_p.h
  projects/ppc64/bin/date/Makefile
  projects/ppc64/bin/date/date.c
  projects/ppc64/bin/kenv/kenv.c
  projects/ppc64/bin/pax/ftree.c
  projects/ppc64/bin/pax/gen_subs.c
  projects/ppc64/bin/pax/sel_subs.c
  projects/ppc64/bin/pkill/Makefile
  projects/ppc64/bin/pkill/pkill.c
  projects/ppc64/bin/setfacl/merge.c
  projects/ppc64/bin/setfacl/remove.c
  projects/ppc64/bin/setfacl/setfacl.h
  projects/ppc64/bin/setfacl/util.c
  projects/ppc64/bin/sh/alias.c
  projects/ppc64/bin/sh/alias.h
  projects/ppc64/bin/sh/arith.h
  projects/ppc64/bin/sh/arith.y
  projects/ppc64/bin/sh/cd.c
  projects/ppc64/bin/sh/error.c
  projects/ppc64/bin/sh/error.h
  projects/ppc64/bin/sh/eval.c
  projects/ppc64/bin/sh/eval.h
  projects/ppc64/bin/sh/exec.c
  projects/ppc64/bin/sh/exec.h
  projects/ppc64/bin/sh/expand.c
  projects/ppc64/bin/sh/expand.h
  projects/ppc64/bin/sh/histedit.c
  projects/ppc64/bin/sh/input.c
  projects/ppc64/bin/sh/input.h
  projects/ppc64/bin/sh/jobs.c
  projects/ppc64/bin/sh/mail.c
  projects/ppc64/bin/sh/main.c
  projects/ppc64/bin/sh/main.h
  projects/ppc64/bin/sh/memalloc.c
  projects/ppc64/bin/sh/memalloc.h
  projects/ppc64/bin/sh/miscbltin.c
  projects/ppc64/bin/sh/mkbuiltins
  projects/ppc64/bin/sh/mkinit.c
  projects/ppc64/bin/sh/mksyntax.c
  projects/ppc64/bin/sh/myhistedit.h
  projects/ppc64/bin/sh/mystring.c
  projects/ppc64/bin/sh/options.c
  projects/ppc64/bin/sh/options.h
  projects/ppc64/bin/sh/output.c
  projects/ppc64/bin/sh/output.h
  projects/ppc64/bin/sh/parser.c
  projects/ppc64/bin/sh/parser.h
  projects/ppc64/bin/sh/sh.1
  projects/ppc64/bin/sh/show.c
  projects/ppc64/bin/sh/show.h
  projects/ppc64/bin/sh/trap.h
  projects/ppc64/bin/sh/var.c
  projects/ppc64/bin/sh/var.h
  projects/ppc64/cddl/contrib/opensolaris/cmd/zdb/zdb_il.c
  projects/ppc64/cddl/contrib/opensolaris/cmd/zfs/zfs_main.c
  projects/ppc64/cddl/contrib/opensolaris/cmd/zpool/zpool_main.c
  projects/ppc64/cddl/contrib/opensolaris/lib/libzfs/common/libzfs.h
  projects/ppc64/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_sendrecv.c
  projects/ppc64/contrib/expat/lib/xmlparse.c
  projects/ppc64/contrib/expat/lib/xmltok_impl.c
  projects/ppc64/contrib/gcc/config/mips/freebsd.h
  projects/ppc64/contrib/groff/font/devutf8/R.proto
  projects/ppc64/contrib/groff/tmac/an-old.tmac
  projects/ppc64/contrib/groff/tmac/doc-common
  projects/ppc64/contrib/groff/tmac/doc-old.tmac
  projects/ppc64/contrib/groff/tmac/doc-syms
  projects/ppc64/contrib/groff/tmac/doc.tmac
  projects/ppc64/contrib/groff/tmac/groff_mdoc.man
  projects/ppc64/contrib/netcat/nc.1
  projects/ppc64/contrib/netcat/netcat.c
  projects/ppc64/contrib/ntp/COPYRIGHT
  projects/ppc64/contrib/ntp/ChangeLog
  projects/ppc64/contrib/ntp/CommitLog
  projects/ppc64/contrib/ntp/Makefile.in
  projects/ppc64/contrib/ntp/NEWS
  projects/ppc64/contrib/ntp/README
  projects/ppc64/contrib/ntp/README.bk
  projects/ppc64/contrib/ntp/README.patches
  projects/ppc64/contrib/ntp/WHERE-TO-START
  projects/ppc64/contrib/ntp/aclocal.m4
  projects/ppc64/contrib/ntp/adjtimed/Makefile.in
  projects/ppc64/contrib/ntp/arlib/Makefile.in
  projects/ppc64/contrib/ntp/arlib/aclocal.m4
  projects/ppc64/contrib/ntp/arlib/configure
  projects/ppc64/contrib/ntp/build
  projects/ppc64/contrib/ntp/clockstuff/Makefile.in
  projects/ppc64/contrib/ntp/config.h.in
  projects/ppc64/contrib/ntp/configure
  projects/ppc64/contrib/ntp/configure.ac
  projects/ppc64/contrib/ntp/flock-build
  projects/ppc64/contrib/ntp/html/copyright.html
  projects/ppc64/contrib/ntp/html/drivers/driver40.html
  projects/ppc64/contrib/ntp/include/Makefile.in
  projects/ppc64/contrib/ntp/include/copyright.def
  projects/ppc64/contrib/ntp/include/isc/Makefile.in
  projects/ppc64/contrib/ntp/include/ntp_debug.h
  projects/ppc64/contrib/ntp/include/version.def
  projects/ppc64/contrib/ntp/kernel/Makefile.in
  projects/ppc64/contrib/ntp/kernel/sys/Makefile.in
  projects/ppc64/contrib/ntp/libntp/Makefile.in
  projects/ppc64/contrib/ntp/libopts/Makefile.in
  projects/ppc64/contrib/ntp/libparse/Makefile.am
  projects/ppc64/contrib/ntp/libparse/Makefile.in
  projects/ppc64/contrib/ntp/libparse/clk_rawdcf.c
  projects/ppc64/contrib/ntp/ntpd/Makefile.in
  projects/ppc64/contrib/ntp/ntpd/cmd_args.c
  projects/ppc64/contrib/ntp/ntpd/ntp_crypto.c
  projects/ppc64/contrib/ntp/ntpd/ntp_intres.c
  projects/ppc64/contrib/ntp/ntpd/ntp_io.c
  projects/ppc64/contrib/ntp/ntpd/ntp_request.c
  projects/ppc64/contrib/ntp/ntpd/ntp_timer.c
  projects/ppc64/contrib/ntp/ntpd/ntpd-opts.c
  projects/ppc64/contrib/ntp/ntpd/ntpd-opts.h
  projects/ppc64/contrib/ntp/ntpd/ntpd-opts.texi
  projects/ppc64/contrib/ntp/ntpd/ntpd.1
  projects/ppc64/contrib/ntp/ntpd/ntpd.c
  projects/ppc64/contrib/ntp/ntpd/ntpdsim-opts.c
  projects/ppc64/contrib/ntp/ntpd/ntpdsim-opts.h
  projects/ppc64/contrib/ntp/ntpd/ntpdsim-opts.texi
  projects/ppc64/contrib/ntp/ntpd/ntpdsim.1
  projects/ppc64/contrib/ntp/ntpd/refclock_dumbclock.c
  projects/ppc64/contrib/ntp/ntpd/refclock_hopfser.c
  projects/ppc64/contrib/ntp/ntpd/refclock_jjy.c
  projects/ppc64/contrib/ntp/ntpd/refclock_nmea.c
  projects/ppc64/contrib/ntp/ntpd/refclock_palisade.c
  projects/ppc64/contrib/ntp/ntpdate/Makefile.in
  projects/ppc64/contrib/ntp/ntpdc/Makefile.in
  projects/ppc64/contrib/ntp/ntpdc/ntpdc-opts.c
  projects/ppc64/contrib/ntp/ntpdc/ntpdc-opts.h
  projects/ppc64/contrib/ntp/ntpdc/ntpdc-opts.texi
  projects/ppc64/contrib/ntp/ntpdc/ntpdc.1
  projects/ppc64/contrib/ntp/ntpq/Makefile.in
  projects/ppc64/contrib/ntp/ntpq/ntpq-opts.c
  projects/ppc64/contrib/ntp/ntpq/ntpq-opts.h
  projects/ppc64/contrib/ntp/ntpq/ntpq-opts.texi
  projects/ppc64/contrib/ntp/ntpq/ntpq.1
  projects/ppc64/contrib/ntp/ntpq/ntpq.c
  projects/ppc64/contrib/ntp/packageinfo.sh
  projects/ppc64/contrib/ntp/parseutil/Makefile.in
  projects/ppc64/contrib/ntp/scripts/Makefile.in
  projects/ppc64/contrib/ntp/sntp/Makefile.in
  projects/ppc64/contrib/ntp/sntp/aclocal.m4
  projects/ppc64/contrib/ntp/sntp/config.h.in
  projects/ppc64/contrib/ntp/sntp/configure
  projects/ppc64/contrib/ntp/sntp/configure.ac
  projects/ppc64/contrib/ntp/sntp/libopts/Makefile.in
  projects/ppc64/contrib/ntp/sntp/sntp-opts.c
  projects/ppc64/contrib/ntp/sntp/sntp-opts.def
  projects/ppc64/contrib/ntp/sntp/sntp-opts.h
  projects/ppc64/contrib/ntp/sntp/sntp-opts.texi
  projects/ppc64/contrib/ntp/sntp/sntp.1
  projects/ppc64/contrib/ntp/sntp/version.def
  projects/ppc64/contrib/ntp/util/Makefile.in
  projects/ppc64/contrib/ntp/util/ntp-keygen-opts.c
  projects/ppc64/contrib/ntp/util/ntp-keygen-opts.h
  projects/ppc64/contrib/ntp/util/ntp-keygen-opts.texi
  projects/ppc64/contrib/ntp/util/ntp-keygen.1
  projects/ppc64/contrib/ntp/version
  projects/ppc64/contrib/ntp/version.m4
  projects/ppc64/contrib/one-true-awk/FIXES
  projects/ppc64/contrib/one-true-awk/b.c
  projects/ppc64/contrib/one-true-awk/lib.c
  projects/ppc64/contrib/one-true-awk/main.c
  projects/ppc64/contrib/one-true-awk/makefile
  projects/ppc64/contrib/one-true-awk/maketab.c
  projects/ppc64/contrib/one-true-awk/proctab.c
  projects/ppc64/contrib/one-true-awk/proto.h
  projects/ppc64/contrib/one-true-awk/run.c
  projects/ppc64/contrib/opie/libopie/getutmpentry.c
  projects/ppc64/contrib/opie/libopie/insecure.c
  projects/ppc64/contrib/opie/libopie/login.c
  projects/ppc64/contrib/pf/man/pf.conf.5
  projects/ppc64/contrib/pf/pfctl/parse.y
  projects/ppc64/contrib/pf/pfctl/pf_print_state.c
  projects/ppc64/contrib/pf/pfctl/pfctl_parser.c
  projects/ppc64/contrib/tcp_wrappers/hosts_access.c
  projects/ppc64/contrib/telnet/telnetd/sys_term.c
  projects/ppc64/contrib/telnet/telnetd/telnetd.c
  projects/ppc64/contrib/top/username.c
  projects/ppc64/crypto/heimdal/kcm/connect.c
  projects/ppc64/crypto/openssh/config.h
  projects/ppc64/crypto/openssh/defines.h
  projects/ppc64/crypto/openssh/loginrec.c
  projects/ppc64/crypto/openssh/sshd.c
  projects/ppc64/etc/defaults/devfs.rules
  projects/ppc64/etc/defaults/rc.conf
  projects/ppc64/etc/devd/Makefile
  projects/ppc64/etc/mtree/BIND.chroot.dist
  projects/ppc64/etc/mtree/BSD.include.dist
  projects/ppc64/etc/mtree/BSD.usr.dist
  projects/ppc64/etc/namedb/named.conf
  projects/ppc64/etc/namedb/named.root
  projects/ppc64/etc/network.subr
  projects/ppc64/etc/newsyslog.conf
  projects/ppc64/etc/periodic/monthly/200.accounting
  projects/ppc64/etc/rc.d/cleanvar
  projects/ppc64/etc/rc.d/named
  projects/ppc64/etc/rc.d/nsswitch
  projects/ppc64/etc/rc.d/var
  projects/ppc64/etc/rc.firewall
  projects/ppc64/etc/rc.subr
  projects/ppc64/etc/termcap.small
  projects/ppc64/games/fortune/datfiles/fortunes
  projects/ppc64/games/fortune/datfiles/fortunes-o.real
  projects/ppc64/games/fortune/datfiles/freebsd-tips
  projects/ppc64/games/fortune/strfile/strfile.c
  projects/ppc64/games/fortune/unstr/unstr.c
  projects/ppc64/games/number/number.c
  projects/ppc64/games/pom/pom.6
  projects/ppc64/games/pom/pom.c
  projects/ppc64/gnu/lib/libgcc/Makefile
  projects/ppc64/gnu/usr.bin/binutils/Makefile.inc0
  projects/ppc64/gnu/usr.bin/binutils/ld/Makefile.mips
  projects/ppc64/gnu/usr.bin/cc/Makefile.tgt
  projects/ppc64/gnu/usr.bin/groff/tmac/mdoc.local
  projects/ppc64/include/Makefile
  projects/ppc64/include/dirent.h
  projects/ppc64/include/paths.h
  projects/ppc64/include/signal.h
  projects/ppc64/include/strings.h
  projects/ppc64/include/unistd.h
  projects/ppc64/include/utmp.h
  projects/ppc64/kerberos5/usr.bin/kdestroy/Makefile
  projects/ppc64/kerberos5/usr.bin/kpasswd/Makefile
  projects/ppc64/lib/Makefile
  projects/ppc64/lib/Makefile.inc
  projects/ppc64/lib/csu/Makefile.inc
  projects/ppc64/lib/csu/arm/Makefile
  projects/ppc64/lib/csu/i386-elf/Makefile
  projects/ppc64/lib/csu/mips/Makefile
  projects/ppc64/lib/libarchive/Makefile
  projects/ppc64/lib/libarchive/archive.h
  projects/ppc64/lib/libarchive/archive_check_magic.c
  projects/ppc64/lib/libarchive/archive_endian.h
  projects/ppc64/lib/libarchive/archive_entry.c
  projects/ppc64/lib/libarchive/archive_entry.h
  projects/ppc64/lib/libarchive/archive_entry_link_resolver.c
  projects/ppc64/lib/libarchive/archive_entry_private.h
  projects/ppc64/lib/libarchive/archive_entry_stat.c
  projects/ppc64/lib/libarchive/archive_platform.h
  projects/ppc64/lib/libarchive/archive_private.h
  projects/ppc64/lib/libarchive/archive_read.c
  projects/ppc64/lib/libarchive/archive_read_disk_entry_from_file.c
  projects/ppc64/lib/libarchive/archive_read_disk_private.h
  projects/ppc64/lib/libarchive/archive_read_disk_set_standard_lookup.c
  projects/ppc64/lib/libarchive/archive_read_open_fd.c
  projects/ppc64/lib/libarchive/archive_read_open_file.c
  projects/ppc64/lib/libarchive/archive_read_open_filename.c
  projects/ppc64/lib/libarchive/archive_read_private.h
  projects/ppc64/lib/libarchive/archive_read_support_compression_all.c
  projects/ppc64/lib/libarchive/archive_read_support_compression_bzip2.c
  projects/ppc64/lib/libarchive/archive_read_support_compression_compress.c
  projects/ppc64/lib/libarchive/archive_read_support_compression_gzip.c
  projects/ppc64/lib/libarchive/archive_read_support_compression_program.c
  projects/ppc64/lib/libarchive/archive_read_support_compression_xz.c
  projects/ppc64/lib/libarchive/archive_read_support_format_ar.c
  projects/ppc64/lib/libarchive/archive_read_support_format_cpio.c
  projects/ppc64/lib/libarchive/archive_read_support_format_iso9660.c
  projects/ppc64/lib/libarchive/archive_read_support_format_mtree.c
  projects/ppc64/lib/libarchive/archive_read_support_format_raw.c
  projects/ppc64/lib/libarchive/archive_read_support_format_tar.c
  projects/ppc64/lib/libarchive/archive_read_support_format_zip.c
  projects/ppc64/lib/libarchive/archive_string.c
  projects/ppc64/lib/libarchive/archive_string.h
  projects/ppc64/lib/libarchive/archive_util.3
  projects/ppc64/lib/libarchive/archive_util.c
  projects/ppc64/lib/libarchive/archive_virtual.c
  projects/ppc64/lib/libarchive/archive_write.3
  projects/ppc64/lib/libarchive/archive_write.c
  projects/ppc64/lib/libarchive/archive_write_disk.c
  projects/ppc64/lib/libarchive/archive_write_disk_private.h
  projects/ppc64/lib/libarchive/archive_write_disk_set_standard_lookup.c
  projects/ppc64/lib/libarchive/archive_write_open_fd.c
  projects/ppc64/lib/libarchive/archive_write_private.h
  projects/ppc64/lib/libarchive/archive_write_set_compression_bzip2.c
  projects/ppc64/lib/libarchive/archive_write_set_compression_compress.c
  projects/ppc64/lib/libarchive/archive_write_set_compression_gzip.c
  projects/ppc64/lib/libarchive/archive_write_set_compression_none.c
  projects/ppc64/lib/libarchive/archive_write_set_compression_program.c
  projects/ppc64/lib/libarchive/archive_write_set_compression_xz.c
  projects/ppc64/lib/libarchive/archive_write_set_format.c
  projects/ppc64/lib/libarchive/archive_write_set_format_ar.c
  projects/ppc64/lib/libarchive/archive_write_set_format_by_name.c
  projects/ppc64/lib/libarchive/archive_write_set_format_cpio.c
  projects/ppc64/lib/libarchive/archive_write_set_format_cpio_newc.c
  projects/ppc64/lib/libarchive/archive_write_set_format_mtree.c
  projects/ppc64/lib/libarchive/archive_write_set_format_pax.c
  projects/ppc64/lib/libarchive/config_freebsd.h
  projects/ppc64/lib/libarchive/filter_fork.h
  projects/ppc64/lib/libarchive/libarchive-formats.5
  projects/ppc64/lib/libarchive/tar.5
  projects/ppc64/lib/libarchive/test/Makefile
  projects/ppc64/lib/libarchive/test/main.c
  projects/ppc64/lib/libarchive/test/test.h
  projects/ppc64/lib/libarchive/test/test_acl_pax.c
  projects/ppc64/lib/libarchive/test/test_compat_bzip2.c
  projects/ppc64/lib/libarchive/test/test_compat_solaris_tar_acl.c
  projects/ppc64/lib/libarchive/test/test_entry.c
  projects/ppc64/lib/libarchive/test/test_entry_strmode.c
  projects/ppc64/lib/libarchive/test/test_extattr_freebsd.c
  projects/ppc64/lib/libarchive/test/test_fuzz.c
  projects/ppc64/lib/libarchive/test/test_open_fd.c
  projects/ppc64/lib/libarchive/test/test_open_file.c
  projects/ppc64/lib/libarchive/test/test_pax_filename_encoding.c
  projects/ppc64/lib/libarchive/test/test_read_compress_program.c
  projects/ppc64/lib/libarchive/test/test_read_data_large.c
  projects/ppc64/lib/libarchive/test/test_read_disk.c
  projects/ppc64/lib/libarchive/test/test_read_disk_entry_from_file.c
  projects/ppc64/lib/libarchive/test/test_read_extract.c
  projects/ppc64/lib/libarchive/test/test_read_format_ar.c
  projects/ppc64/lib/libarchive/test/test_read_format_cpio_bin_bz2.c
  projects/ppc64/lib/libarchive/test/test_read_format_iso_gz.c
  projects/ppc64/lib/libarchive/test/test_read_format_isojoliet_bz2.c
  projects/ppc64/lib/libarchive/test/test_read_format_isorr_bz2.c
  projects/ppc64/lib/libarchive/test/test_read_format_mtree.c
  projects/ppc64/lib/libarchive/test/test_read_format_pax_bz2.c
  projects/ppc64/lib/libarchive/test/test_read_format_tar.c
  projects/ppc64/lib/libarchive/test/test_read_format_tbz.c
  projects/ppc64/lib/libarchive/test/test_read_large.c
  projects/ppc64/lib/libarchive/test/test_tar_large.c
  projects/ppc64/lib/libarchive/test/test_write_compress_program.c
  projects/ppc64/lib/libarchive/test/test_write_disk.c
  projects/ppc64/lib/libarchive/test/test_write_disk_failures.c
  projects/ppc64/lib/libarchive/test/test_write_disk_hardlink.c
  projects/ppc64/lib/libarchive/test/test_write_disk_perms.c
  projects/ppc64/lib/libarchive/test/test_write_disk_secure.c
  projects/ppc64/lib/libarchive/test/test_write_disk_sparse.c
  projects/ppc64/lib/libarchive/test/test_write_disk_times.c
  projects/ppc64/lib/libarchive/test/test_write_format_cpio_empty.c
  projects/ppc64/lib/libarchive/test/test_write_format_cpio_newc.c
  projects/ppc64/lib/libarchive/test/test_write_format_cpio_odc.c
  projects/ppc64/lib/libarchive/test/test_write_format_tar_ustar.c
  projects/ppc64/lib/libauditd/Makefile
  projects/ppc64/lib/libautofs/Makefile
  projects/ppc64/lib/libbegemot/Makefile
  projects/ppc64/lib/libbsm/Makefile
  projects/ppc64/lib/libbz2/Makefile
  projects/ppc64/lib/libc/Makefile
  projects/ppc64/lib/libc/gen/Makefile.inc
  projects/ppc64/lib/libc/gen/Symbol.map
  projects/ppc64/lib/libc/gen/_pthread_stubs.c
  projects/ppc64/lib/libc/gen/getttyent.3
  projects/ppc64/lib/libc/gen/opendir.c
  projects/ppc64/lib/libc/gen/scandir.3
  projects/ppc64/lib/libc/gen/scandir.c
  projects/ppc64/lib/libc/gen/sem.c
  projects/ppc64/lib/libc/gen/sem_init.3
  projects/ppc64/lib/libc/gen/sem_open.3
  projects/ppc64/lib/libc/gen/time.3
  projects/ppc64/lib/libc/gen/time.c
  projects/ppc64/lib/libc/gen/ttyname.3
  projects/ppc64/lib/libc/gen/ttyslot.c
  projects/ppc64/lib/libc/gen/uname.c
  projects/ppc64/lib/libc/include/libc_private.h
  projects/ppc64/lib/libc/mips/Symbol.map
  projects/ppc64/lib/libc/mips/sys/brk.S
  projects/ppc64/lib/libc/net/sctp_bindx.3
  projects/ppc64/lib/libc/net/sctp_connectx.3
  projects/ppc64/lib/libc/net/sctp_getaddrlen.3
  projects/ppc64/lib/libc/net/sctp_getassocid.3
  projects/ppc64/lib/libc/net/sctp_getpaddrs.3
  projects/ppc64/lib/libc/net/sctp_opt_info.3
  projects/ppc64/lib/libc/net/sctp_recvmsg.3
  projects/ppc64/lib/libc/net/sctp_send.3
  projects/ppc64/lib/libc/net/sctp_sendmsg.3
  projects/ppc64/lib/libc/posix1e/Makefile.inc
  projects/ppc64/lib/libc/posix1e/acl_delete_entry.c
  projects/ppc64/lib/libc/rpc/getnetpath.c
  projects/ppc64/lib/libc/rpc/svc_auth_des.c
  projects/ppc64/lib/libc/stdio/fread.c
  projects/ppc64/lib/libc/stdio/fwrite.c
  projects/ppc64/lib/libc/stdio/getc.3
  projects/ppc64/lib/libc/stdio/getline.3
  projects/ppc64/lib/libc/stdio/sprintf.c
  projects/ppc64/lib/libc/stdio/sscanf.c
  projects/ppc64/lib/libc/stdio/vsscanf.c
  projects/ppc64/lib/libc/stdlib/malloc.c
  projects/ppc64/lib/libc/stdtime/localtime.c
  projects/ppc64/lib/libc/stdtime/tzfile.5
  projects/ppc64/lib/libc/sys/clock_gettime.2
  projects/ppc64/lib/libc/sys/cpuset.2
  projects/ppc64/lib/libc/sys/cpuset_getaffinity.2
  projects/ppc64/lib/libc/sys/kqueue.2
  projects/ppc64/lib/libc/sys/sctp_generic_recvmsg.2
  projects/ppc64/lib/libc/sys/sctp_generic_sendmsg.2
  projects/ppc64/lib/libc/sys/sctp_peeloff.2
  projects/ppc64/lib/libc/sys/sendfile.2
  projects/ppc64/lib/libcalendar/Makefile
  projects/ppc64/lib/libcam/Makefile
  projects/ppc64/lib/libcompat/Makefile
  projects/ppc64/lib/libcrypt/Makefile
  projects/ppc64/lib/libdevinfo/Makefile
  projects/ppc64/lib/libdevstat/Makefile
  projects/ppc64/lib/libdwarf/Makefile
  projects/ppc64/lib/libedit/Makefile
  projects/ppc64/lib/libelf/Makefile
  projects/ppc64/lib/libelf/elf.3
  projects/ppc64/lib/libexpat/Makefile
  projects/ppc64/lib/libexpat/libbsdxml.3
  projects/ppc64/lib/libfetch/Makefile
  projects/ppc64/lib/libfetch/http.c
  projects/ppc64/lib/libftpio/Makefile
  projects/ppc64/lib/libgeom/geom_getxml.c
  projects/ppc64/lib/libgeom/geom_util.c
  projects/ppc64/lib/libgeom/geom_xml2tree.c
  projects/ppc64/lib/libgeom/libgeom.3
  projects/ppc64/lib/libgeom/libgeom.h
  projects/ppc64/lib/libgpib/Makefile
  projects/ppc64/lib/libgssapi/Makefile
  projects/ppc64/lib/libgssapi/gss_mech_switch.c
  projects/ppc64/lib/libipsec/Makefile
  projects/ppc64/lib/libipx/Makefile
  projects/ppc64/lib/libjail/Makefile
  projects/ppc64/lib/libjail/jail.c
  projects/ppc64/lib/libkiconv/Makefile
  projects/ppc64/lib/libkvm/Makefile
  projects/ppc64/lib/libkvm/kvm_proc.c
  projects/ppc64/lib/libmagic/Makefile
  projects/ppc64/lib/libmd/Makefile
  projects/ppc64/lib/libmilter/Makefile
  projects/ppc64/lib/libmp/Makefile
  projects/ppc64/lib/libncp/Makefile
  projects/ppc64/lib/libngatm/Makefile
  projects/ppc64/lib/libopie/Makefile
  projects/ppc64/lib/libopie/config.h
  projects/ppc64/lib/libpam/modules/Makefile.inc
  projects/ppc64/lib/libpam/modules/pam_exec/Makefile
  projects/ppc64/lib/libpam/modules/pam_krb5/Makefile
  projects/ppc64/lib/libpam/modules/pam_lastlog/Makefile
  projects/ppc64/lib/libpam/modules/pam_lastlog/pam_lastlog.c
  projects/ppc64/lib/libpam/modules/pam_radius/Makefile
  projects/ppc64/lib/libpam/modules/pam_ssh/Makefile
  projects/ppc64/lib/libpcap/Makefile
  projects/ppc64/lib/libpmc/Makefile
  projects/ppc64/lib/libpmc/libpmc.c
  projects/ppc64/lib/libproc/Makefile
  projects/ppc64/lib/libradius/Makefile
  projects/ppc64/lib/librpcsec_gss/Makefile
  projects/ppc64/lib/librpcsec_gss/rpcsec_gss_conf.c
  projects/ppc64/lib/librpcsec_gss/svc_rpcsec_gss.c
  projects/ppc64/lib/librt/Makefile
  projects/ppc64/lib/libsbuf/Makefile
  projects/ppc64/lib/libsm/Makefile
  projects/ppc64/lib/libsmdb/Makefile
  projects/ppc64/lib/libsmutil/Makefile
  projects/ppc64/lib/libstand/Makefile
  projects/ppc64/lib/libstand/bzipfs.c
  projects/ppc64/lib/libstand/dosfs.c
  projects/ppc64/lib/libstand/gzipfs.c
  projects/ppc64/lib/libtacplus/Makefile
  projects/ppc64/lib/libtacplus/libtacplus.3
  projects/ppc64/lib/libtacplus/taclib.c
  projects/ppc64/lib/libtacplus/taclib.h
  projects/ppc64/lib/libtacplus/taclib_private.h
  projects/ppc64/lib/libthr/arch/mips/include/pthread_md.h
  projects/ppc64/lib/libthr/pthread.map
  projects/ppc64/lib/libthr/thread/thr_init.c
  projects/ppc64/lib/libthr/thread/thr_private.h
  projects/ppc64/lib/libthr/thread/thr_sem.c
  projects/ppc64/lib/libthr/thread/thr_umtx.c
  projects/ppc64/lib/libthread_db/Makefile
  projects/ppc64/lib/libufs/Makefile
  projects/ppc64/lib/libugidfw/Makefile
  projects/ppc64/lib/libugidfw/ugidfw.c
  projects/ppc64/lib/libulog/Makefile
  projects/ppc64/lib/libulog/Symbol.map
  projects/ppc64/lib/libulog/ulog.h
  projects/ppc64/lib/libulog/ulog_login.3
  projects/ppc64/lib/libulog/ulog_login.c
  projects/ppc64/lib/libulog/ulog_login_pseudo.c
  projects/ppc64/lib/libulog/utempter.c
  projects/ppc64/lib/libulog/utempter_add_record.3
  projects/ppc64/lib/libusb/Makefile
  projects/ppc64/lib/libusb/libusb10.c
  projects/ppc64/lib/libusb/libusb20.c
  projects/ppc64/lib/libutil/Makefile
  projects/ppc64/lib/libutil/gr_util.c
  projects/ppc64/lib/libutil/libutil.h
  projects/ppc64/lib/libutil/login_tty.c
  projects/ppc64/lib/libvgl/Makefile
  projects/ppc64/lib/libwrap/Makefile
  projects/ppc64/lib/liby/Makefile
  projects/ppc64/lib/libypclnt/Makefile
  projects/ppc64/lib/libz/Makefile
  projects/ppc64/lib/ncurses/Makefile.inc
  projects/ppc64/libexec/Makefile.inc
  projects/ppc64/libexec/atrun/Makefile
  projects/ppc64/libexec/atrun/atrun.c
  projects/ppc64/libexec/bootpd/Makefile
  projects/ppc64/libexec/bootpd/Makefile.inc
  projects/ppc64/libexec/bootpd/tools/Makefile.inc
  projects/ppc64/libexec/comsat/comsat.c
  projects/ppc64/libexec/fingerd/Makefile
  projects/ppc64/libexec/ftpd/ftpd.c
  projects/ppc64/libexec/ftpd/logwtmp.c
  projects/ppc64/libexec/getty/Makefile
  projects/ppc64/libexec/getty/ttys.5
  projects/ppc64/libexec/mail.local/Makefile
  projects/ppc64/libexec/mknetid/Makefile
  projects/ppc64/libexec/pppoed/Makefile
  projects/ppc64/libexec/rbootd/Makefile
  projects/ppc64/libexec/revnetgroup/Makefile
  projects/ppc64/libexec/rlogind/rlogind.c
  projects/ppc64/libexec/rpc.rquotad/Makefile
  projects/ppc64/libexec/rpc.rstatd/Makefile
  projects/ppc64/libexec/rpc.rusersd/Makefile
  projects/ppc64/libexec/rpc.rusersd/rusers_proc.c
  projects/ppc64/libexec/rpc.rusersd/rusersd.c
  projects/ppc64/libexec/rpc.rwalld/Makefile
  projects/ppc64/libexec/rpc.sprayd/Makefile
  projects/ppc64/libexec/rshd/Makefile
  projects/ppc64/libexec/rtld-aout/shlib.c
  projects/ppc64/libexec/rtld-aout/support.c
  projects/ppc64/libexec/rtld-elf/Makefile
  projects/ppc64/libexec/smrsh/Makefile
  projects/ppc64/libexec/talkd/Makefile
  projects/ppc64/libexec/talkd/process.c
  projects/ppc64/libexec/tcpd/Makefile
  projects/ppc64/libexec/tftp-proxy/Makefile
  projects/ppc64/libexec/tftpd/Makefile
  projects/ppc64/libexec/ulog-helper/Makefile
  projects/ppc64/libexec/ypxfr/Makefile
  projects/ppc64/release/Makefile
  projects/ppc64/release/doc/en_US.ISO8859-1/hardware/article.sgml
  projects/ppc64/release/doc/share/misc/dev.archlist.txt
  projects/ppc64/release/picobsd/bridge/PICOBSD
  projects/ppc64/release/picobsd/build/mfs.mtree
  projects/ppc64/release/picobsd/build/picobsd
  projects/ppc64/release/picobsd/floppy.tree/etc/master.passwd
  projects/ppc64/sbin/adjkerntz/Makefile
  projects/ppc64/sbin/comcontrol/comcontrol.c
  projects/ppc64/sbin/dumpfs/dumpfs.c
  projects/ppc64/sbin/fsck_ffs/fsutil.c
  projects/ppc64/sbin/fsck_ffs/gjournal.c
  projects/ppc64/sbin/fsck_ffs/main.c
  projects/ppc64/sbin/fsck_ffs/pass1.c
  projects/ppc64/sbin/fsck_ffs/pass2.c
  projects/ppc64/sbin/geom/class/Makefile
  projects/ppc64/sbin/geom/class/cache/Makefile
  projects/ppc64/sbin/geom/class/raid3/geom_raid3.c
  projects/ppc64/sbin/geom/class/raid3/graid3.8
  projects/ppc64/sbin/geom/class/stripe/geom_stripe.c
  projects/ppc64/sbin/geom/core/geom.8
  projects/ppc64/sbin/geom/core/geom.c
  projects/ppc64/sbin/ggate/ggated/ggated.c
  projects/ppc64/sbin/growfs/growfs.c
  projects/ppc64/sbin/ifconfig/Makefile
  projects/ppc64/sbin/ifconfig/af_inet.c
  projects/ppc64/sbin/ifconfig/ifieee80211.c
  projects/ppc64/sbin/ifconfig/regdomain.c
  projects/ppc64/sbin/init/Makefile
  projects/ppc64/sbin/init/init.c
  projects/ppc64/sbin/ipfw/ipfw.8
  projects/ppc64/sbin/ipfw/ipfw2.c
  projects/ppc64/sbin/ipfw/ipfw2.h
  projects/ppc64/sbin/kldconfig/Makefile
  projects/ppc64/sbin/kldload/Makefile
  projects/ppc64/sbin/kldstat/Makefile
  projects/ppc64/sbin/ldconfig/ldconfig.c
  projects/ppc64/sbin/mdconfig/mdconfig.c
  projects/ppc64/sbin/mount/mntopts.h
  projects/ppc64/sbin/mount/mount.8
  projects/ppc64/sbin/mount/mount.c
  projects/ppc64/sbin/mount/vfslist.c
  projects/ppc64/sbin/mount_msdosfs/mount_msdosfs.8
  projects/ppc64/sbin/mount_msdosfs/mount_msdosfs.c
  projects/ppc64/sbin/mount_nullfs/mount_nullfs.c
  projects/ppc64/sbin/natd/Makefile
  projects/ppc64/sbin/natd/natd.c
  projects/ppc64/sbin/newfs/Makefile
  projects/ppc64/sbin/newfs/mkfs.c
  projects/ppc64/sbin/nfsiod/nfsiod.8
  projects/ppc64/sbin/nfsiod/nfsiod.c
  projects/ppc64/sbin/rcorder/ealloc.c
  projects/ppc64/sbin/rcorder/hash.c
  projects/ppc64/sbin/rcorder/rcorder.c
  projects/ppc64/sbin/reboot/Makefile
  projects/ppc64/sbin/reboot/reboot.c
  projects/ppc64/sbin/routed/if.c
  projects/ppc64/sbin/setkey/setkey.8
  projects/ppc64/sbin/shutdown/shutdown.c
  projects/ppc64/sbin/swapon/Makefile
  projects/ppc64/sbin/tunefs/Makefile
  projects/ppc64/sbin/tunefs/tunefs.8
  projects/ppc64/sbin/tunefs/tunefs.c
  projects/ppc64/sbin/umount/Makefile
  projects/ppc64/sbin/umount/umount.c
  projects/ppc64/secure/Makefile
  projects/ppc64/secure/Makefile.inc
  projects/ppc64/share/examples/Makefile
  projects/ppc64/share/examples/etc/make.conf
  projects/ppc64/share/examples/kld/cdev/test/Makefile
  projects/ppc64/share/examples/kld/cdev/test/testcdev.c
  projects/ppc64/share/examples/kld/firmware/fwconsumer/fw_consumer.c
  projects/ppc64/share/examples/kld/syscall/test/Makefile
  projects/ppc64/share/examples/kld/syscall/test/call.c
  projects/ppc64/share/man/man3/Makefile
  projects/ppc64/share/man/man3/pthread.3
  projects/ppc64/share/man/man3/pthread_attr.3
  projects/ppc64/share/man/man4/Makefile
  projects/ppc64/share/man/man4/acpi.4
  projects/ppc64/share/man/man4/acpi_asus.4
  projects/ppc64/share/man/man4/ath.4
  projects/ppc64/share/man/man4/aue.4
  projects/ppc64/share/man/man4/axe.4
  projects/ppc64/share/man/man4/bridge.4
  projects/ppc64/share/man/man4/carp.4
  projects/ppc64/share/man/man4/cdce.4
  projects/ppc64/share/man/man4/cpufreq.4
  projects/ppc64/share/man/man4/dc.4
  projects/ppc64/share/man/man4/epair.4
  projects/ppc64/share/man/man4/faith.4
  projects/ppc64/share/man/man4/gem.4
  projects/ppc64/share/man/man4/gif.4
  projects/ppc64/share/man/man4/hme.4
  projects/ppc64/share/man/man4/ifmib.4
  projects/ppc64/share/man/man4/iwnfw.4
  projects/ppc64/share/man/man4/lge.4
  projects/ppc64/share/man/man4/mac.4
  projects/ppc64/share/man/man4/man4.i386/vpd.4
  projects/ppc64/share/man/man4/man4.sparc64/ebus.4
  projects/ppc64/share/man/man4/mfi.4
  projects/ppc64/share/man/man4/mpt.4
  projects/ppc64/share/man/man4/mwlfw.4
  projects/ppc64/share/man/man4/ndis.4
  projects/ppc64/share/man/man4/nge.4
  projects/ppc64/share/man/man4/pcm.4
  projects/ppc64/share/man/man4/pcn.4
  projects/ppc64/share/man/man4/psm.4
  projects/ppc64/share/man/man4/pts.4
  projects/ppc64/share/man/man4/ral.4
  projects/ppc64/share/man/man4/re.4
  projects/ppc64/share/man/man4/rl.4
  projects/ppc64/share/man/man4/rue.4
  projects/ppc64/share/man/man4/rum.4
  projects/ppc64/share/man/man4/sf.4
  projects/ppc64/share/man/man4/sis.4
  projects/ppc64/share/man/man4/sk.4
  projects/ppc64/share/man/man4/smbus.4
  projects/ppc64/share/man/man4/snd_hda.4
  projects/ppc64/share/man/man4/snd_uaudio.4
  projects/ppc64/share/man/man4/ste.4
  projects/ppc64/share/man/man4/sysmouse.4
  projects/ppc64/share/man/man4/targ.4
  projects/ppc64/share/man/man4/termios.4
  projects/ppc64/share/man/man4/tty.4
  projects/ppc64/share/man/man4/u3g.4
  projects/ppc64/share/man/man4/uart.4
  projects/ppc64/share/man/man4/ucom.4
  projects/ppc64/share/man/man4/udav.4
  projects/ppc64/share/man/man4/ural.4
  projects/ppc64/share/man/man4/urio.4
  projects/ppc64/share/man/man4/urtw.4
  projects/ppc64/share/man/man4/vge.4
  projects/ppc64/share/man/man4/vr.4
  projects/ppc64/share/man/man4/watchdog.4
  projects/ppc64/share/man/man4/wi.4
  projects/ppc64/share/man/man4/wlan.4
  projects/ppc64/share/man/man5/Makefile
  projects/ppc64/share/man/man5/devfs.rules.5
  projects/ppc64/share/man/man5/make.conf.5
  projects/ppc64/share/man/man5/rc.conf.5
  projects/ppc64/share/man/man5/src.conf.5
  projects/ppc64/share/man/man7/build.7
  projects/ppc64/share/man/man7/release.7
  projects/ppc64/share/man/man7/security.7
  projects/ppc64/share/man/man9/LOCK_PROFILING.9
  projects/ppc64/share/man/man9/Makefile
  projects/ppc64/share/man/man9/VFS.9
  projects/ppc64/share/man/man9/VFS_CHECKEXP.9
  projects/ppc64/share/man/man9/VFS_FHTOVP.9
  projects/ppc64/share/man/man9/ifnet.9
  projects/ppc64/share/man/man9/mac.9
  projects/ppc64/share/man/man9/namei.9
  projects/ppc64/share/man/man9/pci.9
  projects/ppc64/share/man/man9/sleep.9
  projects/ppc64/share/man/man9/sleepqueue.9
  projects/ppc64/share/man/man9/sysctl.9
  projects/ppc64/share/man/man9/usbdi.9
  projects/ppc64/share/man/man9/vm_page_bits.9
  projects/ppc64/share/misc/bsd-family-tree
  projects/ppc64/share/misc/committers-doc.dot
  projects/ppc64/share/misc/committers-src.dot
  projects/ppc64/share/mk/bsd.dep.mk
  projects/ppc64/share/mk/bsd.libnames.mk
  projects/ppc64/share/mk/bsd.own.mk
  projects/ppc64/share/mk/bsd.sys.mk
  projects/ppc64/share/termcap/termcap.5
  projects/ppc64/share/termcap/termcap.src
  projects/ppc64/share/zoneinfo/asia
  projects/ppc64/share/zoneinfo/europe
  projects/ppc64/share/zoneinfo/zone.tab
  projects/ppc64/sys/amd64/amd64/io.c
  projects/ppc64/sys/amd64/amd64/local_apic.c
  projects/ppc64/sys/amd64/amd64/mem.c
  projects/ppc64/sys/amd64/amd64/mp_machdep.c
  projects/ppc64/sys/amd64/amd64/pmap.c
  projects/ppc64/sys/amd64/amd64/sys_machdep.c
  projects/ppc64/sys/amd64/amd64/vm_machdep.c
  projects/ppc64/sys/amd64/conf/DEFAULTS
  projects/ppc64/sys/amd64/conf/GENERIC
  projects/ppc64/sys/amd64/conf/Makefile
  projects/ppc64/sys/amd64/conf/NOTES
  projects/ppc64/sys/amd64/conf/XENHVM
  projects/ppc64/sys/amd64/ia32/ia32_syscall.c
  projects/ppc64/sys/amd64/include/apicvar.h
  projects/ppc64/sys/amd64/include/cpufunc.h
  projects/ppc64/sys/amd64/include/iodev.h
  projects/ppc64/sys/amd64/isa/clock.c
  projects/ppc64/sys/arm/arm/busdma_machdep.c
  projects/ppc64/sys/arm/arm/cpufunc.c
  projects/ppc64/sys/arm/arm/elf_trampoline.c
  projects/ppc64/sys/arm/arm/mem.c
  projects/ppc64/sys/arm/conf/AVILA
  projects/ppc64/sys/arm/conf/CAMBRIA
  projects/ppc64/sys/arm/conf/CRB
  projects/ppc64/sys/arm/conf/EP80219
  projects/ppc64/sys/arm/conf/GUMSTIX
  projects/ppc64/sys/arm/conf/IQ31244
  projects/ppc64/sys/arm/conf/SIMICS
  projects/ppc64/sys/arm/conf/SKYEYE
  projects/ppc64/sys/arm/include/cpuconf.h
  projects/ppc64/sys/arm/include/cpufunc.h
  projects/ppc64/sys/arm/include/pmc_mdep.h
  projects/ppc64/sys/arm/xscale/ixp425/files.ixp425
  projects/ppc64/sys/boot/common/Makefile.inc
  projects/ppc64/sys/boot/common/bootstrap.h
  projects/ppc64/sys/boot/common/dev_net.c
  projects/ppc64/sys/boot/common/module.c
  projects/ppc64/sys/boot/efi/include/efilib.h
  projects/ppc64/sys/boot/efi/libefi/Makefile
  projects/ppc64/sys/boot/forth/loader.conf
  projects/ppc64/sys/boot/i386/Makefile
  projects/ppc64/sys/boot/i386/libi386/biosacpi.c
  projects/ppc64/sys/boot/i386/libi386/biosdisk.c
  projects/ppc64/sys/boot/ia64/efi/conf.c
  projects/ppc64/sys/boot/ia64/efi/main.c
  projects/ppc64/sys/boot/ia64/efi/version
  projects/ppc64/sys/boot/ofw/libofw/ofw_disk.c
  projects/ppc64/sys/boot/pc98/Makefile.inc
  projects/ppc64/sys/boot/pc98/boot0.5/selector.s
  projects/ppc64/sys/boot/pc98/boot2/Makefile
  projects/ppc64/sys/boot/pc98/kgzldr/crt.s
  projects/ppc64/sys/boot/pc98/libpc98/Makefile
  projects/ppc64/sys/boot/pc98/libpc98/biosdisk.c
  projects/ppc64/sys/boot/pc98/loader/main.c
  projects/ppc64/sys/boot/sparc64/loader/Makefile
  projects/ppc64/sys/boot/sparc64/loader/main.c
  projects/ppc64/sys/boot/uboot/lib/glue.c
  projects/ppc64/sys/boot/zfs/zfsimpl.c
  projects/ppc64/sys/cam/ata/ata_all.c
  projects/ppc64/sys/cam/ata/ata_da.c
  projects/ppc64/sys/cam/ata/ata_xpt.c
  projects/ppc64/sys/cam/scsi/scsi_cd.c
  projects/ppc64/sys/cam/scsi/scsi_ses.c
  projects/ppc64/sys/cam/scsi/scsi_targ_bh.c
  projects/ppc64/sys/cddl/boot/zfs/zfsimpl.h
  projects/ppc64/sys/cddl/boot/zfs/zfssubr.c
  projects/ppc64/sys/cddl/contrib/opensolaris/common/zfs/zfs_prop.c
  projects/ppc64/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_object.c
  projects/ppc64/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_send.c
  projects/ppc64/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dnode.c
  projects/ppc64/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dmu.h
  projects/ppc64/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_acl.h
  projects/ppc64/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zil.h
  projects/ppc64/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_acl.c
  projects/ppc64/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_dir.c
  projects/ppc64/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c
  projects/ppc64/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c
  projects/ppc64/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_znode.c
  projects/ppc64/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zil.c
  projects/ppc64/sys/cddl/contrib/opensolaris/uts/common/sys/fs/zfs.h
  projects/ppc64/sys/compat/linux/linux_file.c
  projects/ppc64/sys/compat/linux/linux_futex.c
  projects/ppc64/sys/compat/linux/linux_ioctl.c
  projects/ppc64/sys/compat/linux/linux_ioctl.h
  projects/ppc64/sys/compat/linux/linux_misc.c
  projects/ppc64/sys/compat/linux/linux_signal.c
  projects/ppc64/sys/compat/linux/linux_uid16.c
  projects/ppc64/sys/compat/svr4/svr4_misc.c
  projects/ppc64/sys/compat/x86bios/x86bios.c
  projects/ppc64/sys/conf/Makefile.arm
  projects/ppc64/sys/conf/Makefile.mips
  projects/ppc64/sys/conf/NOTES
  projects/ppc64/sys/conf/files
  projects/ppc64/sys/conf/files.arm
  projects/ppc64/sys/conf/files.ia64
  projects/ppc64/sys/conf/files.mips
  projects/ppc64/sys/conf/files.pc98
  projects/ppc64/sys/conf/files.sparc64
  projects/ppc64/sys/conf/files.sun4v
  projects/ppc64/sys/conf/kern.mk
  projects/ppc64/sys/conf/ldscript.mips
  projects/ppc64/sys/conf/makeLINT.mk
  projects/ppc64/sys/conf/options
  projects/ppc64/sys/conf/options.arm
  projects/ppc64/sys/conf/options.i386
  projects/ppc64/sys/conf/options.mips
  projects/ppc64/sys/conf/options.pc98
  projects/ppc64/sys/conf/options.sparc64
  projects/ppc64/sys/contrib/dev/acpica/changes.txt
  projects/ppc64/sys/contrib/dev/acpica/compiler/aslcompile.c
  projects/ppc64/sys/contrib/dev/acpica/debugger/dbutils.c
  projects/ppc64/sys/contrib/dev/acpica/disassembler/dmwalk.c
  projects/ppc64/sys/contrib/dev/acpica/dispatcher/dsmethod.c
  projects/ppc64/sys/contrib/dev/acpica/dispatcher/dswload.c
  projects/ppc64/sys/contrib/dev/acpica/events/evregion.c
  projects/ppc64/sys/contrib/dev/acpica/events/evrgnini.c
  projects/ppc64/sys/contrib/dev/acpica/events/evxface.c
  projects/ppc64/sys/contrib/dev/acpica/events/evxfevnt.c
  projects/ppc64/sys/contrib/dev/acpica/events/evxfregn.c
  projects/ppc64/sys/contrib/dev/acpica/executer/exmutex.c
  projects/ppc64/sys/contrib/dev/acpica/include/acnamesp.h
  projects/ppc64/sys/contrib/dev/acpica/include/acobject.h
  projects/ppc64/sys/contrib/dev/acpica/include/acoutput.h
  projects/ppc64/sys/contrib/dev/acpica/include/acpixf.h
  projects/ppc64/sys/contrib/dev/acpica/namespace/nsaccess.c
  projects/ppc64/sys/contrib/dev/acpica/namespace/nsdump.c
  projects/ppc64/sys/contrib/dev/acpica/namespace/nseval.c
  projects/ppc64/sys/contrib/dev/acpica/namespace/nsnames.c
  projects/ppc64/sys/contrib/dev/acpica/namespace/nspredef.c
  projects/ppc64/sys/contrib/dev/acpica/namespace/nsrepair.c
  projects/ppc64/sys/contrib/dev/acpica/namespace/nsrepair2.c
  projects/ppc64/sys/contrib/dev/acpica/namespace/nsutils.c
  projects/ppc64/sys/contrib/dev/acpica/namespace/nsxfeval.c
  projects/ppc64/sys/contrib/dev/acpica/namespace/nsxfname.c
  projects/ppc64/sys/contrib/dev/acpica/namespace/nsxfobj.c
  projects/ppc64/sys/contrib/dev/acpica/parser/psxface.c
  projects/ppc64/sys/contrib/dev/acpica/resources/rsxface.c
  projects/ppc64/sys/contrib/dev/acpica/tools/acpiexec/aecommon.h
  projects/ppc64/sys/contrib/dev/acpica/utilities/utcopy.c
  projects/ppc64/sys/contrib/dev/uath/ar5523.bin.uu
  projects/ppc64/sys/contrib/ngatm/netnatm/api/cc_conn.c
  projects/ppc64/sys/contrib/pf/net/if_pfsync.c
  projects/ppc64/sys/contrib/pf/net/if_pfsync.h
  projects/ppc64/sys/contrib/pf/net/pf.c
  projects/ppc64/sys/contrib/pf/net/pfvar.h
  projects/ppc64/sys/ddb/db_ps.c
  projects/ppc64/sys/dev/aac/aac.c
  projects/ppc64/sys/dev/acpi_support/acpi_ibm.c
  projects/ppc64/sys/dev/acpica/acpi_ec.c
  projects/ppc64/sys/dev/adlink/adlink.c
  projects/ppc64/sys/dev/ae/if_ae.c
  projects/ppc64/sys/dev/agp/agp.c
  projects/ppc64/sys/dev/agp/agp_via.c
  projects/ppc64/sys/dev/ahci/ahci.c
  projects/ppc64/sys/dev/aic7xxx/aic79xx_pci.c
  projects/ppc64/sys/dev/aic7xxx/aicasm/Makefile
  projects/ppc64/sys/dev/aic7xxx/aicasm/aicasm.c
  projects/ppc64/sys/dev/aic7xxx/aicasm/aicasm_macro_scan.l
  projects/ppc64/sys/dev/aic7xxx/aicasm/aicasm_scan.l
  projects/ppc64/sys/dev/aic7xxx/aicasm/aicasm_symbol.c
  projects/ppc64/sys/dev/amd/amd.c
  projects/ppc64/sys/dev/amr/amr.c
  projects/ppc64/sys/dev/arcmsr/arcmsr.c
  projects/ppc64/sys/dev/ata/ata-all.c
  projects/ppc64/sys/dev/ata/ata-all.h
  projects/ppc64/sys/dev/ata/ata-disk.c
  projects/ppc64/sys/dev/ata/ata-pci.h
  projects/ppc64/sys/dev/ata/ata-raid.c
  projects/ppc64/sys/dev/ata/atapi-cd.c
  projects/ppc64/sys/dev/ata/atapi-cd.h
  projects/ppc64/sys/dev/ata/chipsets/ata-acerlabs.c
  projects/ppc64/sys/dev/ata/chipsets/ata-ahci.c
  projects/ppc64/sys/dev/ata/chipsets/ata-amd.c
  projects/ppc64/sys/dev/ata/chipsets/ata-ati.c
  projects/ppc64/sys/dev/ata/chipsets/ata-intel.c
  projects/ppc64/sys/dev/ata/chipsets/ata-ite.c
  projects/ppc64/sys/dev/ata/chipsets/ata-promise.c
  projects/ppc64/sys/dev/ata/chipsets/ata-serverworks.c
  projects/ppc64/sys/dev/ata/chipsets/ata-siliconimage.c
  projects/ppc64/sys/dev/ata/chipsets/ata-via.c
  projects/ppc64/sys/dev/ath/ath_hal/ar5210/ar5210_reset.c
  projects/ppc64/sys/dev/ath/ath_hal/ar5211/ar5211_reset.c
  projects/ppc64/sys/dev/ath/ath_hal/ar5212/ar5212_interrupts.c
  projects/ppc64/sys/dev/ath/ath_hal/ar5416/ar5416_interrupts.c
  projects/ppc64/sys/dev/ath/if_ath.c
  projects/ppc64/sys/dev/atkbdc/psm.c
  projects/ppc64/sys/dev/auxio/auxio.c
  projects/ppc64/sys/dev/bge/if_bge.c
  projects/ppc64/sys/dev/bge/if_bgereg.h
  projects/ppc64/sys/dev/bktr/bktr_i2c.c
  projects/ppc64/sys/dev/bktr/bktr_os.c
  projects/ppc64/sys/dev/cardbus/cardbus.c
  projects/ppc64/sys/dev/cardbus/cardbus_cis.c
  projects/ppc64/sys/dev/cfe/cfe_api.c
  projects/ppc64/sys/dev/ciss/ciss.c
  projects/ppc64/sys/dev/cs/if_cs.c
  projects/ppc64/sys/dev/cs/if_csreg.h
  projects/ppc64/sys/dev/ct/ct_isa.c
  projects/ppc64/sys/dev/cxgb/common/cxgb_t3_hw.c
  projects/ppc64/sys/dev/cxgb/cxgb_sge.c
  projects/ppc64/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_cm.c
  projects/ppc64/sys/dev/dc/if_dc.c
  projects/ppc64/sys/dev/dc/if_dcreg.h
  projects/ppc64/sys/dev/de/if_de.c
  projects/ppc64/sys/dev/dpms/dpms.c
  projects/ppc64/sys/dev/dpt/dpt.h
  projects/ppc64/sys/dev/dpt/dpt_scsi.c
  projects/ppc64/sys/dev/drm/drm_vm.c
  projects/ppc64/sys/dev/e1000/e1000_82543.c
  projects/ppc64/sys/dev/e1000/e1000_osdep.h
  projects/ppc64/sys/dev/e1000/if_em.c
  projects/ppc64/sys/dev/e1000/if_igb.c
  projects/ppc64/sys/dev/ep/if_ep.c
  projects/ppc64/sys/dev/ex/if_ex.c
  projects/ppc64/sys/dev/exca/excareg.h
  projects/ppc64/sys/dev/fatm/if_fatm.c
  projects/ppc64/sys/dev/fb/creator.c
  projects/ppc64/sys/dev/fb/fb.c
  projects/ppc64/sys/dev/fb/fbreg.h
  projects/ppc64/sys/dev/fb/machfb.c
  projects/ppc64/sys/dev/fb/s3_pci.c
  projects/ppc64/sys/dev/fb/vesa.c
  projects/ppc64/sys/dev/fb/vga.c
  projects/ppc64/sys/dev/fb/vgareg.h
  projects/ppc64/sys/dev/fdc/fdc_acpi.c
  projects/ppc64/sys/dev/firewire/fwdev.c
  projects/ppc64/sys/dev/firewire/fwmem.c
  projects/ppc64/sys/dev/firewire/sbp.c
  projects/ppc64/sys/dev/hatm/if_hatm.c
  projects/ppc64/sys/dev/hifn/hifn7751.c
  projects/ppc64/sys/dev/hptmv/entry.c
  projects/ppc64/sys/dev/hwpmc/hwpmc_arm.c
  projects/ppc64/sys/dev/hwpmc/hwpmc_core.c
  projects/ppc64/sys/dev/hwpmc/hwpmc_intel.c
  projects/ppc64/sys/dev/hwpmc/hwpmc_mod.c
  projects/ppc64/sys/dev/hwpmc/pmc_events.h
  projects/ppc64/sys/dev/ic/ns16550.h
  projects/ppc64/sys/dev/ichsmb/ichsmb_pci.c
  projects/ppc64/sys/dev/if_ndis/if_ndis.c
  projects/ppc64/sys/dev/if_ndis/if_ndis_usb.c
  projects/ppc64/sys/dev/iir/iir.c
  projects/ppc64/sys/dev/iir/iir_pci.c
  projects/ppc64/sys/dev/io/iodev.c
  projects/ppc64/sys/dev/ipmi/ipmi.c
  projects/ppc64/sys/dev/ips/ips_pci.c
  projects/ppc64/sys/dev/iscsi/initiator/isc_sm.c
  projects/ppc64/sys/dev/isp/isp.c
  projects/ppc64/sys/dev/isp/isp_library.c
  projects/ppc64/sys/dev/iwn/if_iwn.c
  projects/ppc64/sys/dev/iwn/if_iwnreg.h
  projects/ppc64/sys/dev/iwn/if_iwnvar.h
  projects/ppc64/sys/dev/ixgbe/ixgbe.c
  projects/ppc64/sys/dev/jme/if_jme.c
  projects/ppc64/sys/dev/ksyms/ksyms.c
  projects/ppc64/sys/dev/led/led.c
  projects/ppc64/sys/dev/lmc/if_lmc.c
  projects/ppc64/sys/dev/malo/if_malo.c
  projects/ppc64/sys/dev/mc146818/mc146818.c
  projects/ppc64/sys/dev/mc146818/mc146818reg.h
  projects/ppc64/sys/dev/mc146818/mc146818var.h
  projects/ppc64/sys/dev/md/md.c
  projects/ppc64/sys/dev/mge/if_mge.c
  projects/ppc64/sys/dev/mii/brgphy.c
  projects/ppc64/sys/dev/mii/ip1000phy.c
  projects/ppc64/sys/dev/mii/miidevs
  projects/ppc64/sys/dev/mii/tdkphy.c
  projects/ppc64/sys/dev/mk48txx/mk48txx.c
  projects/ppc64/sys/dev/mk48txx/mk48txxreg.h
  projects/ppc64/sys/dev/mk48txx/mk48txxvar.h
  projects/ppc64/sys/dev/mly/mly.c
  projects/ppc64/sys/dev/mpt/mpt_pci.c
  projects/ppc64/sys/dev/mxge/eth_z8e.h
  projects/ppc64/sys/dev/mxge/ethp_z8e.h
  projects/ppc64/sys/dev/mxge/if_mxge.c
  projects/ppc64/sys/dev/mxge/rss_eth_z8e.h
  projects/ppc64/sys/dev/mxge/rss_ethp_z8e.h
  projects/ppc64/sys/dev/patm/if_patm_intr.c
  projects/ppc64/sys/dev/pccard/card_if.m
  projects/ppc64/sys/dev/pci/pci.c
  projects/ppc64/sys/dev/pci/pci_pci.c
  projects/ppc64/sys/dev/pci/pci_private.h
  projects/ppc64/sys/dev/pdq/if_fea.c
  projects/ppc64/sys/dev/puc/puc.c
  projects/ppc64/sys/dev/safe/safe.c
  projects/ppc64/sys/dev/siis/siis.c
  projects/ppc64/sys/dev/siis/siis.h
  projects/ppc64/sys/dev/sound/pci/hda/hdac.c
  projects/ppc64/sys/dev/sound/pci/hda/hdac_private.h
  projects/ppc64/sys/dev/sound/pci/maestro3.c
  projects/ppc64/sys/dev/sound/pcm/channel.c
  projects/ppc64/sys/dev/sound/pcm/dsp.c
  projects/ppc64/sys/dev/sound/pcm/mixer.c
  projects/ppc64/sys/dev/sound/pcm/sndstat.c
  projects/ppc64/sys/dev/sound/pcm/sndstat.h
  projects/ppc64/sys/dev/sound/usb/uaudio.c
  projects/ppc64/sys/dev/ste/if_ste.c
  projects/ppc64/sys/dev/ste/if_stereg.h
  projects/ppc64/sys/dev/syscons/syscons.c
  projects/ppc64/sys/dev/tdfx/tdfx_pci.c
  projects/ppc64/sys/dev/trm/trm.c
  projects/ppc64/sys/dev/twe/twe.c
  projects/ppc64/sys/dev/twe/twe_freebsd.c
  projects/ppc64/sys/dev/twe/twevar.h
  projects/ppc64/sys/dev/uart/uart_bus_acpi.c
  projects/ppc64/sys/dev/uart/uart_bus_ebus.c
  projects/ppc64/sys/dev/uart/uart_cpu_sparc64.c
  projects/ppc64/sys/dev/usb/controller/ehci_pci.c
  projects/ppc64/sys/dev/usb/controller/musb_otg.c
  projects/ppc64/sys/dev/usb/controller/ohci_pci.c
  projects/ppc64/sys/dev/usb/controller/uhci.c
  projects/ppc64/sys/dev/usb/net/if_aue.c
  projects/ppc64/sys/dev/usb/net/if_axe.c
  projects/ppc64/sys/dev/usb/net/if_cue.c
  projects/ppc64/sys/dev/usb/net/if_kue.c
  projects/ppc64/sys/dev/usb/quirk/usb_quirk.c
  projects/ppc64/sys/dev/usb/quirk/usb_quirk.h
  projects/ppc64/sys/dev/usb/serial/u3g.c
  projects/ppc64/sys/dev/usb/serial/uftdi.c
  projects/ppc64/sys/dev/usb/serial/uipaq.c
  projects/ppc64/sys/dev/usb/serial/umodem.c
  projects/ppc64/sys/dev/usb/serial/uplcom.c
  projects/ppc64/sys/dev/usb/serial/uslcom.c
  projects/ppc64/sys/dev/usb/serial/uvisor.c
  projects/ppc64/sys/dev/usb/storage/umass.c
  projects/ppc64/sys/dev/usb/usb_device.c
  projects/ppc64/sys/dev/usb/usb_dynamic.c
  projects/ppc64/sys/dev/usb/usb_dynamic.h
  projects/ppc64/sys/dev/usb/usb_msctest.c
  projects/ppc64/sys/dev/usb/usb_msctest.h
  projects/ppc64/sys/dev/usb/usbdevs
  projects/ppc64/sys/dev/usb/usbdi.h
  projects/ppc64/sys/dev/usb/wlan/if_rum.c
  projects/ppc64/sys/dev/usb/wlan/if_uath.c
  projects/ppc64/sys/dev/usb/wlan/if_ural.c
  projects/ppc64/sys/dev/vge/if_vge.c
  projects/ppc64/sys/dev/vge/if_vgereg.h
  projects/ppc64/sys/dev/vge/if_vgevar.h
  projects/ppc64/sys/dev/wpi/if_wpi.c
  projects/ppc64/sys/dev/xen/blkfront/blkfront.c
  projects/ppc64/sys/dev/xl/if_xl.c
  projects/ppc64/sys/fs/devfs/devfs_vnops.c
  projects/ppc64/sys/fs/nfs/nfs_commonacl.c
  projects/ppc64/sys/fs/nfs/nfs_var.h
  projects/ppc64/sys/fs/nfsclient/nfs.h
  projects/ppc64/sys/fs/nfsclient/nfs_clbio.c
  projects/ppc64/sys/fs/nfsclient/nfs_clrpcops.c
  projects/ppc64/sys/fs/nfsclient/nfs_clstate.c
  projects/ppc64/sys/fs/nfsclient/nfs_clvnops.c
  projects/ppc64/sys/fs/nfsserver/nfs_nfsdport.c
  projects/ppc64/sys/fs/nfsserver/nfs_nfsdserv.c
  projects/ppc64/sys/fs/nfsserver/nfs_nfsdstate.c
  projects/ppc64/sys/fs/procfs/procfs_status.c
  projects/ppc64/sys/fs/smbfs/smbfs_smb.c
  projects/ppc64/sys/fs/tmpfs/tmpfs.h
  projects/ppc64/sys/fs/tmpfs/tmpfs_vfsops.c
  projects/ppc64/sys/geom/concat/g_concat.c
  projects/ppc64/sys/geom/gate/g_gate.c
  projects/ppc64/sys/geom/geom_dev.c
  projects/ppc64/sys/geom/geom_dump.c
  projects/ppc64/sys/geom/geom_io.c
  projects/ppc64/sys/geom/geom_slice.c
  projects/ppc64/sys/geom/mirror/g_mirror.c
  projects/ppc64/sys/geom/part/g_part.c
  projects/ppc64/sys/geom/part/g_part.h
  projects/ppc64/sys/geom/part/g_part_gpt.c
  projects/ppc64/sys/geom/raid3/g_raid3.c
  projects/ppc64/sys/geom/raid3/g_raid3.h
  projects/ppc64/sys/geom/stripe/g_stripe.c
  projects/ppc64/sys/geom/uzip/g_uzip.c
  projects/ppc64/sys/gnu/fs/reiserfs/reiserfs_fs.h
  projects/ppc64/sys/gnu/fs/xfs/FreeBSD/xfs_vnops.c
  projects/ppc64/sys/i386/conf/GENERIC
  projects/ppc64/sys/i386/conf/Makefile
  projects/ppc64/sys/i386/conf/NOTES
  projects/ppc64/sys/i386/conf/PAE
  projects/ppc64/sys/i386/i386/dump_machdep.c
  projects/ppc64/sys/i386/i386/elan-mmcr.c
  projects/ppc64/sys/i386/i386/io.c
  projects/ppc64/sys/i386/i386/local_apic.c
  projects/ppc64/sys/i386/i386/locore.s
  projects/ppc64/sys/i386/i386/mem.c
  projects/ppc64/sys/i386/i386/minidump_machdep.c
  projects/ppc64/sys/i386/i386/pmap.c
  projects/ppc64/sys/i386/ibcs2/ibcs2_misc.c
  projects/ppc64/sys/i386/include/apicvar.h
  projects/ppc64/sys/i386/include/cpufunc.h
  projects/ppc64/sys/i386/include/iodev.h
  projects/ppc64/sys/i386/include/pmap.h
  projects/ppc64/sys/i386/isa/clock.c
  projects/ppc64/sys/i386/xbox/xboxfb.c
  projects/ppc64/sys/i386/xen/locore.s
  projects/ppc64/sys/i386/xen/mp_machdep.c
  projects/ppc64/sys/i386/xen/pmap.c
  projects/ppc64/sys/i386/xen/xen_machdep.c
  projects/ppc64/sys/ia64/conf/DEFAULTS
  projects/ppc64/sys/ia64/conf/GENERIC
  projects/ppc64/sys/ia64/conf/Makefile
  projects/ppc64/sys/ia64/ia64/clock.c
  projects/ppc64/sys/ia64/ia64/efi.c
  projects/ppc64/sys/ia64/ia64/machdep.c
  projects/ppc64/sys/ia64/ia64/mem.c
  projects/ppc64/sys/ia64/ia64/mp_machdep.c
  projects/ppc64/sys/ia64/ia64/nexus.c
  projects/ppc64/sys/ia64/ia64/sscdisk.c
  projects/ppc64/sys/ia64/ia64/sys_machdep.c
  projects/ppc64/sys/ia64/include/bus.h
  projects/ppc64/sys/ia64/include/clock.h
  projects/ppc64/sys/ia64/include/cpufunc.h
  projects/ppc64/sys/ia64/include/efi.h
  projects/ppc64/sys/ia64/include/mca.h
  projects/ppc64/sys/ia64/include/md_var.h
  projects/ppc64/sys/ia64/include/sysarch.h
  projects/ppc64/sys/isa/pnp.c
  projects/ppc64/sys/isa/vga_isa.c
  projects/ppc64/sys/kern/kern_clock.c
  projects/ppc64/sys/kern/kern_conf.c
  projects/ppc64/sys/kern/kern_cpu.c
  projects/ppc64/sys/kern/kern_environment.c
  projects/ppc64/sys/kern/kern_event.c
  projects/ppc64/sys/kern/kern_exit.c
  projects/ppc64/sys/kern/kern_fail.c
  projects/ppc64/sys/kern/kern_jail.c
  projects/ppc64/sys/kern/kern_lock.c
  projects/ppc64/sys/kern/kern_mib.c
  projects/ppc64/sys/kern/kern_proc.c
  projects/ppc64/sys/kern/kern_prot.c
  projects/ppc64/sys/kern/kern_rmlock.c
  projects/ppc64/sys/kern/kern_sx.c
  projects/ppc64/sys/kern/kern_timeout.c
  projects/ppc64/sys/kern/kern_umtx.c
  projects/ppc64/sys/kern/sched_4bsd.c
  projects/ppc64/sys/kern/sched_ule.c
  projects/ppc64/sys/kern/subr_acl_nfs4.c
  projects/ppc64/sys/kern/subr_acl_posix1e.c
  projects/ppc64/sys/kern/subr_bus.c
  projects/ppc64/sys/kern/subr_devstat.c
  projects/ppc64/sys/kern/subr_eventhandler.c
  projects/ppc64/sys/kern/subr_firmware.c
  projects/ppc64/sys/kern/subr_param.c
  projects/ppc64/sys/kern/subr_sleepqueue.c
  projects/ppc64/sys/kern/subr_turnstile.c
  projects/ppc64/sys/kern/subr_witness.c
  projects/ppc64/sys/kern/tty.c
  projects/ppc64/sys/kern/tty_compat.c
  projects/ppc64/sys/kern/tty_inq.c
  projects/ppc64/sys/kern/tty_pts.c
  projects/ppc64/sys/kern/uipc_accf.c
  projects/ppc64/sys/kern/uipc_sem.c
  projects/ppc64/sys/kern/uipc_syscalls.c
  projects/ppc64/sys/kern/vfs_mount.c
  projects/ppc64/sys/kern/vfs_subr.c
  projects/ppc64/sys/kern/vfs_syscalls.c
  projects/ppc64/sys/mips/adm5120/adm5120_machdep.c   (contents, props changed)
  projects/ppc64/sys/mips/adm5120/files.adm5120   (contents, props changed)
  projects/ppc64/sys/mips/adm5120/if_admsw.c   (contents, props changed)
  projects/ppc64/sys/mips/adm5120/obio.c   (contents, props changed)
  projects/ppc64/sys/mips/adm5120/uart_cpu_adm5120.c   (contents, props changed)
  projects/ppc64/sys/mips/conf/MALTA   (contents, props changed)
  projects/ppc64/sys/mips/conf/QEMU   (contents, props changed)
  projects/ppc64/sys/mips/conf/SENTRY5   (contents, props changed)
  projects/ppc64/sys/mips/idt/files.idt   (contents, props changed)
  projects/ppc64/sys/mips/idt/idt_machdep.c   (contents, props changed)
  projects/ppc64/sys/mips/idt/obio.c   (contents, props changed)
  projects/ppc64/sys/mips/idt/uart_bus_rc32434.c   (contents, props changed)
  projects/ppc64/sys/mips/idt/uart_cpu_rc32434.c   (contents, props changed)
  projects/ppc64/sys/mips/include/_align.h   (contents, props changed)
  projects/ppc64/sys/mips/include/_bus.h   (contents, props changed)
  projects/ppc64/sys/mips/include/_types.h   (contents, props changed)
  projects/ppc64/sys/mips/include/asm.h   (contents, props changed)
  projects/ppc64/sys/mips/include/atomic.h   (contents, props changed)
  projects/ppc64/sys/mips/include/bus.h   (contents, props changed)
  projects/ppc64/sys/mips/include/cache.h   (contents, props changed)
  projects/ppc64/sys/mips/include/cache_mipsNN.h   (contents, props changed)
  projects/ppc64/sys/mips/include/cpu.h   (contents, props changed)
  projects/ppc64/sys/mips/include/cpufunc.h   (contents, props changed)
  projects/ppc64/sys/mips/include/cpuinfo.h   (contents, props changed)
  projects/ppc64/sys/mips/include/cpuregs.h   (contents, props changed)
  projects/ppc64/sys/mips/include/db_machdep.h   (contents, props changed)
  projects/ppc64/sys/mips/include/elf.h   (contents, props changed)
  projects/ppc64/sys/mips/include/endian.h   (contents, props changed)
  projects/ppc64/sys/mips/include/float.h   (contents, props changed)
  projects/ppc64/sys/mips/include/hwfunc.h   (contents, props changed)
  projects/ppc64/sys/mips/include/intr_machdep.h   (contents, props changed)
  projects/ppc64/sys/mips/include/kdb.h   (contents, props changed)
  projects/ppc64/sys/mips/include/locore.h   (contents, props changed)
  projects/ppc64/sys/mips/include/md_var.h   (contents, props changed)
  projects/ppc64/sys/mips/include/param.h   (contents, props changed)
  projects/ppc64/sys/mips/include/pcb.h   (contents, props changed)
  projects/ppc64/sys/mips/include/pmap.h   (contents, props changed)
  projects/ppc64/sys/mips/include/proc.h   (contents, props changed)
  projects/ppc64/sys/mips/include/profile.h   (contents, props changed)
  projects/ppc64/sys/mips/include/psl.h   (contents, props changed)
  projects/ppc64/sys/mips/include/pte.h   (contents, props changed)
  projects/ppc64/sys/mips/include/regdef.h   (contents, props changed)
  projects/ppc64/sys/mips/include/regnum.h   (contents, props changed)
  projects/ppc64/sys/mips/include/sysarch.h   (contents, props changed)
  projects/ppc64/sys/mips/include/trap.h   (contents, props changed)
  projects/ppc64/sys/mips/include/ucontext.h   (contents, props changed)
  projects/ppc64/sys/mips/malta/files.malta   (contents, props changed)
  projects/ppc64/sys/mips/malta/gt_pci.c   (contents, props changed)
  projects/ppc64/sys/mips/malta/malta_machdep.c   (contents, props changed)
  projects/ppc64/sys/mips/malta/maltareg.h   (contents, props changed)
  projects/ppc64/sys/mips/malta/obio.c   (contents, props changed)
  projects/ppc64/sys/mips/malta/std.malta   (contents, props changed)
  projects/ppc64/sys/mips/malta/uart_bus_maltausart.c   (contents, props changed)
  projects/ppc64/sys/mips/malta/uart_cpu_maltausart.c   (contents, props changed)
  projects/ppc64/sys/mips/malta/yamon.h   (contents, props changed)
  projects/ppc64/sys/mips/mips/busdma_machdep.c   (contents, props changed)
  projects/ppc64/sys/mips/mips/cache.c   (contents, props changed)
  projects/ppc64/sys/mips/mips/cache_mipsNN.c   (contents, props changed)
  projects/ppc64/sys/mips/mips/copystr.S   (contents, props changed)
  projects/ppc64/sys/mips/mips/cpu.c   (contents, props changed)
  projects/ppc64/sys/mips/mips/db_trace.c   (contents, props changed)
  projects/ppc64/sys/mips/mips/elf_machdep.c   (contents, props changed)
  projects/ppc64/sys/mips/mips/exception.S   (contents, props changed)
  projects/ppc64/sys/mips/mips/fp.S   (contents, props changed)
  projects/ppc64/sys/mips/mips/gdb_machdep.c   (contents, props changed)
  projects/ppc64/sys/mips/mips/genassym.c   (contents, props changed)
  projects/ppc64/sys/mips/mips/in_cksum.c   (contents, props changed)
  projects/ppc64/sys/mips/mips/intr_machdep.c   (contents, props changed)
  projects/ppc64/sys/mips/mips/locore.S   (contents, props changed)
  projects/ppc64/sys/mips/mips/machdep.c   (contents, props changed)
  projects/ppc64/sys/mips/mips/mainbus.c   (contents, props changed)
  projects/ppc64/sys/mips/mips/mem.c   (contents, props changed)
  projects/ppc64/sys/mips/mips/nexus.c   (contents, props changed)
  projects/ppc64/sys/mips/mips/pm_machdep.c   (contents, props changed)
  projects/ppc64/sys/mips/mips/pmap.c   (contents, props changed)
  projects/ppc64/sys/mips/mips/psraccess.S   (contents, props changed)
  projects/ppc64/sys/mips/mips/support.S   (contents, props changed)
  projects/ppc64/sys/mips/mips/swtch.S   (contents, props changed)
  projects/ppc64/sys/mips/mips/tick.c   (contents, props changed)
  projects/ppc64/sys/mips/mips/tlb.S   (contents, props changed)
  projects/ppc64/sys/mips/mips/trap.c   (contents, props changed)
  projects/ppc64/sys/mips/mips/vm_machdep.c   (contents, props changed)
  projects/ppc64/sys/mips/sentry5/files.sentry5   (contents, props changed)
  projects/ppc64/sys/mips/sentry5/obio.c   (contents, props changed)
  projects/ppc64/sys/mips/sentry5/s5_machdep.c   (contents, props changed)
  projects/ppc64/sys/mips/sentry5/uart_bus_sbusart.c   (contents, props changed)
  projects/ppc64/sys/mips/sentry5/uart_cpu_sbusart.c   (contents, props changed)
  projects/ppc64/sys/modules/Makefile
  projects/ppc64/sys/modules/crypto/Makefile
  projects/ppc64/sys/modules/ext2fs/Makefile
  projects/ppc64/sys/modules/geom/Makefile
  projects/ppc64/sys/modules/ipfw/Makefile
  projects/ppc64/sys/modules/iwnfw/Makefile
  projects/ppc64/sys/modules/iwnfw/iwn4965/Makefile
  projects/ppc64/sys/modules/iwnfw/iwn5000/Makefile
  projects/ppc64/sys/modules/usb/Makefile
  projects/ppc64/sys/net/flowtable.c
  projects/ppc64/sys/net/if.c
  projects/ppc64/sys/net/if.h
  projects/ppc64/sys/net/if_bridge.c
  projects/ppc64/sys/net/if_epair.c
  projects/ppc64/sys/net/if_ethersubr.c
  projects/ppc64/sys/net/if_lagg.c
  projects/ppc64/sys/net/if_llatbl.c
  projects/ppc64/sys/net/if_llatbl.h
  projects/ppc64/sys/net/if_var.h
  projects/ppc64/sys/net/if_vlan.c
  projects/ppc64/sys/net/netisr.c
  projects/ppc64/sys/net/radix.c
  projects/ppc64/sys/net/radix.h
  projects/ppc64/sys/net/route.c
  projects/ppc64/sys/net/route.h
  projects/ppc64/sys/net/rtsock.c
  projects/ppc64/sys/net80211/ieee80211.c
  projects/ppc64/sys/net80211/ieee80211_freebsd.c
  projects/ppc64/sys/net80211/ieee80211_mesh.c
  projects/ppc64/sys/net80211/ieee80211_mesh.h
  projects/ppc64/sys/net80211/ieee80211_node.c
  projects/ppc64/sys/net80211/ieee80211_var.h
  projects/ppc64/sys/netgraph/atm/uni/ng_uni.c
  projects/ppc64/sys/netgraph/ng_base.c
  projects/ppc64/sys/netgraph/ng_bridge.c
  projects/ppc64/sys/netgraph/ng_eiface.c
  projects/ppc64/sys/netgraph/ng_ether.c
  projects/ppc64/sys/netgraph/ng_fec.c
  projects/ppc64/sys/netgraph/ng_ipfw.c
  projects/ppc64/sys/netgraph/ng_ipfw.h
  projects/ppc64/sys/netinet/if_ether.c
  projects/ppc64/sys/netinet/in.c
  projects/ppc64/sys/netinet/in.h
  projects/ppc64/sys/netinet/in_pcb.c
  projects/ppc64/sys/netinet/ip_carp.c
  projects/ppc64/sys/netinet/ip_divert.c
  projects/ppc64/sys/netinet/ip_divert.h
  projects/ppc64/sys/netinet/ip_dummynet.h
  projects/ppc64/sys/netinet/ip_encap.c
  projects/ppc64/sys/netinet/ip_fw.h
  projects/ppc64/sys/netinet/ip_mroute.c
  projects/ppc64/sys/netinet/ip_output.c
  projects/ppc64/sys/netinet/ip_var.h
  projects/ppc64/sys/netinet/ipfw/ip_dummynet.c
  projects/ppc64/sys/netinet/ipfw/ip_fw2.c
  projects/ppc64/sys/netinet/ipfw/ip_fw_nat.c
  projects/ppc64/sys/netinet/ipfw/ip_fw_pfil.c
  projects/ppc64/sys/netinet/libalias/alias_db.c
  projects/ppc64/sys/netinet/libalias/alias_mod.c
  projects/ppc64/sys/netinet/raw_ip.c
  projects/ppc64/sys/netinet/sctp_asconf.c
  projects/ppc64/sys/netinet/sctp_auth.c
  projects/ppc64/sys/netinet/sctp_auth.h
  projects/ppc64/sys/netinet/sctp_constants.h
  projects/ppc64/sys/netinet/sctp_header.h
  projects/ppc64/sys/netinet/sctp_indata.c
  projects/ppc64/sys/netinet/sctp_indata.h
  projects/ppc64/sys/netinet/sctp_input.c
  projects/ppc64/sys/netinet/sctp_os_bsd.h
  projects/ppc64/sys/netinet/sctp_output.c
  projects/ppc64/sys/netinet/sctp_pcb.c
  projects/ppc64/sys/netinet/sctp_structs.h
  projects/ppc64/sys/netinet/sctp_sysctl.c
  projects/ppc64/sys/netinet/sctp_uio.h
  projects/ppc64/sys/netinet/sctp_usrreq.c
  projects/ppc64/sys/netinet/sctputil.c
  projects/ppc64/sys/netinet/tcp.h
  projects/ppc64/sys/netinet/tcp_usrreq.c
  projects/ppc64/sys/netinet/tcp_var.h
  projects/ppc64/sys/netinet6/icmp6.c
  projects/ppc64/sys/netinet6/in6.c
  projects/ppc64/sys/netinet6/in6_proto.c
  projects/ppc64/sys/netinet6/in6_src.c
  projects/ppc64/sys/netinet6/ip6_input.c
  projects/ppc64/sys/netinet6/mld6.c
  projects/ppc64/sys/netinet6/mld6_var.h
  projects/ppc64/sys/netinet6/nd6.c
  projects/ppc64/sys/netinet6/nd6_rtr.c
  projects/ppc64/sys/netinet6/raw_ip6.c
  projects/ppc64/sys/nfsclient/bootp_subr.c
  projects/ppc64/sys/nfsclient/krpc_subr.c
  projects/ppc64/sys/nfsclient/nfs_vfsops.c
  projects/ppc64/sys/nfsclient/nfs_vnops.c
  projects/ppc64/sys/nfsserver/nfs.h
  projects/ppc64/sys/nfsserver/nfs_fha.c
  projects/ppc64/sys/nfsserver/nfs_srvkrpc.c
  projects/ppc64/sys/opencrypto/cryptosoft.c
  projects/ppc64/sys/pc98/cbus/clock.c
  projects/ppc64/sys/pc98/cbus/gdc.c
  projects/ppc64/sys/pc98/conf/DEFAULTS
  projects/ppc64/sys/pc98/conf/GENERIC
  projects/ppc64/sys/pc98/conf/Makefile
  projects/ppc64/sys/pc98/conf/NOTES
  projects/ppc64/sys/pci/ncr.c
  projects/ppc64/sys/powerpc/aim/mmu_oea.c
  projects/ppc64/sys/powerpc/aim/mmu_oea64.c
  projects/ppc64/sys/powerpc/booke/clock.c
  projects/ppc64/sys/powerpc/booke/pmap.c
  projects/ppc64/sys/powerpc/conf/GENERIC
  projects/ppc64/sys/powerpc/conf/Makefile
  projects/ppc64/sys/powerpc/ofw/ofw_syscons.c
  projects/ppc64/sys/powerpc/powerpc/mem.c
  projects/ppc64/sys/rpc/authunix_prot.c
  projects/ppc64/sys/rpc/clnt_dg.c
  projects/ppc64/sys/rpc/rpcsec_gss/rpcsec_gss_prot.c
  projects/ppc64/sys/rpc/rpcsec_gss/svc_rpcsec_gss.c
  projects/ppc64/sys/security/audit/audit_arg.c
  projects/ppc64/sys/security/mac_lomac/mac_lomac.c
  projects/ppc64/sys/sparc64/central/central.c
  projects/ppc64/sys/sparc64/conf/GENERIC
  projects/ppc64/sys/sparc64/conf/Makefile
  projects/ppc64/sys/sparc64/conf/NOTES
  projects/ppc64/sys/sparc64/ebus/ebus.c
  projects/ppc64/sys/sparc64/fhc/fhc.c
  projects/ppc64/sys/sparc64/include/bus_common.h
  projects/ppc64/sys/sparc64/include/intr_machdep.h
  projects/ppc64/sys/sparc64/include/iommureg.h
  projects/ppc64/sys/sparc64/include/iommuvar.h
  projects/ppc64/sys/sparc64/isa/ofw_isa.c
  projects/ppc64/sys/sparc64/pci/apb.c
  projects/ppc64/sys/sparc64/pci/ofw_pci.h
  projects/ppc64/sys/sparc64/pci/ofw_pcib.c
  projects/ppc64/sys/sparc64/pci/ofw_pcibus.c
  projects/ppc64/sys/sparc64/pci/psycho.c
  projects/ppc64/sys/sparc64/pci/psychovar.h
  projects/ppc64/sys/sparc64/pci/schizo.c
  projects/ppc64/sys/sparc64/pci/schizovar.h
  projects/ppc64/sys/sparc64/sbus/dma_sbus.c
  projects/ppc64/sys/sparc64/sbus/sbus.c
  projects/ppc64/sys/sparc64/sparc64/eeprom.c
  projects/ppc64/sys/sparc64/sparc64/identcpu.c
  projects/ppc64/sys/sparc64/sparc64/interrupt.S
  projects/ppc64/sys/sparc64/sparc64/intr_machdep.c
  projects/ppc64/sys/sparc64/sparc64/iommu.c
  projects/ppc64/sys/sparc64/sparc64/machdep.c
  projects/ppc64/sys/sparc64/sparc64/nexus.c
  projects/ppc64/sys/sparc64/sparc64/ofw_machdep.c
  projects/ppc64/sys/sparc64/sparc64/rtc.c
  projects/ppc64/sys/sparc64/sparc64/upa.c
  projects/ppc64/sys/sun4v/conf/GENERIC
  projects/ppc64/sys/sun4v/conf/Makefile
  projects/ppc64/sys/sun4v/conf/NOTES
  projects/ppc64/sys/sys/_lockmgr.h
  projects/ppc64/sys/sys/_semaphore.h
  projects/ppc64/sys/sys/acl.h
  projects/ppc64/sys/sys/apm.h
  projects/ppc64/sys/sys/ata.h
  projects/ppc64/sys/sys/bio.h
  projects/ppc64/sys/sys/cdefs.h
  projects/ppc64/sys/sys/conf.h
  projects/ppc64/sys/sys/copyright.h
  projects/ppc64/sys/sys/disk.h
  projects/ppc64/sys/sys/event.h
  projects/ppc64/sys/sys/file.h
  projects/ppc64/sys/sys/gpt.h
  projects/ppc64/sys/sys/jail.h
  projects/ppc64/sys/sys/mount.h
  projects/ppc64/sys/sys/param.h
  projects/ppc64/sys/sys/pmc.h
  projects/ppc64/sys/sys/proc.h
  projects/ppc64/sys/sys/sleepqueue.h
  projects/ppc64/sys/sys/socket.h
  projects/ppc64/sys/sys/syscallsubr.h
  projects/ppc64/sys/sys/systm.h
  projects/ppc64/sys/sys/tty.h
  projects/ppc64/sys/sys/ttydevsw.h
  projects/ppc64/sys/sys/umtx.h
  projects/ppc64/sys/sys/vnode.h
  projects/ppc64/sys/ufs/ffs/ffs_alloc.c
  projects/ppc64/sys/ufs/ffs/ffs_rawread.c
  projects/ppc64/sys/ufs/ffs/ffs_snapshot.c
  projects/ppc64/sys/ufs/ffs/ffs_vfsops.c
  projects/ppc64/sys/ufs/ffs/fs.h
  projects/ppc64/sys/ufs/ufs/acl.h
  projects/ppc64/sys/ufs/ufs/ufs_acl.c
  projects/ppc64/sys/ufs/ufs/ufs_dirhash.c
  projects/ppc64/sys/ufs/ufs/ufs_lookup.c
  projects/ppc64/sys/ufs/ufs/ufs_vnops.c
  projects/ppc64/sys/vm/device_pager.c
  projects/ppc64/sys/vm/uma_core.c
  projects/ppc64/sys/vm/vm_object.c
  projects/ppc64/sys/vm/vm_object.h
  projects/ppc64/sys/vm/vm_pageout.c
  projects/ppc64/sys/vm/vnode_pager.c
  projects/ppc64/sys/xen/gnttab.c
  projects/ppc64/sys/xen/xenbus/xenbus_probe.c
  projects/ppc64/tools/build/mk/OptionalObsoleteFiles.inc
  projects/ppc64/tools/regression/acct/Makefile
  projects/ppc64/tools/regression/acct/regress.t   (contents, props changed)
  projects/ppc64/tools/regression/acltools/tools-crossfs.test
  projects/ppc64/tools/regression/bin/date/regress.sh
  projects/ppc64/tools/regression/bin/mv/regress.sh
  projects/ppc64/tools/regression/fifo/fifo_misc/fifo_misc.c
  projects/ppc64/tools/regression/geom/ConfCmp/ConfCmp.c
  projects/ppc64/tools/regression/usr.bin/Makefile
  projects/ppc64/tools/regression/usr.bin/calendar/regress.sh
  projects/ppc64/tools/regression/usr.bin/jot/regress.sh
  projects/ppc64/tools/regression/usr.bin/lastcomm/values.sh
  projects/ppc64/tools/regression/usr.bin/make/common.sh
  projects/ppc64/tools/regression/usr.bin/pkill/pgrep-t.t
  projects/ppc64/tools/regression/usr.bin/pkill/pkill-t.t
  projects/ppc64/tools/regression/usr.bin/sed/multitest.t
  projects/ppc64/tools/tools/README
  projects/ppc64/tools/tools/ath/athdecode/main.c
  projects/ppc64/usr.bin/Makefile
  projects/ppc64/usr.bin/Makefile.inc
  projects/ppc64/usr.bin/apply/Makefile
  projects/ppc64/usr.bin/ar/Makefile
  projects/ppc64/usr.bin/ar/acpyacc.y
  projects/ppc64/usr.bin/ar/ar.c
  projects/ppc64/usr.bin/ar/read.c
  projects/ppc64/usr.bin/at/Makefile
  projects/ppc64/usr.bin/at/at.c
  projects/ppc64/usr.bin/atm/sscop/Makefile
  projects/ppc64/usr.bin/awk/Makefile
  projects/ppc64/usr.bin/banner/banner.c
  projects/ppc64/usr.bin/biff/biff.c
  projects/ppc64/usr.bin/bluetooth/bthost/Makefile
  projects/ppc64/usr.bin/brandelf/brandelf.1
  projects/ppc64/usr.bin/bsdiff/Makefile.inc
  projects/ppc64/usr.bin/bzip2/Makefile
  projects/ppc64/usr.bin/calendar/Makefile
  projects/ppc64/usr.bin/calendar/calendar.c
  projects/ppc64/usr.bin/calendar/calendars/calendar.all
  projects/ppc64/usr.bin/calendar/calendars/calendar.dutch
  projects/ppc64/usr.bin/calendar/day.c
  projects/ppc64/usr.bin/calendar/io.c
  projects/ppc64/usr.bin/calendar/ostern.c
  projects/ppc64/usr.bin/calendar/paskha.c
  projects/ppc64/usr.bin/catman/Makefile
  projects/ppc64/usr.bin/catman/catman.c
  projects/ppc64/usr.bin/chkey/Makefile
  projects/ppc64/usr.bin/chpass/Makefile
  projects/ppc64/usr.bin/chpass/chpass.1
  projects/ppc64/usr.bin/colldef/Makefile
  projects/ppc64/usr.bin/comm/comm.1
  projects/ppc64/usr.bin/comm/comm.c
  projects/ppc64/usr.bin/compile_et/Makefile
  projects/ppc64/usr.bin/compress/Makefile
  projects/ppc64/usr.bin/cpio/Makefile
  projects/ppc64/usr.bin/cpio/test/Makefile
  projects/ppc64/usr.bin/cpuset/Makefile
  projects/ppc64/usr.bin/ctags/ctags.c
  projects/ppc64/usr.bin/ctags/fortran.c
  projects/ppc64/usr.bin/dig/Makefile
  projects/ppc64/usr.bin/du/Makefile
  projects/ppc64/usr.bin/elf2aout/Makefile
  projects/ppc64/usr.bin/elfdump/Makefile
  projects/ppc64/usr.bin/elfdump/elfdump.1
  projects/ppc64/usr.bin/env/Makefile
  projects/ppc64/usr.bin/fetch/Makefile
  projects/ppc64/usr.bin/fetch/fetch.c
  projects/ppc64/usr.bin/file2c/Makefile
  projects/ppc64/usr.bin/find/Makefile
  projects/ppc64/usr.bin/find/function.c
  projects/ppc64/usr.bin/finger/Makefile
  projects/ppc64/usr.bin/finger/extern.h
  projects/ppc64/usr.bin/finger/finger.c
  projects/ppc64/usr.bin/finger/finger.h
  projects/ppc64/usr.bin/finger/lprint.c
  projects/ppc64/usr.bin/finger/net.c
  projects/ppc64/usr.bin/finger/sprint.c
  projects/ppc64/usr.bin/finger/util.c
  projects/ppc64/usr.bin/fstat/Makefile
  projects/ppc64/usr.bin/fsync/Makefile
  projects/ppc64/usr.bin/ftp/Makefile
  projects/ppc64/usr.bin/gcore/Makefile
  projects/ppc64/usr.bin/gencat/Makefile
  projects/ppc64/usr.bin/gencat/gencat.c
  projects/ppc64/usr.bin/getent/Makefile
  projects/ppc64/usr.bin/getent/getent.1
  projects/ppc64/usr.bin/getent/getent.c
  projects/ppc64/usr.bin/gprof/Makefile
  projects/ppc64/usr.bin/gprof/aout.c
  projects/ppc64/usr.bin/gzip/Makefile
  projects/ppc64/usr.bin/head/Makefile
  projects/ppc64/usr.bin/hexdump/Makefile
  projects/ppc64/usr.bin/host/Makefile
  projects/ppc64/usr.bin/id/Makefile
  projects/ppc64/usr.bin/ipcrm/Makefile
  projects/ppc64/usr.bin/ipcs/Makefile
  projects/ppc64/usr.bin/kdump/Makefile
  projects/ppc64/usr.bin/keylogin/Makefile
  projects/ppc64/usr.bin/killall/killall.1
  projects/ppc64/usr.bin/ktrace/Makefile
  projects/ppc64/usr.bin/ktrdump/Makefile
  projects/ppc64/usr.bin/lam/lam.c
  projects/ppc64/usr.bin/last/Makefile
  projects/ppc64/usr.bin/last/last.c
  projects/ppc64/usr.bin/lastcomm/Makefile
  projects/ppc64/usr.bin/lastcomm/lastcomm.c
  projects/ppc64/usr.bin/lastcomm/pathnames.h
  projects/ppc64/usr.bin/ldd/Makefile
  projects/ppc64/usr.bin/leave/Makefile
  projects/ppc64/usr.bin/less/Makefile.common
  projects/ppc64/usr.bin/lex/Makefile
  projects/ppc64/usr.bin/lex/flex.skl
  projects/ppc64/usr.bin/lex/initscan.c
  projects/ppc64/usr.bin/lex/lib/Makefile
  projects/ppc64/usr.bin/limits/Makefile
  projects/ppc64/usr.bin/locale/Makefile
  projects/ppc64/usr.bin/locate/Makefile.inc
  projects/ppc64/usr.bin/locate/locate/Makefile
  projects/ppc64/usr.bin/lock/Makefile
  projects/ppc64/usr.bin/logger/Makefile
  projects/ppc64/usr.bin/login/Makefile
  projects/ppc64/usr.bin/login/login.c
  projects/ppc64/usr.bin/login/login_fbtab.c
  projects/ppc64/usr.bin/logins/Makefile
  projects/ppc64/usr.bin/logname/Makefile
  projects/ppc64/usr.bin/look/Makefile
  projects/ppc64/usr.bin/lsvfs/Makefile
  projects/ppc64/usr.bin/m4/Makefile
  projects/ppc64/usr.bin/mail/Makefile
  projects/ppc64/usr.bin/make/Makefile
  projects/ppc64/usr.bin/make/dir.c
  projects/ppc64/usr.bin/make/dir.h
  projects/ppc64/usr.bin/make/for.c
  projects/ppc64/usr.bin/make/globals.h
  projects/ppc64/usr.bin/make/job.c
  projects/ppc64/usr.bin/make/lst.c
  projects/ppc64/usr.bin/make/lst.h
  projects/ppc64/usr.bin/make/main.c
  projects/ppc64/usr.bin/make/make.1
  projects/ppc64/usr.bin/make/make.c
  projects/ppc64/usr.bin/make/parse.c
  projects/ppc64/usr.bin/make/str.c
  projects/ppc64/usr.bin/make/targ.c
  projects/ppc64/usr.bin/make/var.c
  projects/ppc64/usr.bin/makewhatis/makewhatis.c
  projects/ppc64/usr.bin/minigzip/Makefile
  projects/ppc64/usr.bin/mkfifo/Makefile
  projects/ppc64/usr.bin/mklocale/Makefile
  projects/ppc64/usr.bin/mklocale/lex.l
  projects/ppc64/usr.bin/mklocale/yacc.y
  projects/ppc64/usr.bin/mkstr/Makefile
  projects/ppc64/usr.bin/mktemp/mktemp.c
  projects/ppc64/usr.bin/mkuzip/Makefile
  projects/ppc64/usr.bin/msgs/Makefile
  projects/ppc64/usr.bin/nc/Makefile
  projects/ppc64/usr.bin/ncplist/Makefile
  projects/ppc64/usr.bin/netstat/if.c
  projects/ppc64/usr.bin/netstat/main.c
  projects/ppc64/usr.bin/netstat/netstat.1
  projects/ppc64/usr.bin/netstat/netstat.h
  projects/ppc64/usr.bin/newkey/Makefile
  projects/ppc64/usr.bin/nfsstat/Makefile
  projects/ppc64/usr.bin/nl/Makefile
  projects/ppc64/usr.bin/nohup/Makefile
  projects/ppc64/usr.bin/nslookup/Makefile
  projects/ppc64/usr.bin/nsupdate/Makefile
  projects/ppc64/usr.bin/opieinfo/Makefile
  projects/ppc64/usr.bin/opiekey/Makefile
  projects/ppc64/usr.bin/opiepasswd/Makefile
  projects/ppc64/usr.bin/passwd/Makefile
  projects/ppc64/usr.bin/passwd/passwd.c
  projects/ppc64/usr.bin/pr/Makefile
  projects/ppc64/usr.bin/pr/egetopt.c
  projects/ppc64/usr.bin/printf/Makefile
  projects/ppc64/usr.bin/procstat/Makefile
  projects/ppc64/usr.bin/renice/renice.c
  projects/ppc64/usr.bin/revoke/Makefile
  projects/ppc64/usr.bin/rlogin/Makefile
  projects/ppc64/usr.bin/rpcgen/Makefile
  projects/ppc64/usr.bin/rpcgen/rpc_hout.c
  projects/ppc64/usr.bin/rpcgen/rpc_main.c
  projects/ppc64/usr.bin/rpcinfo/Makefile
  projects/ppc64/usr.bin/rsh/Makefile
  projects/ppc64/usr.bin/rup/Makefile
  projects/ppc64/usr.bin/ruptime/Makefile
  projects/ppc64/usr.bin/rusers/Makefile
  projects/ppc64/usr.bin/rwho/Makefile
  projects/ppc64/usr.bin/rwho/rwho.c
  projects/ppc64/usr.bin/script/script.c
  projects/ppc64/usr.bin/sed/Makefile
  projects/ppc64/usr.bin/showmount/showmount.c
  projects/ppc64/usr.bin/smbutil/Makefile
  projects/ppc64/usr.bin/sockstat/Makefile
  projects/ppc64/usr.bin/sockstat/sockstat.1
  projects/ppc64/usr.bin/sockstat/sockstat.c
  projects/ppc64/usr.bin/su/Makefile
  projects/ppc64/usr.bin/systat/Makefile
  projects/ppc64/usr.bin/systat/vmstat.c
  projects/ppc64/usr.bin/tail/Makefile
  projects/ppc64/usr.bin/tail/misc.c
  projects/ppc64/usr.bin/talk/ctl_transact.c
  projects/ppc64/usr.bin/talk/display.c
  projects/ppc64/usr.bin/talk/get_addrs.c
  projects/ppc64/usr.bin/talk/get_iface.c
  projects/ppc64/usr.bin/talk/get_names.c
  projects/ppc64/usr.bin/talk/invite.c
  projects/ppc64/usr.bin/talk/look_up.c
  projects/ppc64/usr.bin/talk/talk.c
  projects/ppc64/usr.bin/talk/talk.h
  projects/ppc64/usr.bin/tar/Makefile
  projects/ppc64/usr.bin/tar/test/Makefile
  projects/ppc64/usr.bin/tcopy/Makefile
  projects/ppc64/usr.bin/tcopy/tcopy.c
  projects/ppc64/usr.bin/telnet/Makefile
  projects/ppc64/usr.bin/tftp/tftp.c
  projects/ppc64/usr.bin/time/Makefile
  projects/ppc64/usr.bin/top/Makefile
  projects/ppc64/usr.bin/tr/Makefile
  projects/ppc64/usr.bin/truss/Makefile
  projects/ppc64/usr.bin/truss/amd64-fbsd32.c
  projects/ppc64/usr.bin/truss/i386-fbsd.c
  projects/ppc64/usr.bin/truss/main.c
  projects/ppc64/usr.bin/truss/syscalls.c
  projects/ppc64/usr.bin/tset/extern.h
  projects/ppc64/usr.bin/tset/map.c
  projects/ppc64/usr.bin/tset/misc.c
  projects/ppc64/usr.bin/tset/set.c
  projects/ppc64/usr.bin/tset/term.c
  projects/ppc64/usr.bin/tset/tset.c
  projects/ppc64/usr.bin/tset/wrterm.c
  projects/ppc64/usr.bin/unifdef/Makefile
  projects/ppc64/usr.bin/unifdef/unifdef.1
  projects/ppc64/usr.bin/unifdef/unifdef.c
  projects/ppc64/usr.bin/unifdef/unifdefall.sh
  projects/ppc64/usr.bin/uniq/uniq.1
  projects/ppc64/usr.bin/uniq/uniq.c
  projects/ppc64/usr.bin/unzip/Makefile
  projects/ppc64/usr.bin/unzip/unzip.c
  projects/ppc64/usr.bin/users/Makefile
  projects/ppc64/usr.bin/users/users.c
  projects/ppc64/usr.bin/uudecode/Makefile
  projects/ppc64/usr.bin/uuencode/Makefile
  projects/ppc64/usr.bin/vacation/Makefile
  projects/ppc64/usr.bin/vgrind/Makefile
  projects/ppc64/usr.bin/vi/Makefile
  projects/ppc64/usr.bin/vis/foldit.c
  projects/ppc64/usr.bin/vmstat/Makefile
  projects/ppc64/usr.bin/w/Makefile
  projects/ppc64/usr.bin/w/w.c
  projects/ppc64/usr.bin/wall/Makefile
  projects/ppc64/usr.bin/wall/wall.c
  projects/ppc64/usr.bin/wc/Makefile
  projects/ppc64/usr.bin/wc/wc.c
  projects/ppc64/usr.bin/whereis/Makefile
  projects/ppc64/usr.bin/who/Makefile
  projects/ppc64/usr.bin/who/who.c
  projects/ppc64/usr.bin/whois/whois.1
  projects/ppc64/usr.bin/whois/whois.c
  projects/ppc64/usr.bin/write/Makefile
  projects/ppc64/usr.bin/write/write.c
  projects/ppc64/usr.bin/xargs/Makefile
  projects/ppc64/usr.bin/xinstall/Makefile
  projects/ppc64/usr.bin/xinstall/xinstall.c
  projects/ppc64/usr.bin/xlint/xlint/xlint.c
  projects/ppc64/usr.bin/yacc/Makefile
  projects/ppc64/usr.bin/yacc/defs.h
  projects/ppc64/usr.bin/yacc/skeleton.c
  projects/ppc64/usr.bin/ypcat/Makefile
  projects/ppc64/usr.bin/ypmatch/Makefile
  projects/ppc64/usr.bin/ypwhich/Makefile
  projects/ppc64/usr.sbin/Makefile
  projects/ppc64/usr.sbin/Makefile.inc
  projects/ppc64/usr.sbin/ac/Makefile
  projects/ppc64/usr.sbin/ac/ac.c
  projects/ppc64/usr.sbin/accton/Makefile
  projects/ppc64/usr.sbin/accton/accton.c
  projects/ppc64/usr.sbin/acpi/acpiconf/Makefile
  projects/ppc64/usr.sbin/acpi/acpidump/Makefile
  projects/ppc64/usr.sbin/acpi/iasl/Makefile
  projects/ppc64/usr.sbin/adduser/adduser.sh
  projects/ppc64/usr.sbin/amd/Makefile.inc
  projects/ppc64/usr.sbin/ancontrol/ancontrol.c
  projects/ppc64/usr.sbin/apm/Makefile
  projects/ppc64/usr.sbin/apm/apm.8
  projects/ppc64/usr.sbin/apm/apm.c
  projects/ppc64/usr.sbin/apmd/Makefile
  projects/ppc64/usr.sbin/arp/arp.c
  projects/ppc64/usr.sbin/asf/Makefile
  projects/ppc64/usr.sbin/asf/asf_kld.c
  projects/ppc64/usr.sbin/audit/Makefile
  projects/ppc64/usr.sbin/auditd/Makefile
  projects/ppc64/usr.sbin/auditreduce/Makefile
  projects/ppc64/usr.sbin/authpf/Makefile
  projects/ppc64/usr.sbin/boot0cfg/Makefile
  projects/ppc64/usr.sbin/bootparamd/Makefile.inc
  projects/ppc64/usr.sbin/bootparamd/bootparamd/bootparamd.c
  projects/ppc64/usr.sbin/bsnmpd/bsnmpd/Makefile
  projects/ppc64/usr.sbin/bsnmpd/gensnmptree/Makefile
  projects/ppc64/usr.sbin/bsnmpd/modules/snmp_hostres/hostres_scalars.c
  projects/ppc64/usr.sbin/bsnmpd/modules/snmp_hostres/hostres_snmp.c
  projects/ppc64/usr.sbin/bsnmpd/modules/snmp_pf/Makefile
  projects/ppc64/usr.sbin/btxld/Makefile
  projects/ppc64/usr.sbin/burncd/Makefile
  projects/ppc64/usr.sbin/burncd/burncd.8
  projects/ppc64/usr.sbin/burncd/burncd.c
  projects/ppc64/usr.sbin/cdcontrol/Makefile
  projects/ppc64/usr.sbin/cdcontrol/cdcontrol.c
  projects/ppc64/usr.sbin/chkgrp/Makefile
  projects/ppc64/usr.sbin/chown/Makefile
  projects/ppc64/usr.sbin/chroot/Makefile
  projects/ppc64/usr.sbin/chroot/chroot.c
  projects/ppc64/usr.sbin/clear_locks/Makefile
  projects/ppc64/usr.sbin/config/Makefile
  projects/ppc64/usr.sbin/config/lang.l
  projects/ppc64/usr.sbin/cpucontrol/Makefile
  projects/ppc64/usr.sbin/cpucontrol/cpucontrol.c
  projects/ppc64/usr.sbin/cron/cron/Makefile
  projects/ppc64/usr.sbin/crunch/Makefile.inc
  projects/ppc64/usr.sbin/crunch/examples/really-big.conf
  projects/ppc64/usr.sbin/ctm/ctm/Makefile
  projects/ppc64/usr.sbin/ctm/ctm_dequeue/Makefile
  projects/ppc64/usr.sbin/ctm/ctm_rmail/Makefile
  projects/ppc64/usr.sbin/ctm/ctm_smail/Makefile
  projects/ppc64/usr.sbin/daemon/Makefile
  projects/ppc64/usr.sbin/dconschat/Makefile
  projects/ppc64/usr.sbin/devinfo/Makefile
  projects/ppc64/usr.sbin/digictl/Makefile
  projects/ppc64/usr.sbin/diskinfo/Makefile
  projects/ppc64/usr.sbin/diskinfo/diskinfo.8
  projects/ppc64/usr.sbin/diskinfo/diskinfo.c
  projects/ppc64/usr.sbin/dnssec-dsfromkey/Makefile
  projects/ppc64/usr.sbin/dnssec-keyfromlabel/Makefile
  projects/ppc64/usr.sbin/dnssec-keygen/Makefile
  projects/ppc64/usr.sbin/dnssec-signzone/Makefile
  projects/ppc64/usr.sbin/dumpcis/Makefile
  projects/ppc64/usr.sbin/editmap/Makefile
  projects/ppc64/usr.sbin/edquota/Makefile
  projects/ppc64/usr.sbin/eeprom/Makefile
  projects/ppc64/usr.sbin/eeprom/eeprom.c
  projects/ppc64/usr.sbin/extattr/Makefile
  projects/ppc64/usr.sbin/extattrctl/Makefile
  projects/ppc64/usr.sbin/extattrctl/extattrctl.c
  projects/ppc64/usr.sbin/faithd/Makefile
  projects/ppc64/usr.sbin/faithd/faithd.8
  projects/ppc64/usr.sbin/faithd/faithd.c
  projects/ppc64/usr.sbin/fdcontrol/Makefile
  projects/ppc64/usr.sbin/fdformat/Makefile
  projects/ppc64/usr.sbin/fdread/Makefile
  projects/ppc64/usr.sbin/fdwrite/Makefile
  projects/ppc64/usr.sbin/fifolog/Makefile.inc
  projects/ppc64/usr.sbin/fifolog/lib/getdate.y
  projects/ppc64/usr.sbin/ftp-proxy/libevent/Makefile
  projects/ppc64/usr.sbin/getfmac/Makefile
  projects/ppc64/usr.sbin/getpmac/Makefile
  projects/ppc64/usr.sbin/gstat/Makefile
  projects/ppc64/usr.sbin/inetd/Makefile
  projects/ppc64/usr.sbin/inetd/inetd.c
  projects/ppc64/usr.sbin/iostat/Makefile
  projects/ppc64/usr.sbin/ip6addrctl/Makefile
  projects/ppc64/usr.sbin/ipfwpcap/Makefile
  projects/ppc64/usr.sbin/jail/Makefile
  projects/ppc64/usr.sbin/jail/jail.8
  projects/ppc64/usr.sbin/jexec/Makefile
  projects/ppc64/usr.sbin/jls/Makefile
  projects/ppc64/usr.sbin/jls/jls.c
  projects/ppc64/usr.sbin/kbdcontrol/kbdcontrol.c
  projects/ppc64/usr.sbin/kernbb/Makefile
  projects/ppc64/usr.sbin/lastlogin/Makefile
  projects/ppc64/usr.sbin/lastlogin/lastlogin.c
  projects/ppc64/usr.sbin/lmcconfig/Makefile
  projects/ppc64/usr.sbin/lpr/common_source/Makefile
  projects/ppc64/usr.sbin/lpr/common_source/lp.h
  projects/ppc64/usr.sbin/lpr/common_source/rmjob.c
  projects/ppc64/usr.sbin/lpr/filters.ru/Makefile.inc
  projects/ppc64/usr.sbin/lpr/lpc/Makefile
  projects/ppc64/usr.sbin/lpr/lpd/Makefile
  projects/ppc64/usr.sbin/lpr/lpr/Makefile
  projects/ppc64/usr.sbin/lptcontrol/Makefile
  projects/ppc64/usr.sbin/mailstats/Makefile
  projects/ppc64/usr.sbin/mailwrapper/Makefile
  projects/ppc64/usr.sbin/makemap/Makefile
  projects/ppc64/usr.sbin/memcontrol/Makefile
  projects/ppc64/usr.sbin/mergemaster/mergemaster.8
  projects/ppc64/usr.sbin/mergemaster/mergemaster.sh
  projects/ppc64/usr.sbin/mixer/Makefile
  projects/ppc64/usr.sbin/mld6query/Makefile
  projects/ppc64/usr.sbin/mlxcontrol/Makefile
  projects/ppc64/usr.sbin/mount_portalfs/mount_portalfs.c
  projects/ppc64/usr.sbin/mount_smbfs/Makefile
  projects/ppc64/usr.sbin/moused/Makefile
  projects/ppc64/usr.sbin/mptable/Makefile
  projects/ppc64/usr.sbin/mtree/Makefile
  projects/ppc64/usr.sbin/named-checkconf/Makefile
  projects/ppc64/usr.sbin/named-checkzone/Makefile
  projects/ppc64/usr.sbin/named/Makefile
  projects/ppc64/usr.sbin/ndiscvt/ndiscvt.c
  projects/ppc64/usr.sbin/ndp/Makefile
  projects/ppc64/usr.sbin/newsyslog/Makefile
  projects/ppc64/usr.sbin/newsyslog/newsyslog.c
  projects/ppc64/usr.sbin/nfsd/Makefile
  projects/ppc64/usr.sbin/nfsd/nfsd.c
  projects/ppc64/usr.sbin/nghook/Makefile
  projects/ppc64/usr.sbin/nscd/nscd.conf.5
  projects/ppc64/usr.sbin/ntp/Makefile
  projects/ppc64/usr.sbin/ntp/Makefile.inc
  projects/ppc64/usr.sbin/ntp/config.h
  projects/ppc64/usr.sbin/ntp/doc/Makefile
  projects/ppc64/usr.sbin/nvram/Makefile
  projects/ppc64/usr.sbin/ofwdump/Makefile
  projects/ppc64/usr.sbin/pciconf/Makefile
  projects/ppc64/usr.sbin/pkg_install/add/main.c
  projects/ppc64/usr.sbin/pkg_install/create/main.c
  projects/ppc64/usr.sbin/pkg_install/delete/Makefile
  projects/ppc64/usr.sbin/pkg_install/delete/main.c
  projects/ppc64/usr.sbin/pkg_install/info/Makefile
  projects/ppc64/usr.sbin/pkg_install/info/main.c
  projects/ppc64/usr.sbin/pkg_install/updating/Makefile
  projects/ppc64/usr.sbin/pkg_install/version/Makefile
  projects/ppc64/usr.sbin/pkg_install/version/main.c
  projects/ppc64/usr.sbin/pmcannotate/Makefile
  projects/ppc64/usr.sbin/pmcannotate/pmcannotate.c
  projects/ppc64/usr.sbin/pmccontrol/Makefile
  projects/ppc64/usr.sbin/pmcstat/Makefile
  projects/ppc64/usr.sbin/pmcstat/pmcstat_log.c
  projects/ppc64/usr.sbin/pnpinfo/Makefile
  projects/ppc64/usr.sbin/portsnap/make_index/Makefile
  projects/ppc64/usr.sbin/portsnap/phttpget/Makefile
  projects/ppc64/usr.sbin/portsnap/portsnap/portsnap.sh
  projects/ppc64/usr.sbin/powerd/Makefile
  projects/ppc64/usr.sbin/powerd/powerd.8
  projects/ppc64/usr.sbin/powerd/powerd.c
  projects/ppc64/usr.sbin/ppp/Makefile
  projects/ppc64/usr.sbin/ppp/id.c
  projects/ppc64/usr.sbin/ppp/id.h
  projects/ppc64/usr.sbin/ppp/physical.c
  projects/ppc64/usr.sbin/ppp/physical.h
  projects/ppc64/usr.sbin/ppp/ppp.8.m4
  projects/ppc64/usr.sbin/pppctl/Makefile
  projects/ppc64/usr.sbin/praliases/Makefile
  projects/ppc64/usr.sbin/praudit/Makefile
  projects/ppc64/usr.sbin/procctl/Makefile
  projects/ppc64/usr.sbin/pstat/Makefile
  projects/ppc64/usr.sbin/pw/Makefile
  projects/ppc64/usr.sbin/pwd_mkdb/Makefile
  projects/ppc64/usr.sbin/quotaon/Makefile
  projects/ppc64/usr.sbin/quotaon/quotaon.c
  projects/ppc64/usr.sbin/repquota/Makefile
  projects/ppc64/usr.sbin/rip6query/Makefile
  projects/ppc64/usr.sbin/rip6query/rip6query.c
  projects/ppc64/usr.sbin/rmt/Makefile
  projects/ppc64/usr.sbin/rmt/rmt.c
  projects/ppc64/usr.sbin/rndc-confgen/Makefile
  projects/ppc64/usr.sbin/rndc/Makefile
  projects/ppc64/usr.sbin/route6d/Makefile
  projects/ppc64/usr.sbin/rpc.lockd/Makefile
  projects/ppc64/usr.sbin/rpc.statd/Makefile
  projects/ppc64/usr.sbin/rpc.umntall/Makefile
  projects/ppc64/usr.sbin/rpc.umntall/mounttab.c
  projects/ppc64/usr.sbin/rpc.yppasswdd/Makefile
  projects/ppc64/usr.sbin/rpc.ypupdated/Makefile
  projects/ppc64/usr.sbin/rpc.ypxfrd/Makefile
  projects/ppc64/usr.sbin/rpcbind/Makefile
  projects/ppc64/usr.sbin/rrenumd/Makefile
  projects/ppc64/usr.sbin/rtadvd/Makefile
  projects/ppc64/usr.sbin/rtprio/Makefile
  projects/ppc64/usr.sbin/rtsold/Makefile
  projects/ppc64/usr.sbin/rtsold/probe.c
  projects/ppc64/usr.sbin/rwhod/Makefile
  projects/ppc64/usr.sbin/rwhod/rwhod.c
  projects/ppc64/usr.sbin/sa/Makefile
  projects/ppc64/usr.sbin/sa/main.c
  projects/ppc64/usr.sbin/sa/pdb.c
  projects/ppc64/usr.sbin/sa/usrdb.c
  projects/ppc64/usr.sbin/sendmail/Makefile
  projects/ppc64/usr.sbin/setfmac/Makefile
  projects/ppc64/usr.sbin/setpmac/Makefile
  projects/ppc64/usr.sbin/smbmsg/Makefile
  projects/ppc64/usr.sbin/smbmsg/smbmsg.8
  projects/ppc64/usr.sbin/snapinfo/snapinfo.c
  projects/ppc64/usr.sbin/sysinstall/Makefile
  projects/ppc64/usr.sbin/sysinstall/disks.c
  projects/ppc64/usr.sbin/sysinstall/label.c
  projects/ppc64/usr.sbin/syslogd/syslogd.c
  projects/ppc64/usr.sbin/tcpdchk/Makefile
  projects/ppc64/usr.sbin/tcpdmatch/Makefile
  projects/ppc64/usr.sbin/tcpdrop/Makefile
  projects/ppc64/usr.sbin/tcpdump/Makefile.inc
  projects/ppc64/usr.sbin/timed/timed/master.c
  projects/ppc64/usr.sbin/timed/timed/slave.c
  projects/ppc64/usr.sbin/traceroute/Makefile
  projects/ppc64/usr.sbin/traceroute6/Makefile
  projects/ppc64/usr.sbin/tzsetup/Makefile
  projects/ppc64/usr.sbin/uathload/Makefile
  projects/ppc64/usr.sbin/usbconfig/Makefile
  projects/ppc64/usr.sbin/usbconfig/dump.c
  projects/ppc64/usr.sbin/usbconfig/dump.h
  projects/ppc64/usr.sbin/usbconfig/usbconfig.8
  projects/ppc64/usr.sbin/usbconfig/usbconfig.c
  projects/ppc64/usr.sbin/usbdevs/Makefile
  projects/ppc64/usr.sbin/vidcontrol/Makefile
  projects/ppc64/usr.sbin/vipw/Makefile
  projects/ppc64/usr.sbin/wake/Makefile
  projects/ppc64/usr.sbin/wake/wake.8
  projects/ppc64/usr.sbin/wake/wake.c
  projects/ppc64/usr.sbin/watchdogd/Makefile
  projects/ppc64/usr.sbin/watchdogd/watchdogd.c
  projects/ppc64/usr.sbin/wlandebug/Makefile
  projects/ppc64/usr.sbin/wlconfig/Makefile
  projects/ppc64/usr.sbin/yp_mkdb/Makefile
  projects/ppc64/usr.sbin/ypbind/Makefile
  projects/ppc64/usr.sbin/yppoll/Makefile
  projects/ppc64/usr.sbin/yppush/Makefile
  projects/ppc64/usr.sbin/yppush/yppush_main.c
  projects/ppc64/usr.sbin/ypserv/Makefile
  projects/ppc64/usr.sbin/ypserv/yp_main.c
  projects/ppc64/usr.sbin/ypserv/ypinit.sh
  projects/ppc64/usr.sbin/ypserv/ypserv.8
  projects/ppc64/usr.sbin/ypset/Makefile
  projects/ppc64/usr.sbin/zic/Theory
  projects/ppc64/usr.sbin/zic/zdump/Makefile
  projects/ppc64/usr.sbin/zic/zic/Makefile
Directory Properties:
  projects/ppc64/   (props changed)
  projects/ppc64/contrib/expat/   (props changed)
  projects/ppc64/contrib/groff/   (props changed)
  projects/ppc64/contrib/netcat/   (props changed)
  projects/ppc64/contrib/ntp/   (props changed)
  projects/ppc64/contrib/one-true-awk/   (props changed)
  projects/ppc64/etc/rc.d/static_arp   (props changed)
  projects/ppc64/lib/libc/   (props changed)
  projects/ppc64/lib/libc/stdtime/   (props changed)
  projects/ppc64/share/zoneinfo/   (props changed)
  projects/ppc64/sys/   (props changed)
  projects/ppc64/sys/contrib/dev/acpica/   (props changed)
  projects/ppc64/sys/dev/xen/xenpci/   (props changed)
  projects/ppc64/sys/mips/adm5120/adm5120reg.h   (props changed)
  projects/ppc64/sys/mips/adm5120/admpci.c   (props changed)
  projects/ppc64/sys/mips/adm5120/console.c   (props changed)
  projects/ppc64/sys/mips/adm5120/if_admswreg.h   (props changed)
  projects/ppc64/sys/mips/adm5120/if_admswvar.h   (props changed)
  projects/ppc64/sys/mips/adm5120/obiovar.h   (props changed)
  projects/ppc64/sys/mips/adm5120/std.adm5120   (props changed)
  projects/ppc64/sys/mips/adm5120/uart_bus_adm5120.c   (props changed)
  projects/ppc64/sys/mips/adm5120/uart_dev_adm5120.c   (props changed)
  projects/ppc64/sys/mips/adm5120/uart_dev_adm5120.h   (props changed)
  projects/ppc64/sys/mips/conf/.cvsignore   (props changed)
  projects/ppc64/sys/mips/conf/ADM5120   (props changed)
  projects/ppc64/sys/mips/conf/ADM5120.hints   (props changed)
  projects/ppc64/sys/mips/conf/DEFAULTS   (props changed)
  projects/ppc64/sys/mips/conf/IDT   (props changed)
  projects/ppc64/sys/mips/conf/IDT.hints   (props changed)
  projects/ppc64/sys/mips/conf/MALTA.hints   (props changed)
  projects/ppc64/sys/mips/conf/SENTRY5.hints   (props changed)
  projects/ppc64/sys/mips/idt/idtpci.c   (props changed)
  projects/ppc64/sys/mips/idt/idtreg.h   (props changed)
  projects/ppc64/sys/mips/idt/if_kr.c   (props changed)
  projects/ppc64/sys/mips/idt/if_krreg.h   (props changed)
  projects/ppc64/sys/mips/idt/obiovar.h   (props changed)
  projects/ppc64/sys/mips/idt/std.idt   (props changed)
  projects/ppc64/sys/mips/include/_bus_octeon.h   (props changed)
  projects/ppc64/sys/mips/include/_inttypes.h   (props changed)
  projects/ppc64/sys/mips/include/_limits.h   (props changed)
  projects/ppc64/sys/mips/include/_stdint.h   (props changed)
  projects/ppc64/sys/mips/include/archtype.h   (props changed)
  projects/ppc64/sys/mips/include/asmacros.h   (props changed)
  projects/ppc64/sys/mips/include/bootinfo.h   (props changed)
  projects/ppc64/sys/mips/include/bswap.h   (props changed)
  projects/ppc64/sys/mips/include/bus_dma.h   (props changed)
  projects/ppc64/sys/mips/include/cache_r4k.h   (props changed)
  projects/ppc64/sys/mips/include/clock.h   (props changed)
  projects/ppc64/sys/mips/include/clockvar.h   (props changed)
  projects/ppc64/sys/mips/include/cputypes.h   (props changed)
  projects/ppc64/sys/mips/include/defs.h   (props changed)
  projects/ppc64/sys/mips/include/exec.h   (props changed)
  projects/ppc64/sys/mips/include/floatingpoint.h   (props changed)
  projects/ppc64/sys/mips/include/fpu.h   (props changed)
  projects/ppc64/sys/mips/include/frame.h   (props changed)
  projects/ppc64/sys/mips/include/gdb_machdep.h   (props changed)
  projects/ppc64/sys/mips/include/ieee.h   (props changed)
  projects/ppc64/sys/mips/include/ieeefp.h   (props changed)
  projects/ppc64/sys/mips/include/in_cksum.h   (props changed)
  projects/ppc64/sys/mips/include/iodev.h   (props changed)
  projects/ppc64/sys/mips/include/limits.h   (props changed)
  projects/ppc64/sys/mips/include/memdev.h   (props changed)
  projects/ppc64/sys/mips/include/metadata.h   (props changed)
  projects/ppc64/sys/mips/include/minidump.h   (props changed)
  projects/ppc64/sys/mips/include/mips_opcode.h   (props changed)
  projects/ppc64/sys/mips/include/mp_watchdog.h   (props changed)
  projects/ppc64/sys/mips/include/mutex.h   (props changed)
  projects/ppc64/sys/mips/include/pci_cfgreg.h   (props changed)
  projects/ppc64/sys/mips/include/pcpu.h   (props changed)
  projects/ppc64/sys/mips/include/pmc_mdep.h   (props changed)
  projects/ppc64/sys/mips/include/ppireg.h   (props changed)
  projects/ppc64/sys/mips/include/ptrace.h   (props changed)
  projects/ppc64/sys/mips/include/queue.h   (props changed)
  projects/ppc64/sys/mips/include/reg.h   (props changed)
  projects/ppc64/sys/mips/include/reloc.h   (props changed)
  projects/ppc64/sys/mips/include/resource.h   (props changed)
  projects/ppc64/sys/mips/include/rm7000.h   (props changed)
  projects/ppc64/sys/mips/include/runq.h   (props changed)
  projects/ppc64/sys/mips/include/segments.h   (props changed)
  projects/ppc64/sys/mips/include/setjmp.h   (props changed)
  projects/ppc64/sys/mips/include/sf_buf.h   (props changed)
  projects/ppc64/sys/mips/include/sigframe.h   (props changed)
  projects/ppc64/sys/mips/include/signal.h   (props changed)
  projects/ppc64/sys/mips/include/smp.h   (props changed)
  projects/ppc64/sys/mips/include/stdarg.h   (props changed)
  projects/ppc64/sys/mips/include/timerreg.h   (props changed)
  projects/ppc64/sys/mips/include/varargs.h   (props changed)
  projects/ppc64/sys/mips/include/vmparam.h   (props changed)
  projects/ppc64/sys/mips/malta/gt.c   (props changed)
  projects/ppc64/sys/mips/malta/gtreg.h   (props changed)
  projects/ppc64/sys/mips/malta/gtvar.h   (props changed)
  projects/ppc64/sys/mips/malta/obiovar.h   (props changed)
  projects/ppc64/sys/mips/malta/yamon.c   (props changed)
  projects/ppc64/sys/mips/mips/autoconf.c   (props changed)
  projects/ppc64/sys/mips/mips/db_disasm.c   (props changed)
  projects/ppc64/sys/mips/mips/db_interface.c   (props changed)
  projects/ppc64/sys/mips/mips/dump_machdep.c   (props changed)
  projects/ppc64/sys/mips/mips/elf64_machdep.c   (props changed)
  projects/ppc64/sys/mips/mips/mp_machdep.c   (props changed)
  projects/ppc64/sys/mips/mips/stack_machdep.c   (props changed)
  projects/ppc64/sys/mips/mips/uio_machdep.c   (props changed)
  projects/ppc64/sys/mips/sentry5/obiovar.h   (props changed)
  projects/ppc64/sys/mips/sentry5/s5reg.h   (props changed)
  projects/ppc64/tools/regression/usr.bin/lastcomm/regress.t   (props changed)
  projects/ppc64/tools/regression/usr.bin/make/archives/fmt_44bsd/expected.status.1   (props changed)
  projects/ppc64/tools/regression/usr.bin/make/archives/fmt_44bsd/expected.status.2   (props changed)
  projects/ppc64/tools/regression/usr.bin/make/archives/fmt_44bsd/expected.status.3   (props changed)
  projects/ppc64/tools/regression/usr.bin/make/archives/fmt_44bsd/expected.status.4   (props changed)
  projects/ppc64/tools/regression/usr.bin/make/archives/fmt_44bsd/expected.status.5   (props changed)
  projects/ppc64/tools/regression/usr.bin/make/archives/fmt_44bsd/expected.status.6   (props changed)
  projects/ppc64/tools/regression/usr.bin/make/archives/fmt_44bsd/expected.status.7   (props changed)
  projects/ppc64/tools/regression/usr.bin/make/archives/fmt_44bsd/expected.stderr.1   (props changed)
  projects/ppc64/tools/regression/usr.bin/make/archives/fmt_44bsd/expected.stderr.2   (props changed)
  projects/ppc64/tools/regression/usr.bin/make/archives/fmt_44bsd/expected.stderr.3   (props changed)
  projects/ppc64/tools/regression/usr.bin/make/archives/fmt_44bsd/expected.stderr.4   (props changed)
  projects/ppc64/tools/regression/usr.bin/make/archives/fmt_44bsd/expected.stderr.5   (props changed)
  projects/ppc64/tools/regression/usr.bin/make/archives/fmt_44bsd/expected.stderr.6   (props changed)
  projects/ppc64/tools/regression/usr.bin/make/archives/fmt_44bsd/expected.stderr.7   (props changed)
  projects/ppc64/tools/regression/usr.bin/make/archives/fmt_44bsd/expected.stdout.1   (props changed)
  projects/ppc64/tools/regression/usr.bin/make/archives/fmt_44bsd/expected.stdout.2   (props changed)
  projects/ppc64/tools/regression/usr.bin/make/archives/fmt_44bsd/expected.stdout.3   (props changed)
  projects/ppc64/tools/regression/usr.bin/make/archives/fmt_44bsd/expected.stdout.4   (props changed)
  projects/ppc64/tools/regression/usr.bin/make/archives/fmt_44bsd/expected.stdout.5   (props changed)
  projects/ppc64/tools/regression/usr.bin/make/archives/fmt_44bsd/expected.stdout.6   (props changed)
  projects/ppc64/tools/regression/usr.bin/make/archives/fmt_44bsd/expected.stdout.7   (props changed)
  projects/ppc64/tools/regression/usr.bin/make/archives/fmt_44bsd_mod/expected.status.1   (props changed)
  projects/ppc64/tools/regression/usr.bin/make/archives/fmt_44bsd_mod/expected.status.2   (props changed)
  projects/ppc64/tools/regression/usr.bin/make/archives/fmt_44bsd_mod/expected.status.3   (props changed)
  projects/ppc64/tools/regression/usr.bin/make/archives/fmt_44bsd_mod/expected.status.4   (props changed)
  projects/ppc64/tools/regression/usr.bin/make/archives/fmt_44bsd_mod/expected.status.5   (props changed)
  projects/ppc64/tools/regression/usr.bin/make/archives/fmt_44bsd_mod/expected.status.6   (props changed)
  projects/ppc64/tools/regression/usr.bin/make/archives/fmt_44bsd_mod/expected.status.7   (props changed)
  projects/ppc64/tools/regression/usr.bin/make/archives/fmt_44bsd_mod/expected.stderr.1   (props changed)
  projects/ppc64/tools/regression/usr.bin/make/archives/fmt_44bsd_mod/expected.stderr.2   (props changed)
  projects/ppc64/tools/regression/usr.bin/make/archives/fmt_44bsd_mod/expected.stderr.3   (props changed)
  projects/ppc64/tools/regression/usr.bin/make/archives/fmt_44bsd_mod/expected.stderr.4   (props changed)
  projects/ppc64/tools/regression/usr.bin/make/archives/fmt_44bsd_mod/expected.stderr.5   (props changed)
  projects/ppc64/tools/regression/usr.bin/make/archives/fmt_44bsd_mod/expected.stderr.6   (props changed)
  projects/ppc64/tools/regression/usr.bin/make/archives/fmt_44bsd_mod/expected.stderr.7   (props changed)
  projects/ppc64/tools/regression/usr.bin/make/archives/fmt_44bsd_mod/expected.stdout.1   (props changed)
  projects/ppc64/tools/regression/usr.bin/make/archives/fmt_44bsd_mod/expected.stdout.2   (props changed)
  projects/ppc64/tools/regression/usr.bin/make/archives/fmt_44bsd_mod/expected.stdout.3   (props changed)
  projects/ppc64/tools/regression/usr.bin/make/archives/fmt_44bsd_mod/expected.stdout.4   (props changed)
  projects/ppc64/tools/regression/usr.bin/make/archives/fmt_44bsd_mod/expected.stdout.5   (props changed)
  projects/ppc64/tools/regression/usr.bin/make/archives/fmt_44bsd_mod/expected.stdout.6   (props changed)
  projects/ppc64/tools/regression/usr.bin/make/archives/fmt_44bsd_mod/expected.stdout.7   (props changed)
  projects/ppc64/tools/regression/usr.bin/make/archives/fmt_oldbsd/expected.status.1   (props changed)
  projects/ppc64/tools/regression/usr.bin/make/archives/fmt_oldbsd/expected.status.2   (props changed)
  projects/ppc64/tools/regression/usr.bin/make/archives/fmt_oldbsd/expected.status.3   (props changed)
  projects/ppc64/tools/regression/usr.bin/make/archives/fmt_oldbsd/expected.status.4   (props changed)
  projects/ppc64/tools/regression/usr.bin/make/archives/fmt_oldbsd/expected.status.5   (props changed)
  projects/ppc64/tools/regression/usr.bin/make/archives/fmt_oldbsd/expected.status.6   (props changed)
  projects/ppc64/tools/regression/usr.bin/make/archives/fmt_oldbsd/expected.status.7   (props changed)
  projects/ppc64/tools/regression/usr.bin/make/archives/fmt_oldbsd/expected.stderr.1   (props changed)
  projects/ppc64/tools/regression/usr.bin/make/archives/fmt_oldbsd/expected.stderr.2   (props changed)
  projects/ppc64/tools/regression/usr.bin/make/archives/fmt_oldbsd/expected.stderr.3   (props changed)
  projects/ppc64/tools/regression/usr.bin/make/archives/fmt_oldbsd/expected.stderr.4   (props changed)
  projects/ppc64/tools/regression/usr.bin/make/archives/fmt_oldbsd/expected.stderr.5   (props changed)
  projects/ppc64/tools/regression/usr.bin/make/archives/fmt_oldbsd/expected.stderr.6   (props changed)
  projects/ppc64/tools/regression/usr.bin/make/archives/fmt_oldbsd/expected.stderr.7   (props changed)
  projects/ppc64/tools/regression/usr.bin/make/archives/fmt_oldbsd/expected.stdout.1   (props changed)
  projects/ppc64/tools/regression/usr.bin/make/archives/fmt_oldbsd/expected.stdout.2   (props changed)
  projects/ppc64/tools/regression/usr.bin/make/archives/fmt_oldbsd/expected.stdout.3   (props changed)
  projects/ppc64/tools/regression/usr.bin/make/archives/fmt_oldbsd/expected.stdout.4   (props changed)
  projects/ppc64/tools/regression/usr.bin/make/archives/fmt_oldbsd/expected.stdout.5   (props changed)
  projects/ppc64/tools/regression/usr.bin/make/archives/fmt_oldbsd/expected.stdout.6   (props changed)
  projects/ppc64/tools/regression/usr.bin/make/archives/fmt_oldbsd/expected.stdout.7   (props changed)
  projects/ppc64/tools/regression/usr.bin/make/basic/t0/expected.status.1   (props changed)
  projects/ppc64/tools/regression/usr.bin/make/basic/t0/expected.stderr.1   (props changed)
  projects/ppc64/tools/regression/usr.bin/make/basic/t0/expected.stdout.1   (props changed)
  projects/ppc64/tools/regression/usr.bin/make/basic/t1/expected.status.1   (props changed)
  projects/ppc64/tools/regression/usr.bin/make/basic/t1/expected.stderr.1   (props changed)
  projects/ppc64/tools/regression/usr.bin/make/basic/t1/expected.stdout.1   (props changed)
  projects/ppc64/tools/regression/usr.bin/make/basic/t2/expected.status.1   (props changed)
  projects/ppc64/tools/regression/usr.bin/make/basic/t2/expected.stderr.1   (props changed)
  projects/ppc64/tools/regression/usr.bin/make/basic/t2/expected.stdout.1   (props changed)
  projects/ppc64/tools/regression/usr.bin/make/basic/t3/expected.status.1   (props changed)
  projects/ppc64/tools/regression/usr.bin/make/basic/t3/expected.stderr.1   (props changed)
  projects/ppc64/tools/regression/usr.bin/make/basic/t3/expected.stdout.1   (props changed)
  projects/ppc64/tools/regression/usr.bin/make/shell/builtin/expected.status.1   (props changed)
  projects/ppc64/tools/regression/usr.bin/make/shell/builtin/expected.status.2   (props changed)
  projects/ppc64/tools/regression/usr.bin/make/shell/builtin/expected.stderr.1   (props changed)
  projects/ppc64/tools/regression/usr.bin/make/shell/builtin/expected.stderr.2   (props changed)
  projects/ppc64/tools/regression/usr.bin/make/shell/builtin/expected.stdout.1   (props changed)
  projects/ppc64/tools/regression/usr.bin/make/shell/builtin/expected.stdout.2   (props changed)
  projects/ppc64/tools/regression/usr.bin/make/shell/path/expected.status.1   (props changed)
  projects/ppc64/tools/regression/usr.bin/make/shell/path/expected.status.2   (props changed)
  projects/ppc64/tools/regression/usr.bin/make/shell/path/expected.stderr.1   (props changed)
  projects/ppc64/tools/regression/usr.bin/make/shell/path/expected.stderr.2   (props changed)
  projects/ppc64/tools/regression/usr.bin/make/shell/path/expected.stdout.1   (props changed)
  projects/ppc64/tools/regression/usr.bin/make/shell/path/expected.stdout.2   (props changed)
  projects/ppc64/tools/regression/usr.bin/make/shell/path_select/expected.status.1   (props changed)
  projects/ppc64/tools/regression/usr.bin/make/shell/path_select/expected.status.2   (props changed)
  projects/ppc64/tools/regression/usr.bin/make/shell/path_select/expected.stderr.1   (props changed)
  projects/ppc64/tools/regression/usr.bin/make/shell/path_select/expected.stderr.2   (props changed)
  projects/ppc64/tools/regression/usr.bin/make/shell/path_select/expected.stdout.1   (props changed)
  projects/ppc64/tools/regression/usr.bin/make/shell/path_select/expected.stdout.2   (props changed)
  projects/ppc64/tools/regression/usr.bin/make/shell/replace/expected.status.1   (props changed)
  projects/ppc64/tools/regression/usr.bin/make/shell/replace/expected.status.2   (props changed)
  projects/ppc64/tools/regression/usr.bin/make/shell/replace/expected.stderr.1   (props changed)
  projects/ppc64/tools/regression/usr.bin/make/shell/replace/expected.stderr.2   (props changed)
  projects/ppc64/tools/regression/usr.bin/make/shell/replace/expected.stdout.1   (props changed)
  projects/ppc64/tools/regression/usr.bin/make/shell/replace/expected.stdout.2   (props changed)
  projects/ppc64/tools/regression/usr.bin/make/shell/select/expected.status.1   (props changed)
  projects/ppc64/tools/regression/usr.bin/make/shell/select/expected.status.2   (props changed)
  projects/ppc64/tools/regression/usr.bin/make/shell/select/expected.stderr.1   (props changed)
  projects/ppc64/tools/regression/usr.bin/make/shell/select/expected.stderr.2   (props changed)
  projects/ppc64/tools/regression/usr.bin/make/shell/select/expected.stdout.1   (props changed)
  projects/ppc64/tools/regression/usr.bin/make/shell/select/expected.stdout.2   (props changed)
  projects/ppc64/tools/regression/usr.bin/make/suffixes/basic/expected.status.1   (props changed)
  projects/ppc64/tools/regression/usr.bin/make/suffixes/basic/expected.stderr.1   (props changed)
  projects/ppc64/tools/regression/usr.bin/make/suffixes/basic/expected.stdout.1   (props changed)
  projects/ppc64/tools/regression/usr.bin/make/suffixes/src_wild1/expected.status.1   (props changed)
  projects/ppc64/tools/regression/usr.bin/make/suffixes/src_wild1/expected.stderr.1   (props changed)
  projects/ppc64/tools/regression/usr.bin/make/suffixes/src_wild1/expected.stdout.1   (props changed)
  projects/ppc64/tools/regression/usr.bin/make/suffixes/src_wild2/expected.status.1   (props changed)
  projects/ppc64/tools/regression/usr.bin/make/suffixes/src_wild2/expected.stderr.1   (props changed)
  projects/ppc64/tools/regression/usr.bin/make/suffixes/src_wild2/expected.stdout.1   (props changed)
  projects/ppc64/tools/regression/usr.bin/make/syntax/enl/expected.status.1   (props changed)
  projects/ppc64/tools/regression/usr.bin/make/syntax/enl/expected.status.2   (props changed)
  projects/ppc64/tools/regression/usr.bin/make/syntax/enl/expected.stderr.1   (props changed)
  projects/ppc64/tools/regression/usr.bin/make/syntax/enl/expected.stderr.2   (props changed)
  projects/ppc64/tools/regression/usr.bin/make/syntax/enl/expected.stdout.1   (props changed)
  projects/ppc64/tools/regression/usr.bin/make/syntax/enl/expected.stdout.2   (props changed)
  projects/ppc64/tools/regression/usr.bin/make/syntax/semi/expected.status.1   (props changed)
  projects/ppc64/tools/regression/usr.bin/make/syntax/semi/expected.status.2   (props changed)
  projects/ppc64/tools/regression/usr.bin/make/syntax/semi/expected.stderr.1   (props changed)
  projects/ppc64/tools/regression/usr.bin/make/syntax/semi/expected.stderr.2   (props changed)
  projects/ppc64/tools/regression/usr.bin/make/syntax/semi/expected.stdout.1   (props changed)
  projects/ppc64/tools/regression/usr.bin/make/syntax/semi/expected.stdout.2   (props changed)
  projects/ppc64/tools/regression/usr.bin/make/variables/modifier_M/expected.status.1   (props changed)
  projects/ppc64/tools/regression/usr.bin/make/variables/modifier_M/expected.stderr.1   (props changed)
  projects/ppc64/tools/regression/usr.bin/make/variables/modifier_M/expected.stdout.1   (props changed)
  projects/ppc64/tools/regression/usr.bin/make/variables/t0/expected.status.1   (props changed)
  projects/ppc64/tools/regression/usr.bin/make/variables/t0/expected.stderr.1   (props changed)
  projects/ppc64/tools/regression/usr.bin/make/variables/t0/expected.stdout.1   (props changed)
  projects/ppc64/tools/regression/usr.sbin/sa/regress.t   (props changed)
  projects/ppc64/usr.sbin/zic/   (props changed)

Modified: projects/ppc64/COPYRIGHT
==============================================================================
--- projects/ppc64/COPYRIGHT	Tue Jan 19 20:36:15 2010	(r202650)
+++ projects/ppc64/COPYRIGHT	Tue Jan 19 20:44:37 2010	(r202651)
@@ -4,7 +4,7 @@
 The compilation of software known as FreeBSD is distributed under the
 following terms:
 
-Copyright (c) 1992-2009 The FreeBSD Project. All rights reserved.
+Copyright (c) 1992-2010 The FreeBSD Project. All rights reserved.
 
 Redistribution and use in source and binary forms, with or without
 modification, are permitted provided that the following conditions

Modified: projects/ppc64/MAINTAINERS
==============================================================================
--- projects/ppc64/MAINTAINERS	Tue Jan 19 20:36:15 2010	(r202650)
+++ projects/ppc64/MAINTAINERS	Tue Jan 19 20:44:37 2010	(r202651)
@@ -48,7 +48,6 @@ iostat(8)	ken	Pre-commit review requeste
 cd(4)		ken	Pre-commit review requested.
 pass(4)		ken	Pre-commit review requested.
 ch(4)		ken	Pre-commit review requested.
-isp(4)		mjacob	Pre-commit review requested.
 em(4)		jfv	Pre-commit review requested.
 tdfx(4)		cokane  Just keep me informed of changes, try not to break it.
 sendmail	gshapiro	Pre-commit review requested.

Modified: projects/ppc64/Makefile
==============================================================================
--- projects/ppc64/Makefile	Tue Jan 19 20:36:15 2010	(r202650)
+++ projects/ppc64/Makefile	Tue Jan 19 20:44:37 2010	(r202651)
@@ -278,7 +278,7 @@ tinderbox:
 # with a reasonable chance of success, regardless of how old your
 # existing system is.
 #
-.if make(universe) || make(tinderbox)
+.if make(universe) || make(universe_kernels) || make(tinderbox)
 TARGETS?=amd64 arm i386 ia64 mips pc98 powerpc sparc64 sun4v
 
 .if defined(DOING_TINDERBOX)
@@ -297,10 +297,6 @@ universe_prologue:
 	rm -f ${FAILFILE}
 .endif
 .for target in ${TARGETS}
-KERNCONFS!=	cd ${.CURDIR}/sys/${target}/conf && \
-		find [A-Z0-9]*[A-Z0-9] -type f -maxdepth 0 \
-		! -name DEFAULTS ! -name LINT
-KERNCONFS:=	${KERNCONFS:S/^NOTES$/LINT/}
 universe: universe_${target}
 .ORDER: universe_prologue universe_${target} universe_epilogue
 universe_${target}:
@@ -320,16 +316,26 @@ universe_${target}:
 	    (echo "${target} 'make LINT' failed," \
 	    "check _.${target}.makeLINT for details"| ${MAKEFAIL}))
 .endif
+	@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} TARGET=${target} \
+	    universe_kernels
+	@echo ">> ${target} completed on `LC_ALL=C date`"
+.endfor
+universe_kernels: universe_kernconfs
+.if !defined(TARGET)
+TARGET!=	uname -m
+.endif
+KERNCONFS!=	cd ${.CURDIR}/sys/${TARGET}/conf && \
+		find [A-Z0-9]*[A-Z0-9] -type f -maxdepth 0 \
+		! -name DEFAULTS ! -name NOTES
+universe_kernconfs:
 .for kernel in ${KERNCONFS}
 	@(cd ${.CURDIR} && env __MAKE_CONF=/dev/null \
 	    ${MAKE} ${JFLAG} buildkernel \
-	    TARGET=${target} \
+	    TARGET=${TARGET} \
 	    KERNCONF=${kernel} \
-	    > _.${target}.${kernel} 2>&1 || \
-	    (echo "${target} ${kernel} kernel failed," \
-	    "check _.${target}.${kernel} for details"| ${MAKEFAIL}))
-.endfor
-	@echo ">> ${target} completed on `LC_ALL=C date`"
+	    > _.${TARGET}.${kernel} 2>&1 || \
+	    (echo "${TARGET} ${kernel} kernel failed," \
+	    "check _.${TARGET}.${kernel} for details"| ${MAKEFAIL}))
 .endfor
 universe: universe_epilogue
 universe_epilogue:

Modified: projects/ppc64/Makefile.inc1
==============================================================================
--- projects/ppc64/Makefile.inc1	Tue Jan 19 20:36:15 2010	(r202650)
+++ projects/ppc64/Makefile.inc1	Tue Jan 19 20:44:37 2010	(r202651)
@@ -5,10 +5,11 @@
 #	-DNO_CLEANDIR run ${MAKE} clean, instead of ${MAKE} cleandir
 #	-DNO_CLEAN do not clean at all
 #	-DNO_SHARE do not go into share subdir
-#	-DKERNFAST define NO_KERNELCONFIG, NO_KERNELCLEAN and NO_KERNELDEPEND
+#	-DKERNFAST define NO_KERNEL{CONFIG,CLEAN,DEPEND,OBJ}
 #	-DNO_KERNELCONFIG do not run config in ${MAKE} buildkernel
 #	-DNO_KERNELCLEAN do not run ${MAKE} clean in ${MAKE} buildkernel
 #	-DNO_KERNELDEPEND do not run ${MAKE} depend in ${MAKE} buildkernel
+#	-DNO_KERNELOBJ do not run ${MAKE} obj in ${MAKE} buildkernel
 #	-DNO_PORTSUPDATE do not update ports in ${MAKE} update
 #	-DNO_DOCUPDATE do not update doc in ${MAKE} update
 #	-DNO_CTF do not run the DTrace CTF conversion tools on built objects
@@ -694,6 +695,7 @@ distrib-dirs distribution:
 NO_KERNELCLEAN=	t
 NO_KERNELCONFIG=	t
 NO_KERNELDEPEND=	t
+NO_KERNELOBJ=		t
 # Shortcut for KERNCONF=Blah -DKERNFAST is now KERNFAST=Blah
 .if !defined(KERNCONF) && ${KERNFAST} != "1"
 KERNCONF=${KERNFAST}
@@ -763,11 +765,13 @@ buildkernel:
 	@echo "--------------------------------------------------------------"
 	cd ${KRNLOBJDIR}/${_kernel}; ${KMAKE} ${CLEANDIR}
 .endif
+.if !defined(NO_KERNELOBJ)
 	@echo
 	@echo "--------------------------------------------------------------"
 	@echo ">>> stage 2.2: rebuilding the object tree"
 	@echo "--------------------------------------------------------------"
 	cd ${KRNLOBJDIR}/${_kernel}; ${KMAKE} obj
+.endif
 	@echo
 	@echo "--------------------------------------------------------------"
 	@echo ">>> stage 2.3: build tools"
@@ -936,6 +940,11 @@ _mklocale=	usr.bin/mklocale
 _sed=		usr.bin/sed
 .endif
 
+.if ${BOOTSTRAPPING} < 900006
+_lex=		usr.bin/lex
+_yacc=		usr.bin/yacc
+.endif
+
 .if ${BOOTSTRAPPING} < 700018
 _gensnmptree=	usr.sbin/bsnmpd/gensnmptree
 .endif
@@ -962,6 +971,8 @@ bootstrap-tools:
     ${_mklocale} \
     usr.bin/rpcgen \
     ${_sed} \
+    ${_lex} \
+    ${_yacc} \
     usr.bin/xinstall \
     ${_gensnmptree} \
     usr.sbin/config \
@@ -1103,8 +1114,8 @@ _prebuild_libs=	${_kerberos5_lib_libasn1
 		lib/libkiconv lib/libkvm lib/libmd \
 		lib/ncurses/ncurses lib/ncurses/ncursesw \
 		lib/libopie lib/libpam ${_lib_libthr} \
-		lib/libradius lib/libsbuf lib/libtacplus lib/libutil \
-		${_lib_libypclnt} lib/libz lib/msun \
+		lib/libradius lib/libsbuf lib/libtacplus lib/libulog \
+		lib/libutil ${_lib_libypclnt} lib/libz lib/msun \
 		${_secure_lib_libcrypto} ${_secure_lib_libssh} \
 		${_secure_lib_libssl} lib/libdwarf lib/libproc
 
@@ -1255,7 +1266,7 @@ delete-old-files:
 		fi; \
 	done
 # Remove catpages without corresponding manpages.
-	@3<&0; \
+	@exec 3<&0; \
 	find ${DESTDIR}/usr/share/man/cat* ! -type d | \
 	sed -ep -e's:${DESTDIR}/usr/share/man/cat:${DESTDIR}/usr/share/man/man:' | \
 	while read catpage; do \

Modified: projects/ppc64/ObsoleteFiles.inc
==============================================================================
--- projects/ppc64/ObsoleteFiles.inc	Tue Jan 19 20:36:15 2010	(r202650)
+++ projects/ppc64/ObsoleteFiles.inc	Tue Jan 19 20:44:37 2010	(r202651)
@@ -14,6 +14,51 @@
 # The file is partitioned: OLD_FILES first, then OLD_LIBS and OLD_DIRS last.
 #
 
+# 20100114: removal of ttyslot(3)
+OLD_FILES+=usr/share/man/man3/ttyslot.3.gz
+# 20100113: remove utmp.h, replace it by utmpx.h
+OLD_FILES+=usr/share/man/man3/login.3.gz
+OLD_FILES+=usr/share/man/man3/logout.3.gz
+OLD_FILES+=usr/share/man/man3/logwtmp.3.gz
+OLD_FILES+=usr/share/man/man3/ulog_endutxent.3.gz
+OLD_FILES+=usr/share/man/man3/ulog_getutxent.3.gz
+OLD_FILES+=usr/share/man/man3/ulog_getutxline.3.gz
+OLD_FILES+=usr/share/man/man3/ulog_getutxuser.3.gz
+OLD_FILES+=usr/share/man/man3/ulog_pututxline.3.gz
+OLD_FILES+=usr/share/man/man3/ulog_setutxent.3.gz
+OLD_FILES+=usr/share/man/man3/ulog_setutxfile.3.gz
+OLD_FILES+=usr/share/man/man5/lastlog.5.gz
+OLD_FILES+=usr/share/man/man5/utmp.5.gz
+OLD_FILES+=usr/share/man/man5/wtmp.5.gz
+OLD_LIBS+=lib/libutil.so.8
+# 20100105: new userland semaphore implementation
+OLD_FILES+=usr/include/sys/semaphore.h
+# 20100103: ntptrace(8) removed
+OLD_FILES+=usr/sbin/ntptrace
+OLD_FILES+=usr/share/man/man8/ntptrace.8.gz
+# 20091229: remove no longer relevant examples
+OLD_FILES+=usr/share/examples/pppd/auth-down.sample
+OLD_FILES+=usr/share/examples/pppd/auth-up.sample
+OLD_FILES+=usr/share/examples/pppd/chap-secrets.sample
+OLD_FILES+=usr/share/examples/pppd/chat.sh.sample
+OLD_FILES+=usr/share/examples/pppd/ip-down.sample
+OLD_FILES+=usr/share/examples/pppd/ip-up.sample
+OLD_FILES+=usr/share/examples/pppd/options.sample
+OLD_FILES+=usr/share/examples/pppd/pap-secrets.sample
+OLD_FILES+=usr/share/examples/pppd/ppp.deny.sample
+OLD_FILES+=usr/share/examples/pppd/ppp.shells.sample
+OLD_DIRS+=usr/share/examples/pppd
+OLD_FILES+=usr/share/examples/slattach/unit-command.sh
+OLD_DIRS+=usr/share/examples/slattach
+OLD_FILES+=usr/share/examples/sliplogin/slip.hosts
+OLD_FILES+=usr/share/examples/sliplogin/slip.login
+OLD_FILES+=usr/share/examples/sliplogin/slip.logout
+OLD_FILES+=usr/share/examples/sliplogin/slip.slparms
+OLD_DIRS+=usr/share/examples/sliplogin
+OLD_FILES+=usr/share/examples/startslip/sldown.sh
+OLD_FILES+=usr/share/examples/startslip/slip.sh
+OLD_FILES+=usr/share/examples/startslip/slup.sh
+OLD_DIRS+=usr/share/examples/startslip
 # 20091202: unify rc.firewall and rc.firewall6.
 OLD_FILES+=etc/rc.d/ip6fw
 OLD_FILES+=etc/rc.firewall6

Modified: projects/ppc64/UPDATING
==============================================================================
--- projects/ppc64/UPDATING	Tue Jan 19 20:36:15 2010	(r202650)
+++ projects/ppc64/UPDATING	Tue Jan 19 20:44:37 2010	(r202651)
@@ -22,6 +22,43 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 9.
 	machines to maximize performance.  (To disable malloc debugging, run
 	ln -s aj /etc/malloc.conf.)
 
+20100113:
+	The utmp user accounting database has been replaced with utmpx,
+	the user accounting interface standardized by POSIX.
+	Unfortunately the semantics of utmp and utmpx don't match,
+	making it practically impossible to support both interfaces.
+	The user accounting database is used by tools like finger(1),
+	last(1), talk(1), w(1) and ac(8).
+
+	All applications in the base system use utmpx.  This means only
+	local binaries (e.g. from the ports tree) may still use these
+	utmp database files.  These applications must be rebuilt to make
+	use of utmpx.
+
+	After the system has been upgraded, it is safe to remove the old
+	log files (/var/run/utmp, /var/log/lastlog and /var/log/wtmp*),
+	assuming their contents is of no importance anymore.  Old wtmp
+	databases can only be used by last(1) and ac(8) after they have
+	been converted to the new format using wtmpcvt(1).
+
+20100108:
+	Introduce the kernel thread "deadlock resolver" (which can be enabled
+	via the DEADLKRES option, see NOTES for more details) and the
+	sleepq_type() function for sleepqueues.
+
+20091202:
+	The rc.firewall and rc.firewall6 were unified, and
+	rc.firewall6 and rc.d/ip6fw were removed.
+	According to the removal of rc.d/ip6fw, ipv6_firewall_* rc
+	variables are obsoleted.  Instead, the following new rc
+	variables are added to rc.d/ipfw:
+
+		firewall_client_net_ipv6, firewall_simple_iif_ipv6,
+		firewall_simple_inet_ipv6, firewall_simple_oif_ipv6,
+		firewall_simple_onet_ipv6, firewall_trusted_ipv6
+
+	The meanings correspond to the relevant IPv4 variables.
+
 20091113:
 	The default terminal emulation for syscons(4) has been changed
 	from cons25 to xterm on all platforms except pc98.  This means
@@ -148,7 +185,7 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 9.
 20090712: 
 	Padding has been added to struct tcpcb, sackhint and tcpstat in
 	<netinet/tcp_var.h> to facilitate future MFCs and bug fixes whilst
-	maintainig the ABI. However, this change breaks the ABI, so bump
+	maintaining the ABI. However, this change breaks the ABI, so bump
 	__FreeBSD_version to 800102. User space tools that rely on the size of
 	any of these structs (e.g. sockstat) need to be recompiled.
 
@@ -882,7 +919,7 @@ COMMON ITEMS:
 	-------------
 	Avoid using make -j when upgrading.  While generally safe, there are
 	sometimes problems using -j to upgrade.  If your upgrade fails with
-	-j, please try again wtihout -j.  From time to time in the past there
+	-j, please try again without -j.  From time to time in the past there
 	have been problems using -j with buildworld and/or installworld.  This
 	is especially true when upgrading between "distant" versions (eg one
 	that cross a major release boundary or several minor releases, or when

Modified: projects/ppc64/bin/cp/cp.1
==============================================================================
--- projects/ppc64/bin/cp/cp.1	Tue Jan 19 20:36:15 2010	(r202650)
+++ projects/ppc64/bin/cp/cp.1	Tue Jan 19 20:44:37 2010	(r202651)
@@ -32,7 +32,7 @@
 .\"	@(#)cp.1	8.3 (Berkeley) 4/18/94
 .\" $FreeBSD$
 .\"
-.Dd October 27, 2006
+.Dd January 17, 2010
 .Dt CP 1
 .Os
 .Sh NAME
@@ -45,7 +45,7 @@
 .Op Fl H | Fl L | Fl P
 .Oc
 .Op Fl f | i | n
-.Op Fl alpv
+.Op Fl alpvx
 .Ar source_file target_file
 .Nm
 .Oo
@@ -53,7 +53,7 @@
 .Op Fl H | Fl L | Fl P
 .Oc
 .Op Fl f | i | n
-.Op Fl alpv
+.Op Fl alpvx
 .Ar source_file ... target_directory
 .Sh DESCRIPTION
 In the first synopsis form, the
@@ -183,6 +183,8 @@ permissions.
 Cause
 .Nm
 to be verbose, showing files as they are copied.
+.It Fl x
+File system mount points are not traversed.
 .El
 .Pp
 For each destination file that already exists, its contents are

Modified: projects/ppc64/bin/cp/cp.c
==============================================================================
--- projects/ppc64/bin/cp/cp.c	Tue Jan 19 20:36:15 2010	(r202650)
+++ projects/ppc64/bin/cp/cp.c	Tue Jan 19 20:44:37 2010	(r202651)
@@ -101,8 +101,9 @@ main(int argc, char *argv[])
 	int Hflag, Lflag, Pflag, ch, fts_options, r, have_trailing_slash;
 	char *target;
 
+	fts_options = FTS_NOCHDIR | FTS_PHYSICAL;
 	Hflag = Lflag = Pflag = 0;
-	while ((ch = getopt(argc, argv, "HLPRafilnprv")) != -1)
+	while ((ch = getopt(argc, argv, "HLPRafilnprvx")) != -1)
 		switch (ch) {
 		case 'H':
 			Hflag = 1;
@@ -150,6 +151,9 @@ main(int argc, char *argv[])
 		case 'v':
 			vflag = 1;
 			break;
+		case 'x':
+			fts_options |= FTS_XDEV;
+			break;
 		default:
 			usage();
 			break;
@@ -160,7 +164,6 @@ main(int argc, char *argv[])
 	if (argc < 2)
 		usage();
 
-	fts_options = FTS_NOCHDIR | FTS_PHYSICAL;
 	if (Rflag && rflag)
 		errx(1, "the -R and -r options may not be specified together");
 	if (rflag)

Modified: projects/ppc64/bin/cp/utils.c
==============================================================================
--- projects/ppc64/bin/cp/utils.c	Tue Jan 19 20:36:15 2010	(r202650)
+++ projects/ppc64/bin/cp/utils.c	Tue Jan 19 20:44:37 2010	(r202651)
@@ -518,8 +518,8 @@ usage(void)
 {
 
 	(void)fprintf(stderr, "%s\n%s\n",
-"usage: cp [-R [-H | -L | -P]] [-f | -i | -n] [-alpv] source_file target_file",
-"       cp [-R [-H | -L | -P]] [-f | -i | -n] [-alpv] source_file ... "
+"usage: cp [-R [-H | -L | -P]] [-f | -i | -n] [-alpvx] source_file target_file",
+"       cp [-R [-H | -L | -P]] [-f | -i | -n] [-alpvx] source_file ... "
 "target_directory");
 	exit(EX_USAGE);
 }

Modified: projects/ppc64/bin/csh/config.h
==============================================================================
--- projects/ppc64/bin/csh/config.h	Tue Jan 19 20:36:15 2010	(r202650)
+++ projects/ppc64/bin/csh/config.h	Tue Jan 19 20:44:37 2010	(r202651)
@@ -54,7 +54,7 @@
 #define HAVE_GETPWENT 1
 
 /* Define to 1 if you have the `getutent' function. */
-/* #undef HAVE_GETUTENT */
+#define HAVE_GETUTENT 1
 
 /* Define if you have the iconv() function. */
 /* #undef HAVE_ICONV */
@@ -130,10 +130,10 @@
 #define HAVE_STRUCT_UTMP_UT_HOST 1
 
 /* Define to 1 if `ut_tv' is member of `struct utmp'. */
-/* #undef HAVE_STRUCT_UTMP_UT_TV */
+#define HAVE_STRUCT_UTMP_UT_TV 1
 
 /* Define to 1 if `ut_user' is member of `struct utmp'. */
-/* #undef HAVE_STRUCT_UTMP_UT_USER */
+#define HAVE_STRUCT_UTMP_UT_USER 1
 
 /* Define to 1 if `ut_xtime' is member of `struct utmp'. */
 /* #undef HAVE_STRUCT_UTMP_UT_XTIME */
@@ -159,10 +159,10 @@
 #define HAVE_UNISTD_H 1
 
 /* Define to 1 if you have the <utmpx.h> header file. */
-/* #undef HAVE_UTMPX_H */
+#define HAVE_UTMPX_H 1
 
 /* Define to 1 if you have the <utmp.h> header file. */
-#define HAVE_UTMP_H 1
+/* #undef HAVE_UTMP_H */
 
 /* Define to 1 if you have the <wchar.h> header file. */
 #define HAVE_WCHAR_H 1

Modified: projects/ppc64/bin/csh/config_p.h
==============================================================================
--- projects/ppc64/bin/csh/config_p.h	Tue Jan 19 20:36:15 2010	(r202650)
+++ projects/ppc64/bin/csh/config_p.h	Tue Jan 19 20:44:37 2010	(r202651)
@@ -85,6 +85,7 @@
 /* Use LC_MESSAGES locale category to open the message catalog */
 #define MCLoadBySet NL_CAT_LOCALE
 #define BUFSIZE 8192
+#define UTMPX_FILE "/var/run/utx.active"
 #endif
 
 #if defined(__bsdi__)

Modified: projects/ppc64/bin/date/Makefile
==============================================================================
--- projects/ppc64/bin/date/Makefile	Tue Jan 19 20:36:15 2010	(r202650)
+++ projects/ppc64/bin/date/Makefile	Tue Jan 19 20:44:37 2010	(r202651)
@@ -3,7 +3,5 @@
 
 PROG=	date
 SRCS=	date.c netdate.c vary.c
-DPADD=	${LIBULOG}
-LDADD=	-lulog
 
 .include <bsd.prog.mk>

Modified: projects/ppc64/bin/date/date.c
==============================================================================
--- projects/ppc64/bin/date/date.c	Tue Jan 19 20:36:15 2010	(r202650)
+++ projects/ppc64/bin/date/date.c	Tue Jan 19 20:44:37 2010	(r202651)
@@ -52,9 +52,8 @@ __FBSDID("$FreeBSD$");
 #include <stdlib.h>
 #include <string.h>
 #include <syslog.h>
-#define	_ULOG_POSIX_NAMES
-#include <ulog.h>
 #include <unistd.h>
+#include <utmpx.h>
 
 #include "extern.h"
 #include "vary.h"

Modified: projects/ppc64/bin/kenv/kenv.c
==============================================================================
--- projects/ppc64/bin/kenv/kenv.c	Tue Jan 19 20:36:15 2010	(r202650)
+++ projects/ppc64/bin/kenv/kenv.c	Tue Jan 19 20:44:37 2010	(r202651)
@@ -118,7 +118,7 @@ main(int argc, char **argv)
 }
 
 static int
-kdumpenv()
+kdumpenv(void)
 {
 	char *buf, *cp;
 	int buflen, envlen;

Modified: projects/ppc64/bin/pax/ftree.c
==============================================================================
--- projects/ppc64/bin/pax/ftree.c	Tue Jan 19 20:36:15 2010	(r202650)
+++ projects/ppc64/bin/pax/ftree.c	Tue Jan 19 20:44:37 2010	(r202651)
@@ -219,7 +219,7 @@ ftree_sel(ARCHD *arcn)
  */
 
 void
-ftree_notsel()
+ftree_notsel(void)
 {
 	if (ftent != NULL)
 		(void)fts_set(ftsp, ftent, FTS_SKIP);

Modified: projects/ppc64/bin/pax/gen_subs.c
==============================================================================
--- projects/ppc64/bin/pax/gen_subs.c	Tue Jan 19 20:36:15 2010	(r202650)
+++ projects/ppc64/bin/pax/gen_subs.c	Tue Jan 19 20:44:37 2010	(r202651)
@@ -45,7 +45,6 @@ __FBSDID("$FreeBSD$");
 #include <langinfo.h>
 #include <stdint.h>
 #include <stdio.h>
-#include <utmp.h>
 #include <unistd.h>
 #include <stdlib.h>
 #include <string.h>
@@ -66,10 +65,6 @@ __FBSDID("$FreeBSD$");
 #define OLDFRMTM	"%b %e  %Y"
 #define CURFRMTD	"%e %b %H:%M"
 #define OLDFRMTD	"%e %b  %Y"
-#ifndef UT_NAMESIZE
-#define UT_NAMESIZE	8
-#endif
-#define UT_GRPSIZE	6
 
 static int d_first = -1;
 
@@ -116,9 +111,8 @@ ls_list(ARCHD *arcn, time_t now, FILE *f
 	 */
 	if (strftime(f_date,DATELEN,timefrmt,localtime(&(sbp->st_mtime))) == 0)
 		f_date[0] = '\0';
-	(void)fprintf(fp, "%s%2u %-*s %-*s ", f_mode, sbp->st_nlink,
-		UT_NAMESIZE, name_uid(sbp->st_uid, 1), UT_GRPSIZE,
-		name_gid(sbp->st_gid, 1));
+	(void)fprintf(fp, "%s%2u %-12s %-12s ", f_mode, sbp->st_nlink,
+		name_uid(sbp->st_uid, 1), name_gid(sbp->st_gid, 1));
 
 	/*
 	 * print device id's for devices, or sizes for other nodes

Modified: projects/ppc64/bin/pax/sel_subs.c
==============================================================================
--- projects/ppc64/bin/pax/sel_subs.c	Tue Jan 19 20:36:15 2010	(r202650)
+++ projects/ppc64/bin/pax/sel_subs.c	Tue Jan 19 20:44:37 2010	(r202651)
@@ -396,6 +396,7 @@ trng_add(char *str)
 			default:
 				paxwarn(1, "Bad option %c with time range %s",
 				    *flgpt, str);
+				free(pt);
 				goto out;
 			}
 			++flgpt;

Modified: projects/ppc64/bin/pkill/Makefile
==============================================================================
--- projects/ppc64/bin/pkill/Makefile	Tue Jan 19 20:36:15 2010	(r202650)
+++ projects/ppc64/bin/pkill/Makefile	Tue Jan 19 20:44:37 2010	(r202651)
@@ -2,7 +2,6 @@
 # $FreeBSD$
 
 PROG=	pkill
-WARNS?=	5
 
 DPADD=	${LIBKVM}
 LDADD=	-lkvm

Modified: projects/ppc64/bin/pkill/pkill.c
==============================================================================
--- projects/ppc64/bin/pkill/pkill.c	Tue Jan 19 20:36:15 2010	(r202650)
+++ projects/ppc64/bin/pkill/pkill.c	Tue Jan 19 20:44:37 2010	(r202651)
@@ -113,14 +113,14 @@ static int	cflags = REG_EXTENDED;
 static kvm_t	*kd;
 static pid_t	mypid;
 
-static struct listhead euidlist = SLIST_HEAD_INITIALIZER(list);
-static struct listhead ruidlist = SLIST_HEAD_INITIALIZER(list);
-static struct listhead rgidlist = SLIST_HEAD_INITIALIZER(list);
-static struct listhead pgrplist = SLIST_HEAD_INITIALIZER(list);
-static struct listhead ppidlist = SLIST_HEAD_INITIALIZER(list);
-static struct listhead tdevlist = SLIST_HEAD_INITIALIZER(list);
-static struct listhead sidlist = SLIST_HEAD_INITIALIZER(list);
-static struct listhead jidlist = SLIST_HEAD_INITIALIZER(list);
+static struct listhead euidlist = SLIST_HEAD_INITIALIZER(euidlist);
+static struct listhead ruidlist = SLIST_HEAD_INITIALIZER(ruidlist);
+static struct listhead rgidlist = SLIST_HEAD_INITIALIZER(rgidlist);
+static struct listhead pgrplist = SLIST_HEAD_INITIALIZER(pgrplist);
+static struct listhead ppidlist = SLIST_HEAD_INITIALIZER(ppidlist);
+static struct listhead tdevlist = SLIST_HEAD_INITIALIZER(tdevlist);
+static struct listhead sidlist = SLIST_HEAD_INITIALIZER(sidlist);
+static struct listhead jidlist = SLIST_HEAD_INITIALIZER(jidlist);
 
 static void	usage(void) __attribute__((__noreturn__));
 static int	killact(const struct kinfo_proc *);
@@ -671,8 +671,19 @@ makelist(struct listhead *head, enum lis
 					li->li_number = -1;	/* any jail */
 				break;
 			case LT_TTY:
-				usage();
-				/* NOTREACHED */
+				if (li->li_number < 0)
+					errx(STATUS_BADUSAGE,
+					     "Negative /dev/pts tty `%s'", sp);
+				snprintf(buf, sizeof(buf), _PATH_DEV "pts/%s",
+				    sp);
+				if (stat(buf, &st) != -1)
+					goto foundtty;
+				if (errno == ENOENT)
+					errx(STATUS_BADUSAGE, "No such tty: `"
+					    _PATH_DEV "pts/%s'", sp);
+				err(STATUS_ERROR, "Cannot access `"
+				    _PATH_DEV "pts/%s'", sp);
+				break;
 			default:
 				break;
 			}

Modified: projects/ppc64/bin/setfacl/merge.c
==============================================================================
--- projects/ppc64/bin/setfacl/merge.c	Tue Jan 19 20:36:15 2010	(r202650)
+++ projects/ppc64/bin/setfacl/merge.c	Tue Jan 19 20:44:37 2010	(r202651)
@@ -100,11 +100,10 @@ merge_acl(acl_t acl, acl_t *prev_acl, co
 	acl_get_brand_np(acl, &acl_brand);
 	acl_get_brand_np(*prev_acl, &prev_acl_brand);
 
-	if (acl_brand != prev_acl_brand) {
+	if (branding_mismatch(acl_brand, prev_acl_brand)) {
 		warnx("%s: branding mismatch; existing ACL is %s, "
 		    "entry to be merged is %s", filename,
-		    prev_acl_brand == ACL_BRAND_NFS4 ? "NFSv4" : "POSIX.1e",
-		    acl_brand == ACL_BRAND_NFS4 ? "NFSv4" : "POSIX.1e");
+		    brand_name(prev_acl_brand), brand_name(acl_brand));
 		return (-1);
 	}
 
@@ -252,9 +251,10 @@ add_acl(acl_t acl, uint entry_number, ac
 		return (-1);
 	}
 
-	if (acl_brand != ACL_BRAND_NFS4) {
+	if (branding_mismatch(acl_brand, ACL_BRAND_NFS4)) {
 		warnx("%s: branding mismatch; existing ACL is NFSv4, "
-		    "entry to be added is POSIX.1e", filename);
+		    "entry to be added is %s", filename,
+		    brand_name(acl_brand));
 		return (-1);
 	}
 

Modified: projects/ppc64/bin/setfacl/remove.c
==============================================================================
--- projects/ppc64/bin/setfacl/remove.c	Tue Jan 19 20:36:15 2010	(r202650)
+++ projects/ppc64/bin/setfacl/remove.c	Tue Jan 19 20:44:37 2010	(r202651)
@@ -53,11 +53,10 @@ remove_acl(acl_t acl, acl_t *prev_acl, c
 	acl_get_brand_np(acl, &acl_brand);
 	acl_get_brand_np(*prev_acl, &prev_acl_brand);
 
-	if (acl_brand != prev_acl_brand) {
+	if (branding_mismatch(acl_brand, prev_acl_brand)) {
 		warnx("%s: branding mismatch; existing ACL is %s, "
 		    "entry to be removed is %s", filename,
-		    prev_acl_brand == ACL_BRAND_NFS4 ? "NFSv4" : "POSIX.1e",
-		    acl_brand == ACL_BRAND_NFS4 ? "NFSv4" : "POSIX.1e");
+		    brand_name(prev_acl_brand), brand_name(acl_brand));
 		return (-1);
 	}
 

Modified: projects/ppc64/bin/setfacl/setfacl.h
==============================================================================
--- projects/ppc64/bin/setfacl/setfacl.h	Tue Jan 19 20:36:15 2010	(r202650)
+++ projects/ppc64/bin/setfacl/setfacl.h	Tue Jan 19 20:44:37 2010	(r202651)
@@ -71,6 +71,8 @@ void   remove_ext(acl_t *prev_acl, const
 int    set_acl_mask(acl_t *prev_acl, const char *filename);
 /* util.c */
 void  *zmalloc(size_t size);
+const char *brand_name(int brand);
+int    branding_mismatch(int brand1, int brand2);
 
 uint       have_mask;
 uint       need_mask;

Modified: projects/ppc64/bin/setfacl/util.c
==============================================================================
--- projects/ppc64/bin/setfacl/util.c	Tue Jan 19 20:36:15 2010	(r202650)
+++ projects/ppc64/bin/setfacl/util.c	Tue Jan 19 20:44:37 2010	(r202651)
@@ -43,3 +43,26 @@ zmalloc(size_t size)
 		err(1, "calloc() failed");
 	return (ptr);
 }
+
+const char *
+brand_name(int brand)
+{
+	switch (brand) {
+	case ACL_BRAND_NFS4:
+		return "NFSv4";
+	case ACL_BRAND_POSIX:
+		return "POSIX.1e";
+	default:
+		return "unknown";
+	}
+}
+
+int
+branding_mismatch(int brand1, int brand2)
+{
+	if (brand1 == ACL_BRAND_UNKNOWN || brand2 == ACL_BRAND_UNKNOWN)
+		return (0);
+	if (brand1 != brand2)
+		return (1);
+	return (0);
+}

Modified: projects/ppc64/bin/sh/alias.c
==============================================================================
--- projects/ppc64/bin/sh/alias.c	Tue Jan 19 20:36:15 2010	(r202650)
+++ projects/ppc64/bin/sh/alias.c	Tue Jan 19 20:44:37 2010	(r202651)
@@ -52,13 +52,13 @@ __FBSDID("$FreeBSD$");
 STATIC struct alias *atab[ATABSIZE];
 STATIC int aliases;
 
-STATIC void setalias(char *, char *);
+STATIC void setalias(const char *, const char *);
 STATIC int unalias(const char *);
 STATIC struct alias **hashalias(const char *);
 
 STATIC
 void
-setalias(char *name, char *val)
+setalias(const char *name, const char *val)
 {
 	struct alias *ap, **app;
 
@@ -176,7 +176,7 @@ rmaliases(void)
 }
 
 struct alias *
-lookupalias(char *name, int check)
+lookupalias(const char *name, int check)
 {
 	struct alias *ap = *hashalias(name);
 

Modified: projects/ppc64/bin/sh/alias.h
==============================================================================
--- projects/ppc64/bin/sh/alias.h	Tue Jan 19 20:36:15 2010	(r202650)
+++ projects/ppc64/bin/sh/alias.h	Tue Jan 19 20:44:37 2010	(r202651)
@@ -42,7 +42,7 @@ struct alias {
 	int flag;
 };
 
-struct alias *lookupalias(char *, int);
+struct alias *lookupalias(const char *, int);
 int aliascmd(int, char **);
 int unaliascmd(int, char **);
 void rmaliases(void);

Modified: projects/ppc64/bin/sh/arith.h
==============================================================================
--- projects/ppc64/bin/sh/arith.h	Tue Jan 19 20:36:15 2010	(r202650)
+++ projects/ppc64/bin/sh/arith.h	Tue Jan 19 20:44:37 2010	(r202651)
@@ -34,8 +34,8 @@
 
 #define DIGITS(var) (3 + (2 + CHAR_BIT * sizeof((var))) / 3)
 
-extern char *arith_buf, *arith_startbuf;
+extern const char *arith_buf, *arith_startbuf;
 
-arith_t arith(char *);
+arith_t arith(const char *);
 void arith_lex_reset(void);
 int expcmd(int, char **);

Modified: projects/ppc64/bin/sh/arith.y
==============================================================================
--- projects/ppc64/bin/sh/arith.y	Tue Jan 19 20:36:15 2010	(r202650)
+++ projects/ppc64/bin/sh/arith.y	Tue Jan 19 20:44:37 2010	(r202651)
@@ -85,9 +85,9 @@ expr:
 	ARITH_LPAREN expr ARITH_RPAREN
 		{ $$ = $2; } |
 	expr ARITH_OR expr
-		{ $$ = $1 ? $1 : $3 ? $3 : 0; } |
+		{ $$ = $1 || $3; } |
 	expr ARITH_AND expr
-		{ $$ = $1 ? ( $3 ? $3 : 0 ) : 0; } |
+		{ $$ = $1 && $3; } |
 	expr ARITH_BOR expr
 		{ $$ = $1 | $3; } |
 	expr ARITH_BXOR expr
@@ -265,7 +265,7 @@ expr:
 #define YYPARSE_PARAM_TYPE arith_t *
 #define YYPARSE_PARAM result
 
-char *arith_buf, *arith_startbuf;
+const char *arith_buf, *arith_startbuf;
 
 int yylex(void);
 int yyparse(YYPARSE_PARAM_TYPE);
@@ -284,7 +284,7 @@ arith_assign(char *name, arith_t value)
 }
 
 arith_t
-arith(char *s)
+arith(const char *s)
 {
 	arith_t result;
 
@@ -299,7 +299,7 @@ arith(char *s)
 }
 
 static void
-yyerror(char *s)
+yyerror(const char *s)
 {
 
 	yyerrok;
@@ -314,7 +314,7 @@ yyerror(char *s)
 int
 expcmd(int argc, char **argv)
 {
-	char *p;
+	const char *p;
 	char *concat;
 	char **ap;
 	arith_t i;
@@ -354,7 +354,7 @@ main(int argc, char *argv[])
 	printf("%d\n", exp(argv[1]));
 }
 
-error(char *s)
+error(const char *s)
 {
 	fprintf(stderr, "exp: %s\n", s);
 	exit(1);

Modified: projects/ppc64/bin/sh/cd.c
==============================================================================
--- projects/ppc64/bin/sh/cd.c	Tue Jan 19 20:36:15 2010	(r202650)
+++ projects/ppc64/bin/sh/cd.c	Tue Jan 19 20:44:37 2010	(r202651)
@@ -79,8 +79,8 @@ STATIC char *cdcomppath;
 int
 cdcmd(int argc, char **argv)
 {
-	char *dest;
-	char *path;
+	const char *dest;
+	const char *path;
 	char *p;
 	struct stat statb;
 	int ch, phys, print = 0;

Modified: projects/ppc64/bin/sh/error.c
==============================================================================
--- projects/ppc64/bin/sh/error.c	Tue Jan 19 20:36:15 2010	(r202650)
+++ projects/ppc64/bin/sh/error.c	Tue Jan 19 20:44:37 2010	(r202651)
@@ -67,7 +67,7 @@ volatile sig_atomic_t intpending;
 char *commandname;
 
 
-static void exverror(int, const char *, va_list) __printf0like(2, 0);
+static void exverror(int, const char *, va_list) __printf0like(2, 0) __dead2;
 
 /*
  * Called to raise an exception.  Since C doesn't include exceptions, we
@@ -160,8 +160,8 @@ exverror(int cond, const char *msg, va_l
 #endif
 	if (msg) {
 		if (commandname)
-			outfmt(&errout, "%s: ", commandname);
-		doformat(&errout, msg, ap);
+			outfmt(out2, "%s: ", commandname);
+		doformat(out2, msg, ap);
 		out2c('\n');
 	}
 	flushall();

Modified: projects/ppc64/bin/sh/error.h
==============================================================================
--- projects/ppc64/bin/sh/error.h	Tue Jan 19 20:36:15 2010	(r202650)
+++ projects/ppc64/bin/sh/error.h	Tue Jan 19 20:44:37 2010	(r202651)
@@ -78,10 +78,10 @@ extern volatile sig_atomic_t intpending;
 #define CLEAR_PENDING_INT intpending = 0
 #define int_pending() intpending
 
-void exraise(int);
+void exraise(int) __dead2;
 void onint(void);
-void error(const char *, ...) __printf0like(1, 2);
-void exerror(int, const char *, ...) __printf0like(2, 3);
+void error(const char *, ...) __printf0like(1, 2) __dead2;
+void exerror(int, const char *, ...) __printf0like(2, 3) __dead2;
 
 
 /*

Modified: projects/ppc64/bin/sh/eval.c
==============================================================================
--- projects/ppc64/bin/sh/eval.c	Tue Jan 19 20:36:15 2010	(r202650)
+++ projects/ppc64/bin/sh/eval.c	Tue Jan 19 20:44:37 2010	(r202651)
@@ -74,7 +74,7 @@ __FBSDID("$FreeBSD$");
 #endif
 
 
-MKINIT int evalskip;		/* set if we are skipping commands */
+int evalskip;			/* set if we are skipping commands */
 STATIC int skipcount;		/* number of levels to skip */
 MKINIT int loopnest;		/* current loop nesting level */
 int funcnest;			/* depth of function calls */
@@ -407,8 +407,7 @@ evalsubshell(union node *n, int flags)
 			flags &=~ EV_TESTED;
 		redirect(n->nredir.redirect, 0);
 		evaltree(n->nredir.n, flags | EV_EXIT);	/* never returns */
-	}
-	if (! backgnd) {
+	} else if (! backgnd) {
 		INTOFF;
 		exitstatus = waitforjob(jp, (int *)NULL);
 		INTON;
@@ -647,7 +646,7 @@ evalcommand(union node *cmd, int flags, 
 		out2str(ps4val());
 		for (sp = varlist.list ; sp ; sp = sp->next) {
 			if (sep != 0)
-				outc(' ', &errout);
+				out2c(' ');
 			p = sp->text;
 			while (*p != '=' && *p != '\0')
 				out2c(*p++);
@@ -659,7 +658,7 @@ evalcommand(union node *cmd, int flags, 
 		}
 		for (sp = arglist.list ; sp ; sp = sp->next) {
 			if (sep != 0)
-				outc(' ', &errout);
+				out2c(' ');
 			/* Disambiguate command looking like assignment. */
 			if (sp == arglist.list &&
 					strchr(sp->text, '=') != NULL &&
@@ -671,7 +670,7 @@ evalcommand(union node *cmd, int flags, 
 				out2qstr(sp->text);
 			sep = ' ';
 		}
-		outc('\n', &errout);
+		out2c('\n');
 		flushout(&errout);
 	}
 
@@ -723,10 +722,10 @@ evalcommand(union node *cmd, int flags, 
 					break;
 				if ((cmdentry.u.index = find_builtin(*argv,
 				    &cmdentry.special)) < 0) {
-					outfmt(&errout, "%s: not found\n", *argv);
-					exitstatus = 127;
-					flushout(&errout);
-					return;
+					cmdentry.u.index = BLTINCMD;
+					argv--;
+					argc++;
+					break;
 				}
 				if (cmdentry.u.index != BLTINCMD)
 					break;
@@ -793,20 +792,20 @@ evalcommand(union node *cmd, int flags, 
 			unreffunc(cmdentry.u.func);
 			poplocalvars();
 			localvars = savelocalvars;
+			funcnest--;
 			handler = savehandler;
 			longjmp(handler->loc, 1);
 		}
 		handler = &jmploc;
+		funcnest++;
 		INTON;
 		for (sp = varlist.list ; sp ; sp = sp->next)
 			mklocal(sp->text);
-		funcnest++;
 		exitstatus = oexitstatus;
 		if (flags & EV_TESTED)
 			evaltree(getfuncnode(cmdentry.u.func), EV_TESTED);
 		else
 			evaltree(getfuncnode(cmdentry.u.func), 0);
-		funcnest--;
 		INTOFF;
 		unreffunc(cmdentry.u.func);
 		poplocalvars();
@@ -814,6 +813,7 @@ evalcommand(union node *cmd, int flags, 
 		freeparam(&shellparam);
 		shellparam = saveparam;
 		handler = savehandler;
+		funcnest--;
 		popredir();
 		INTON;
 		if (evalskip == SKIPFUNC) {
@@ -832,6 +832,7 @@ evalcommand(union node *cmd, int flags, 
 			memout.nextc = memout.buf;
 			memout.bufsize = 64;
 			mode |= REDIR_BACKQ;
+			cmdentry.special = 0;
 		}
 		savecmdname = commandname;
 		savetopfile = getcurrentfile();
@@ -849,7 +850,7 @@ evalcommand(union node *cmd, int flags, 
 			listsetvar(cmdenviron);
 		commandname = argv[0];
 		argptr = argv + 1;
-		optptr = NULL;			/* initialize nextopt */
+		nextopt_optptr = NULL;		/* initialize nextopt */
 		builtin_flags = flags;
 		exitstatus = (*builtinfunc[cmdentry.u.index])(argc, argv);
 		flushall();
@@ -865,20 +866,21 @@ cmddone:
 			}
 		}
 		handler = savehandler;
+		if (flags == EV_BACKCMD) {
+			backcmd->buf = memout.buf;
+			backcmd->nleft = memout.nextc - memout.buf;
+			memout.buf = NULL;
+		}
 		if (e != -1) {
 			if ((e != EXERROR && e != EXEXEC)
 			    || cmdentry.special)
 				exraise(e);
 			popfilesupto(savetopfile);
-			FORCEINTON;
+			if (flags != EV_BACKCMD)
+				FORCEINTON;
 		}
 		if (cmdentry.u.index != EXECCMD)
 			popredir();
-		if (flags == EV_BACKCMD) {
-			backcmd->buf = memout.buf;
-			backcmd->nleft = memout.nextc - memout.buf;
-			memout.buf = NULL;
-		}
 	} else {
 #ifdef DEBUG
 		trputs("normal command:  ");  trargs(argv);
@@ -943,12 +945,17 @@ prehash(union node *n)
  */
 
 /*
- * No command given, or a bltin command with no arguments.
+ * No command given, a bltin command with no arguments, or a bltin command
+ * with an invalid name.
  */
 
 int
-bltincmd(int argc __unused, char **argv __unused)
+bltincmd(int argc, char **argv)
 {
+	if (argc > 1) {
+		out2fmt_flush("%s: not found\n", argv[1]);
+		return 127;
+	}
 	/*
 	 * Preserve exitstatus of a previous possible redirection
 	 * as POSIX mandates
@@ -1023,7 +1030,7 @@ commandcmd(int argc, char **argv)
 	if (cmd != -1) {
 		if (argc != 1)
 			error("wrong number of arguments");
-		return typecmd_impl(2, argv - 1, cmd);
+		return typecmd_impl(2, argv - 1, cmd, path);
 	}
 	if (argc != 0) {
 		old = handler;

Modified: projects/ppc64/bin/sh/eval.h
==============================================================================
--- projects/ppc64/bin/sh/eval.h	Tue Jan 19 20:36:15 2010	(r202650)
+++ projects/ppc64/bin/sh/eval.h	Tue Jan 19 20:44:37 2010	(r202651)
@@ -35,6 +35,7 @@
 
 extern char *commandname;	/* currently executing command */
 extern int exitstatus;		/* exit status of last command */
+extern int oexitstatus;		/* saved exit status */
 extern struct strlist *cmdenviron;  /* environment for builtin command */
 
 

Modified: projects/ppc64/bin/sh/exec.c
==============================================================================
--- projects/ppc64/bin/sh/exec.c	Tue Jan 19 20:36:15 2010	(r202650)
+++ projects/ppc64/bin/sh/exec.c	Tue Jan 19 20:44:37 2010	(r202651)
@@ -98,7 +98,7 @@ int exerrno = 0;			/* Last exec error */
 
 STATIC void tryexec(char *, char **, char **);
 STATIC void printentry(struct tblentry *, int);
-STATIC struct tblentry *cmdlookup(char *, int);
+STATIC struct tblentry *cmdlookup(const char *, int);
 STATIC void delete_cmd_entry(void);
 
 
@@ -109,7 +109,7 @@ STATIC void delete_cmd_entry(void);
  */
 
 void
-shellexec(char **argv, char **envp, char *path, int index)
+shellexec(char **argv, char **envp, const char *path, int idx)
 {
 	char *cmdname;
 	int e;
@@ -120,7 +120,7 @@ shellexec(char **argv, char **envp, char
 	} else {
 		e = ENOENT;
 		while ((cmdname = padvance(&path, argv[0])) != NULL) {
-			if (--index < 0 && pathopt == NULL) {
+			if (--idx < 0 && pathopt == NULL) {
 				tryexec(cmdname, argv, envp);
 				if (errno != ENOENT && errno != ENOTDIR)
 					e = errno;
@@ -175,13 +175,13 @@ tryexec(char *cmd, char **argv, char **e

*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***

From owner-svn-src-projects@FreeBSD.ORG  Wed Jan 20 06:26:28 2010
Return-Path: <owner-svn-src-projects@FreeBSD.ORG>
Delivered-To: svn-src-projects@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 5DD98106566B;
	Wed, 20 Jan 2010 06:26:28 +0000 (UTC)
	(envelope-from jeff@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 3425A8FC13;
	Wed, 20 Jan 2010 06:26:28 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o0K6QSqe031441;
	Wed, 20 Jan 2010 06:26:28 GMT (envelope-from jeff@svn.freebsd.org)
Received: (from jeff@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id o0K6QSL8031440;
	Wed, 20 Jan 2010 06:26:28 GMT (envelope-from jeff@svn.freebsd.org)
Message-Id: <201001200626.o0K6QSL8031440@svn.freebsd.org>
From: Jeff Roberson <jeff@FreeBSD.org>
Date: Wed, 20 Jan 2010 06:26:28 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-projects@freebsd.org
X-SVN-Group: projects
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r202672 - projects/suj
X-BeenThere: svn-src-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the src &quot; projects&quot;
	tree" <svn-src-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
	<mailto:svn-src-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-projects>
List-Post: <mailto:svn-src-projects@freebsd.org>
List-Help: <mailto:svn-src-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
	<mailto:svn-src-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Wed, 20 Jan 2010 06:26:28 -0000

Author: jeff
Date: Wed Jan 20 06:26:27 2010
New Revision: 202672
URL: http://svn.freebsd.org/changeset/base/202672

Log:
   - Make a directory to hold suj branches.

Added:
  projects/suj/

From owner-svn-src-projects@FreeBSD.ORG  Wed Jan 20 06:28:19 2010
Return-Path: <owner-svn-src-projects@FreeBSD.ORG>
Delivered-To: svn-src-projects@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 60904106566B;
	Wed, 20 Jan 2010 06:28:19 +0000 (UTC)
	(envelope-from jeff@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 36F448FC14;
	Wed, 20 Jan 2010 06:28:19 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o0K6SJ5M031980;
	Wed, 20 Jan 2010 06:28:19 GMT (envelope-from jeff@svn.freebsd.org)
Received: (from jeff@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id o0K6SJSp031979;
	Wed, 20 Jan 2010 06:28:19 GMT (envelope-from jeff@svn.freebsd.org)
Message-Id: <201001200628.o0K6SJSp031979@svn.freebsd.org>
From: Jeff Roberson <jeff@FreeBSD.org>
Date: Wed, 20 Jan 2010 06:28:19 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-projects@freebsd.org
X-SVN-Group: projects
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r202673 - projects/suj/head
X-BeenThere: svn-src-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the src &quot; projects&quot;
	tree" <svn-src-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
	<mailto:svn-src-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-projects>
List-Post: <mailto:svn-src-projects@freebsd.org>
List-Help: <mailto:svn-src-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
	<mailto:svn-src-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Wed, 20 Jan 2010 06:28:19 -0000

Author: jeff
Date: Wed Jan 20 06:28:18 2010
New Revision: 202673
URL: http://svn.freebsd.org/changeset/base/202673

Log:
   - Create a branch of head for suj.

Added:
     - copied from r202672, head/
Directory Properties:
  projects/suj/head/   (props changed)

From owner-svn-src-projects@FreeBSD.ORG  Wed Jan 20 06:29:28 2010
Return-Path: <owner-svn-src-projects@FreeBSD.ORG>
Delivered-To: svn-src-projects@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 939AC106566B;
	Wed, 20 Jan 2010 06:29:28 +0000 (UTC)
	(envelope-from jeff@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 6A0E68FC0A;
	Wed, 20 Jan 2010 06:29:28 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o0K6TSVY032269;
	Wed, 20 Jan 2010 06:29:28 GMT (envelope-from jeff@svn.freebsd.org)
Received: (from jeff@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id o0K6TSpJ032268;
	Wed, 20 Jan 2010 06:29:28 GMT (envelope-from jeff@svn.freebsd.org)
Message-Id: <201001200629.o0K6TSpJ032268@svn.freebsd.org>
From: Jeff Roberson <jeff@FreeBSD.org>
Date: Wed, 20 Jan 2010 06:29:28 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-projects@freebsd.org
X-SVN-Group: projects
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r202674 - projects/suj/8
X-BeenThere: svn-src-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the src &quot; projects&quot;
	tree" <svn-src-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
	<mailto:svn-src-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-projects>
List-Post: <mailto:svn-src-projects@freebsd.org>
List-Help: <mailto:svn-src-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
	<mailto:svn-src-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Wed, 20 Jan 2010 06:29:28 -0000

Author: jeff
Date: Wed Jan 20 06:29:28 2010
New Revision: 202674
URL: http://svn.freebsd.org/changeset/base/202674

Log:
   - Create a branch of 8 for suj

Added:
     - copied from r202673, stable/8/
Directory Properties:
  projects/suj/8/   (props changed)

From owner-svn-src-projects@FreeBSD.ORG  Wed Jan 20 06:30:05 2010
Return-Path: <owner-svn-src-projects@FreeBSD.ORG>
Delivered-To: svn-src-projects@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id EB74B1065692;
	Wed, 20 Jan 2010 06:30:04 +0000 (UTC)
	(envelope-from jeff@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id BB9428FC14;
	Wed, 20 Jan 2010 06:30:04 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o0K6U4tg032442;
	Wed, 20 Jan 2010 06:30:04 GMT (envelope-from jeff@svn.freebsd.org)
Received: (from jeff@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id o0K6U4go032441;
	Wed, 20 Jan 2010 06:30:04 GMT (envelope-from jeff@svn.freebsd.org)
Message-Id: <201001200630.o0K6U4go032441@svn.freebsd.org>
From: Jeff Roberson <jeff@FreeBSD.org>
Date: Wed, 20 Jan 2010 06:30:04 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-projects@freebsd.org
X-SVN-Group: projects
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r202675 - projects/suj/7
X-BeenThere: svn-src-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the src &quot; projects&quot;
	tree" <svn-src-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
	<mailto:svn-src-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-projects>
List-Post: <mailto:svn-src-projects@freebsd.org>
List-Help: <mailto:svn-src-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
	<mailto:svn-src-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Wed, 20 Jan 2010 06:30:05 -0000

Author: jeff
Date: Wed Jan 20 06:30:04 2010
New Revision: 202675
URL: http://svn.freebsd.org/changeset/base/202675

Log:
   - Create a branch of 7 for suj.

Added:
  projects/suj/7/
     - copied from r202674, stable/7/

From owner-svn-src-projects@FreeBSD.ORG  Wed Jan 20 06:30:40 2010
Return-Path: <owner-svn-src-projects@FreeBSD.ORG>
Delivered-To: svn-src-projects@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 8E1CA106566C;
	Wed, 20 Jan 2010 06:30:40 +0000 (UTC)
	(envelope-from jeff@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 64F958FC1A;
	Wed, 20 Jan 2010 06:30:40 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o0K6Ue2h032615;
	Wed, 20 Jan 2010 06:30:40 GMT (envelope-from jeff@svn.freebsd.org)
Received: (from jeff@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id o0K6Uevl032614;
	Wed, 20 Jan 2010 06:30:40 GMT (envelope-from jeff@svn.freebsd.org)
Message-Id: <201001200630.o0K6Uevl032614@svn.freebsd.org>
From: Jeff Roberson <jeff@FreeBSD.org>
Date: Wed, 20 Jan 2010 06:30:40 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-projects@freebsd.org
X-SVN-Group: projects
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r202676 - projects/suj/6
X-BeenThere: svn-src-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the src &quot; projects&quot;
	tree" <svn-src-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
	<mailto:svn-src-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-projects>
List-Post: <mailto:svn-src-projects@freebsd.org>
List-Help: <mailto:svn-src-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
	<mailto:svn-src-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Wed, 20 Jan 2010 06:30:40 -0000

Author: jeff
Date: Wed Jan 20 06:30:40 2010
New Revision: 202676
URL: http://svn.freebsd.org/changeset/base/202676

Log:
   - Create a branch of 6 for suj.

Added:
  projects/suj/6/
     - copied from r202675, stable/6/

From owner-svn-src-projects@FreeBSD.ORG  Wed Jan 20 09:18:00 2010
Return-Path: <owner-svn-src-projects@FreeBSD.ORG>
Delivered-To: svn-src-projects@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 966501065679;
	Wed, 20 Jan 2010 09:18:00 +0000 (UTC)
	(envelope-from jeff@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 6D1548FC14;
	Wed, 20 Jan 2010 09:18:00 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o0K9I0w0069530;
	Wed, 20 Jan 2010 09:18:00 GMT (envelope-from jeff@svn.freebsd.org)
Received: (from jeff@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id o0K9I042069528;
	Wed, 20 Jan 2010 09:18:00 GMT (envelope-from jeff@svn.freebsd.org)
Message-Id: <201001200918.o0K9I042069528@svn.freebsd.org>
From: Jeff Roberson <jeff@FreeBSD.org>
Date: Wed, 20 Jan 2010 09:18:00 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-projects@freebsd.org
X-SVN-Group: projects
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r202682 - projects/suj/8/sys/ufs/ffs
X-BeenThere: svn-src-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the src &quot; projects&quot;
	tree" <svn-src-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
	<mailto:svn-src-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-projects>
List-Post: <mailto:svn-src-projects@freebsd.org>
List-Help: <mailto:svn-src-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
	<mailto:svn-src-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Wed, 20 Jan 2010 09:18:00 -0000

Author: jeff
Date: Wed Jan 20 09:18:00 2010
New Revision: 202682
URL: http://svn.freebsd.org/changeset/base/202682

Log:
   - Reduce diffs with current to make the suj merge easier.

Modified:
  projects/suj/8/sys/ufs/ffs/fs.h

Modified: projects/suj/8/sys/ufs/ffs/fs.h
==============================================================================
--- projects/suj/8/sys/ufs/ffs/fs.h	Wed Jan 20 09:11:42 2010	(r202681)
+++ projects/suj/8/sys/ufs/ffs/fs.h	Wed Jan 20 09:18:00 2010	(r202682)
@@ -393,22 +393,24 @@ CTASSERT(sizeof(struct fs) == 1376);
  * flag to indicate that the indicies need to be rebuilt (by fsck) before
  * they can be used.
  *
- * FS_ACLS indicates that ACLs are administratively enabled for the
- * file system, so they should be loaded from extended attributes,
+ * FS_ACLS indicates that POSIX.1e ACLs are administratively enabled
+ * for the file system, so they should be loaded from extended attributes,
  * observed for access control purposes, and be administered by object
- * owners.  FS_MULTILABEL indicates that the TrustedBSD MAC Framework
- * should attempt to back MAC labels into extended attributes on the
- * file system rather than maintain a single mount label for all
- * objects.
- */
-#define FS_UNCLEAN    0x01	/* filesystem not clean at mount */
-#define FS_DOSOFTDEP  0x02	/* filesystem using soft dependencies */
-#define FS_NEEDSFSCK  0x04	/* filesystem needs sync fsck before mount */
-#define FS_INDEXDIRS  0x08	/* kernel supports indexed directories */
-#define FS_ACLS       0x10	/* file system has ACLs enabled */
-#define FS_MULTILABEL 0x20	/* file system is MAC multi-label */
-#define FS_GJOURNAL   0x40	/* gjournaled file system */
-#define FS_FLAGS_UPDATED 0x80	/* flags have been moved to new location */
+ * owners.  FS_NFS4ACLS indicates that NFSv4 ACLs are administratively
+ * enabled.  This flag is mutually exclusive with FS_ACLS.  FS_MULTILABEL
+ * indicates that the TrustedBSD MAC Framework should attempt to back MAC
+ * labels into extended attributes on the file system rather than maintain
+ * a single mount label for all objects.
+ */
+#define FS_UNCLEAN	0x0001	/* filesystem not clean at mount */
+#define FS_DOSOFTDEP	0x0002	/* filesystem using soft dependencies */
+#define FS_NEEDSFSCK	0x0004	/* filesystem needs sync fsck before mount */
+#define FS_INDEXDIRS	0x0008	/* kernel supports indexed directories */
+#define FS_ACLS		0x0010	/* file system has POSIX.1e ACLs enabled */
+#define FS_MULTILABEL	0x0020	/* file system is MAC multi-label */
+#define FS_GJOURNAL	0x0040	/* gjournaled file system */
+#define FS_FLAGS_UPDATED 0x0080	/* flags have been moved to new location */
+#define FS_NFS4ACLS	0x0100	/* file system has NFSv4 ACLs enabled */
 
 /*
  * Macros to access bits in the fs_active array.

From owner-svn-src-projects@FreeBSD.ORG  Wed Jan 20 09:18:34 2010
Return-Path: <owner-svn-src-projects@FreeBSD.ORG>
Delivered-To: svn-src-projects@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 02E2D106566B;
	Wed, 20 Jan 2010 09:18:34 +0000 (UTC)
	(envelope-from jeff@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id E5A168FC08;
	Wed, 20 Jan 2010 09:18:33 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o0K9IXxh069702;
	Wed, 20 Jan 2010 09:18:33 GMT (envelope-from jeff@svn.freebsd.org)
Received: (from jeff@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id o0K9IXCW069697;
	Wed, 20 Jan 2010 09:18:33 GMT (envelope-from jeff@svn.freebsd.org)
Message-Id: <201001200918.o0K9IXCW069697@svn.freebsd.org>
From: Jeff Roberson <jeff@FreeBSD.org>
Date: Wed, 20 Jan 2010 09:18:33 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-projects@freebsd.org
X-SVN-Group: projects
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r202683 - in projects/suj/7/sys/ufs: ffs ufs
X-BeenThere: svn-src-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the src &quot; projects&quot;
	tree" <svn-src-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
	<mailto:svn-src-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-projects>
List-Post: <mailto:svn-src-projects@freebsd.org>
List-Help: <mailto:svn-src-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
	<mailto:svn-src-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Wed, 20 Jan 2010 09:18:34 -0000

Author: jeff
Date: Wed Jan 20 09:18:33 2010
New Revision: 202683
URL: http://svn.freebsd.org/changeset/base/202683

Log:
   - Reduce diffs with 8 to make the suj merge easier.

Modified:
  projects/suj/7/sys/ufs/ffs/ffs_softdep.c
  projects/suj/7/sys/ufs/ffs/fs.h
  projects/suj/7/sys/ufs/ufs/dinode.h
  projects/suj/7/sys/ufs/ufs/ufsmount.h

Modified: projects/suj/7/sys/ufs/ffs/ffs_softdep.c
==============================================================================
--- projects/suj/7/sys/ufs/ffs/ffs_softdep.c	Wed Jan 20 09:18:00 2010	(r202682)
+++ projects/suj/7/sys/ufs/ffs/ffs_softdep.c	Wed Jan 20 09:18:33 2010	(r202683)
@@ -638,7 +638,7 @@ workitem_free(item, type)
 	ump = VFSTOUFS(item->wk_mp);
 	if (--ump->softdep_deps == 0 && ump->softdep_req)
 		wakeup(&ump->softdep_deps);
-	FREE(item, DtoM(type));
+	free(item, DtoM(type));
 }
 
 static void
@@ -1226,7 +1226,7 @@ pagedep_lookup(ip, lbn, flags, pagedeppp
 	if (*pagedeppp || (flags & DEPALLOC) == 0)
 		return (ret);
 	FREE_LOCK(&lk);
-	MALLOC(pagedep, struct pagedep *, sizeof(struct pagedep),
+	pagedep = malloc(sizeof(struct pagedep),
 	    M_PAGEDEP, M_SOFTDEP_FLAGS|M_ZERO);
 	workitem_alloc(&pagedep->pd_list, D_PAGEDEP, mp);
 	ACQUIRE_LOCK(&lk);
@@ -1306,7 +1306,7 @@ inodedep_lookup(mp, inum, flags, inodede
 	if (num_inodedep > max_softdeps && (flags & NODELAY) == 0)
 		request_cleanup(mp, FLUSH_INODES);
 	FREE_LOCK(&lk);
-	MALLOC(inodedep, struct inodedep *, sizeof(struct inodedep),
+	inodedep = malloc(sizeof(struct inodedep),
 		M_INODEDEP, M_SOFTDEP_FLAGS);
 	workitem_alloc(&inodedep->id_list, D_INODEDEP, mp);
 	ACQUIRE_LOCK(&lk);
@@ -1384,11 +1384,11 @@ newblk_lookup(fs, newblkno, flags, newbl
 	if ((flags & DEPALLOC) == 0)
 		return (0);
 	FREE_LOCK(&lk);
-	MALLOC(newblk, struct newblk *, sizeof(struct newblk),
+	newblk = malloc(sizeof(struct newblk),
 		M_NEWBLK, M_SOFTDEP_FLAGS);
 	ACQUIRE_LOCK(&lk);
 	if (newblk_find(newblkhd, fs, newblkno, newblkpp)) {
-		FREE(newblk, M_NEWBLK);
+		free(newblk, M_NEWBLK);
 		return (1);
 	}
 	newblk->nb_state = 0;
@@ -1610,7 +1610,7 @@ bmsafemap_lookup(mp, bp)
 		if (wk->wk_type == D_BMSAFEMAP)
 			return (WK_BMSAFEMAP(wk));
 	FREE_LOCK(&lk);
-	MALLOC(bmsafemap, struct bmsafemap *, sizeof(struct bmsafemap),
+	bmsafemap = malloc(sizeof(struct bmsafemap),
 		M_BMSAFEMAP, M_SOFTDEP_FLAGS);
 	workitem_alloc(&bmsafemap->sm_list, D_BMSAFEMAP, mp);
 	bmsafemap->sm_buf = bp;
@@ -1671,7 +1671,7 @@ softdep_setup_allocdirect(ip, lbn, newbl
 	struct mount *mp;
 
 	mp = UFSTOVFS(ip->i_ump);
-	MALLOC(adp, struct allocdirect *, sizeof(struct allocdirect),
+	adp = malloc(sizeof(struct allocdirect),
 		M_ALLOCDIRECT, M_SOFTDEP_FLAGS|M_ZERO);
 	workitem_alloc(&adp->ad_list, D_ALLOCDIRECT, mp);
 	adp->ad_lbn = lbn;
@@ -1715,7 +1715,7 @@ softdep_setup_allocdirect(ip, lbn, newbl
 		LIST_INSERT_HEAD(&bmsafemap->sm_allocdirecthd, adp, ad_deps);
 	}
 	LIST_REMOVE(newblk, nb_hash);
-	FREE(newblk, M_NEWBLK);
+	free(newblk, M_NEWBLK);
 
 	inodedep_lookup(mp, ip->i_number, DEPALLOC | NODELAY, &inodedep);
 	adp->ad_inodedep = inodedep;
@@ -1832,7 +1832,7 @@ newfreefrag(ip, blkno, size)
 	fs = ip->i_fs;
 	if (fragnum(fs, blkno) + numfrags(fs, size) > fs->fs_frag)
 		panic("newfreefrag: frag size");
-	MALLOC(freefrag, struct freefrag *, sizeof(struct freefrag),
+	freefrag = malloc(sizeof(struct freefrag),
 		M_FREEFRAG, M_SOFTDEP_FLAGS);
 	workitem_alloc(&freefrag->ff_list, D_FREEFRAG, UFSTOVFS(ip->i_ump));
 	freefrag->ff_inum = ip->i_number;
@@ -1881,7 +1881,7 @@ softdep_setup_allocext(ip, lbn, newblkno
 	struct mount *mp;
 
 	mp = UFSTOVFS(ip->i_ump);
-	MALLOC(adp, struct allocdirect *, sizeof(struct allocdirect),
+	adp = malloc(sizeof(struct allocdirect),
 		M_ALLOCDIRECT, M_SOFTDEP_FLAGS|M_ZERO);
 	workitem_alloc(&adp->ad_list, D_ALLOCDIRECT, mp);
 	adp->ad_lbn = lbn;
@@ -1913,7 +1913,7 @@ softdep_setup_allocext(ip, lbn, newblkno
 		LIST_INSERT_HEAD(&bmsafemap->sm_allocdirecthd, adp, ad_deps);
 	}
 	LIST_REMOVE(newblk, nb_hash);
-	FREE(newblk, M_NEWBLK);
+	free(newblk, M_NEWBLK);
 
 	WORKLIST_INSERT(&bp->b_dep, &adp->ad_list);
 	if (lbn >= NXADDR)
@@ -1991,7 +1991,7 @@ newallocindir(ip, ptrno, newblkno, oldbl
 {
 	struct allocindir *aip;
 
-	MALLOC(aip, struct allocindir *, sizeof(struct allocindir),
+	aip = malloc(sizeof(struct allocindir),
 		M_ALLOCINDIR, M_SOFTDEP_FLAGS|M_ZERO);
 	workitem_alloc(&aip->ai_list, D_ALLOCINDIR, UFSTOVFS(ip->i_ump));
 	aip->ai_state = ATTACHED;
@@ -2105,7 +2105,7 @@ setup_allocindir_phase2(bp, ip, aip)
 				    aip, ai_deps);
 			}
 			LIST_REMOVE(newblk, nb_hash);
-			FREE(newblk, M_NEWBLK);
+			free(newblk, M_NEWBLK);
 			aip->ai_indirdep = indirdep;
 			/*
 			 * Check to see if there is an existing dependency
@@ -2154,7 +2154,7 @@ setup_allocindir_phase2(bp, ip, aip)
 			ACQUIRE_LOCK(&lk);
 			break;
 		}
-		MALLOC(newindirdep, struct indirdep *, sizeof(struct indirdep),
+		newindirdep = malloc(sizeof(struct indirdep),
 			M_INDIRDEP, M_SOFTDEP_FLAGS);
 		workitem_alloc(&newindirdep->ir_list, D_INDIRDEP,
 		    UFSTOVFS(ip->i_ump));
@@ -2225,7 +2225,7 @@ softdep_setup_freeblocks(ip, length, fla
 	mp = UFSTOVFS(ip->i_ump);
 	if (length != 0)
 		panic("softdep_setup_freeblocks: non-zero length");
-	MALLOC(freeblks, struct freeblks *, sizeof(struct freeblks),
+	freeblks = malloc(sizeof(struct freeblks),
 		M_FREEBLKS, M_SOFTDEP_FLAGS|M_ZERO);
 	workitem_alloc(&freeblks->fb_list, D_FREEBLKS, mp);
 	freeblks->fb_state = ATTACHED;
@@ -2608,7 +2608,7 @@ softdep_freefile(pvp, ino, mode)
 	/*
 	 * This sets up the inode de-allocation dependency.
 	 */
-	MALLOC(freefile, struct freefile *, sizeof(struct freefile),
+	freefile = malloc(sizeof(struct freefile),
 		M_FREEFILE, M_SOFTDEP_FLAGS);
 	workitem_alloc(&freefile->fx_list, D_FREEFILE, pvp->v_mount);
 	freefile->fx_mode = mode;
@@ -2685,7 +2685,7 @@ check_inode_unwritten(inodedep)
 	if (inodedep->id_state & ONWORKLIST)
 		WORKLIST_REMOVE(&inodedep->id_list);
 	if (inodedep->id_savedino1 != NULL) {
-		FREE(inodedep->id_savedino1, M_SAVEDINO);
+		free(inodedep->id_savedino1, M_SAVEDINO);
 		inodedep->id_savedino1 = NULL;
 	}
 	if (free_inodedep(inodedep) == 0)
@@ -3023,14 +3023,14 @@ softdep_setup_directory_add(bp, dp, diro
 	fs = dp->i_fs;
 	lbn = lblkno(fs, diroffset);
 	offset = blkoff(fs, diroffset);
-	MALLOC(dap, struct diradd *, sizeof(struct diradd), M_DIRADD,
+	dap = malloc(sizeof(struct diradd), M_DIRADD,
 		M_SOFTDEP_FLAGS|M_ZERO);
 	workitem_alloc(&dap->da_list, D_DIRADD, mp);
 	dap->da_offset = offset;
 	dap->da_newinum = newinum;
 	dap->da_state = ATTACHED;
 	if (isnewblk && lbn < NDADDR && fragoff(fs, diroffset) == 0) {
-		MALLOC(newdirblk, struct newdirblk *, sizeof(struct newdirblk),
+		newdirblk = malloc(sizeof(struct newdirblk),
 		    M_NEWDIRBLK, M_SOFTDEP_FLAGS);
 		workitem_alloc(&newdirblk->db_list, D_NEWDIRBLK, mp);
 	}
@@ -3039,12 +3039,12 @@ softdep_setup_directory_add(bp, dp, diro
 		ACQUIRE_LOCK(&lk);
 	} else {
 		dap->da_state |= MKDIR_BODY | MKDIR_PARENT;
-		MALLOC(mkdir1, struct mkdir *, sizeof(struct mkdir), M_MKDIR,
+		mkdir1 = malloc(sizeof(struct mkdir), M_MKDIR,
 		    M_SOFTDEP_FLAGS);
 		workitem_alloc(&mkdir1->md_list, D_MKDIR, mp);
 		mkdir1->md_state = MKDIR_BODY;
 		mkdir1->md_diradd = dap;
-		MALLOC(mkdir2, struct mkdir *, sizeof(struct mkdir), M_MKDIR,
+		mkdir2 = malloc(sizeof(struct mkdir), M_MKDIR,
 		    M_SOFTDEP_FLAGS);
 		workitem_alloc(&mkdir2->md_list, D_MKDIR, mp);
 		mkdir2->md_state = MKDIR_PARENT;
@@ -3325,7 +3325,7 @@ newdirrem(bp, dp, ip, isrmdir, prevdirre
 		(void) request_cleanup(ITOV(dp)->v_mount, FLUSH_REMOVE);
 	num_dirrem += 1;
 	FREE_LOCK(&lk);
-	MALLOC(dirrem, struct dirrem *, sizeof(struct dirrem),
+	dirrem = malloc(sizeof(struct dirrem),
 		M_DIRREM, M_SOFTDEP_FLAGS|M_ZERO);
 	workitem_alloc(&dirrem->dm_list, D_DIRREM, ITOV(dp)->v_mount);
 	dirrem->dm_state = isrmdir ? RMDIR : 0;
@@ -3422,7 +3422,7 @@ softdep_setup_directory_change(bp, dp, i
 	 * Whiteouts do not need diradd dependencies.
 	 */
 	if (newinum != WINO) {
-		MALLOC(dap, struct diradd *, sizeof(struct diradd),
+		dap = malloc(sizeof(struct diradd),
 		    M_DIRADD, M_SOFTDEP_FLAGS|M_ZERO);
 		workitem_alloc(&dap->da_list, D_DIRADD, mp);
 		dap->da_state = DIRCHG | ATTACHED | DEPCOMPLETE;
@@ -3824,7 +3824,7 @@ softdep_disk_io_initiation(bp)
 			 * Replace up-to-date version with safe version.
 			 */
 			FREE_LOCK(&lk);
-			MALLOC(indirdep->ir_saveddata, caddr_t, bp->b_bcount,
+			indirdep->ir_saveddata = malloc(bp->b_bcount,
 			    M_INDIRDEP, M_SOFTDEP_FLAGS);
 			ACQUIRE_LOCK(&lk);
 			indirdep->ir_state &= ~ATTACHED;
@@ -3932,8 +3932,8 @@ initiate_write_inodeblock_ufs1(inodedep,
 		if (inodedep->id_savedino1 != NULL)
 			panic("initiate_write_inodeblock_ufs1: I/O underway");
 		FREE_LOCK(&lk);
-		MALLOC(sip, struct ufs1_dinode *,
-		    sizeof(struct ufs1_dinode), M_SAVEDINO, M_SOFTDEP_FLAGS);
+		sip = malloc(sizeof(struct ufs1_dinode),
+		    M_SAVEDINO, M_SOFTDEP_FLAGS);
 		ACQUIRE_LOCK(&lk);
 		inodedep->id_savedino1 = sip;
 		*inodedep->id_savedino1 = *dp;
@@ -4078,8 +4078,8 @@ initiate_write_inodeblock_ufs2(inodedep,
 		if (inodedep->id_savedino2 != NULL)
 			panic("initiate_write_inodeblock_ufs2: I/O underway");
 		FREE_LOCK(&lk);
-		MALLOC(sip, struct ufs2_dinode *,
-		    sizeof(struct ufs2_dinode), M_SAVEDINO, M_SOFTDEP_FLAGS);
+		sip = malloc(sizeof(struct ufs2_dinode),
+		    M_SAVEDINO, M_SOFTDEP_FLAGS);
 		ACQUIRE_LOCK(&lk);
 		inodedep->id_savedino2 = sip;
 		*inodedep->id_savedino2 = *dp;
@@ -4347,7 +4347,7 @@ softdep_disk_write_complete(bp)
 			if (indirdep->ir_state & GOINGAWAY)
 				panic("disk_write_complete: indirdep gone");
 			bcopy(indirdep->ir_saveddata, bp->b_data, bp->b_bcount);
-			FREE(indirdep->ir_saveddata, M_INDIRDEP);
+			free(indirdep->ir_saveddata, M_INDIRDEP);
 			indirdep->ir_saveddata = 0;
 			indirdep->ir_state &= ~UNDONE;
 			indirdep->ir_state |= ATTACHED;
@@ -4534,7 +4534,7 @@ handle_written_inodeblock(inodedep, bp)
 			*dp1 = *inodedep->id_savedino1;
 		else
 			*dp2 = *inodedep->id_savedino2;
-		FREE(inodedep->id_savedino1, M_SAVEDINO);
+		free(inodedep->id_savedino1, M_SAVEDINO);
 		inodedep->id_savedino1 = NULL;
 		if ((bp->b_flags & B_DELWRI) == 0)
 			stat_inode_bitmap++;

Modified: projects/suj/7/sys/ufs/ffs/fs.h
==============================================================================
--- projects/suj/7/sys/ufs/ffs/fs.h	Wed Jan 20 09:18:00 2010	(r202682)
+++ projects/suj/7/sys/ufs/ffs/fs.h	Wed Jan 20 09:18:33 2010	(r202683)
@@ -393,22 +393,24 @@ CTASSERT(sizeof(struct fs) == 1376);
  * flag to indicate that the indicies need to be rebuilt (by fsck) before
  * they can be used.
  *
- * FS_ACLS indicates that ACLs are administratively enabled for the
- * file system, so they should be loaded from extended attributes,
+ * FS_ACLS indicates that POSIX.1e ACLs are administratively enabled
+ * for the file system, so they should be loaded from extended attributes,
  * observed for access control purposes, and be administered by object
- * owners.  FS_MULTILABEL indicates that the TrustedBSD MAC Framework
- * should attempt to back MAC labels into extended attributes on the
- * file system rather than maintain a single mount label for all
- * objects.
- */
-#define FS_UNCLEAN    0x01	/* filesystem not clean at mount */
-#define FS_DOSOFTDEP  0x02	/* filesystem using soft dependencies */
-#define FS_NEEDSFSCK  0x04	/* filesystem needs sync fsck before mount */
-#define FS_INDEXDIRS  0x08	/* kernel supports indexed directories */
-#define FS_ACLS       0x10	/* file system has ACLs enabled */
-#define FS_MULTILABEL 0x20	/* file system is MAC multi-label */
-#define FS_GJOURNAL   0x40	/* gjournaled file system */
-#define FS_FLAGS_UPDATED 0x80	/* flags have been moved to new location */
+ * owners.  FS_NFS4ACLS indicates that NFSv4 ACLs are administratively
+ * enabled.  This flag is mutually exclusive with FS_ACLS.  FS_MULTILABEL
+ * indicates that the TrustedBSD MAC Framework should attempt to back MAC
+ * labels into extended attributes on the file system rather than maintain
+ * a single mount label for all objects.
+ */
+#define FS_UNCLEAN	0x0001	/* filesystem not clean at mount */
+#define FS_DOSOFTDEP	0x0002	/* filesystem using soft dependencies */
+#define FS_NEEDSFSCK	0x0004	/* filesystem needs sync fsck before mount */
+#define FS_INDEXDIRS	0x0008	/* kernel supports indexed directories */
+#define FS_ACLS		0x0010	/* file system has POSIX.1e ACLs enabled */
+#define FS_MULTILABEL	0x0020	/* file system is MAC multi-label */
+#define FS_GJOURNAL	0x0040	/* gjournaled file system */
+#define FS_FLAGS_UPDATED 0x0080	/* flags have been moved to new location */
+#define FS_NFS4ACLS	0x0100	/* file system has NFSv4 ACLs enabled */
 
 /*
  * Macros to access bits in the fs_active array.

Modified: projects/suj/7/sys/ufs/ufs/dinode.h
==============================================================================
--- projects/suj/7/sys/ufs/ufs/dinode.h	Wed Jan 20 09:18:00 2010	(r202682)
+++ projects/suj/7/sys/ufs/ufs/dinode.h	Wed Jan 20 09:18:33 2010	(r202683)
@@ -145,7 +145,8 @@ struct ufs2_dinode {
 	ufs2_daddr_t	di_extb[NXADDR];/*  96: External attributes block. */
 	ufs2_daddr_t	di_db[NDADDR];	/* 112: Direct disk blocks. */
 	ufs2_daddr_t	di_ib[NIADDR];	/* 208: Indirect disk blocks. */
-	int64_t		di_spare[3];	/* 232: Reserved; currently unused */
+	u_int64_t	di_modrev;	/* 232: i_modrev for NFSv4 */
+	int64_t		di_spare[2];	/* 240: Reserved; currently unused */
 };
 
 /*
@@ -183,7 +184,7 @@ struct ufs1_dinode {
 	int32_t		di_gen;		/* 108: Generation number. */
 	u_int32_t	di_uid;		/* 112: File owner. */
 	u_int32_t	di_gid;		/* 116: File group. */
-	int32_t		di_spare[2];	/* 120: Reserved; currently unused */
+	u_int64_t	di_modrev;	/* 120: i_modrev for NFSv4 */
 };
 #define	di_ogid		di_u.oldids[1]
 #define	di_ouid		di_u.oldids[0]

Modified: projects/suj/7/sys/ufs/ufs/ufsmount.h
==============================================================================
--- projects/suj/7/sys/ufs/ufs/ufsmount.h	Wed Jan 20 09:18:00 2010	(r202682)
+++ projects/suj/7/sys/ufs/ufs/ufsmount.h	Wed Jan 20 09:18:33 2010	(r202683)
@@ -73,8 +73,8 @@ struct ufsmount {
 	u_long	um_seqinc;			/* inc between seq blocks */
 	struct	mtx um_lock;			/* Protects ufsmount & fs */
 	long	um_numindirdeps;		/* outstanding indirdeps */
-	struct workhead softdep_workitem_pending; /* softdep work queue */
-	struct worklist *softdep_worklist_tail;	/* Tail pointer for above */
+	struct	workhead softdep_workitem_pending; /* softdep work queue */
+	struct	worklist *softdep_worklist_tail; /* Tail pointer for above */
 	int	softdep_on_worklist;		/* Items on the worklist */
 	int	softdep_on_worklist_inprogress;	/* Busy items on worklist */
 	int	softdep_deps;			/* Total dependency count */

From owner-svn-src-projects@FreeBSD.ORG  Wed Jan 20 09:19:18 2010
Return-Path: <owner-svn-src-projects@FreeBSD.ORG>
Delivered-To: svn-src-projects@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id D7427106568D;
	Wed, 20 Jan 2010 09:19:18 +0000 (UTC)
	(envelope-from jeff@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id C5C108FC24;
	Wed, 20 Jan 2010 09:19:18 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o0K9JIVa069914;
	Wed, 20 Jan 2010 09:19:18 GMT (envelope-from jeff@svn.freebsd.org)
Received: (from jeff@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id o0K9JIUI069901;
	Wed, 20 Jan 2010 09:19:18 GMT (envelope-from jeff@svn.freebsd.org)
Message-Id: <201001200919.o0K9JIUI069901@svn.freebsd.org>
From: Jeff Roberson <jeff@FreeBSD.org>
Date: Wed, 20 Jan 2010 09:19:18 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-projects@freebsd.org
X-SVN-Group: projects
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r202684 - in projects/suj/6/sys/ufs: ffs ufs
X-BeenThere: svn-src-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the src &quot; projects&quot;
	tree" <svn-src-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
	<mailto:svn-src-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-projects>
List-Post: <mailto:svn-src-projects@freebsd.org>
List-Help: <mailto:svn-src-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
	<mailto:svn-src-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Wed, 20 Jan 2010 09:19:19 -0000

Author: jeff
Date: Wed Jan 20 09:19:18 2010
New Revision: 202684
URL: http://svn.freebsd.org/changeset/base/202684

Log:
   - Reduce diffs with 7 to make the suj merge easier.

Modified:
  projects/suj/6/sys/ufs/ffs/ffs_alloc.c
  projects/suj/6/sys/ufs/ffs/ffs_balloc.c
  projects/suj/6/sys/ufs/ffs/ffs_extern.h
  projects/suj/6/sys/ufs/ffs/ffs_inode.c
  projects/suj/6/sys/ufs/ffs/ffs_snapshot.c
  projects/suj/6/sys/ufs/ffs/ffs_softdep.c
  projects/suj/6/sys/ufs/ffs/ffs_vfsops.c
  projects/suj/6/sys/ufs/ffs/fs.h
  projects/suj/6/sys/ufs/ufs/dinode.h
  projects/suj/6/sys/ufs/ufs/ufs_extern.h
  projects/suj/6/sys/ufs/ufs/ufs_lookup.c
  projects/suj/6/sys/ufs/ufs/ufs_vnops.c
  projects/suj/6/sys/ufs/ufs/ufsmount.h

Modified: projects/suj/6/sys/ufs/ffs/ffs_alloc.c
==============================================================================
--- projects/suj/6/sys/ufs/ffs/ffs_alloc.c	Wed Jan 20 09:18:33 2010	(r202683)
+++ projects/suj/6/sys/ufs/ffs/ffs_alloc.c	Wed Jan 20 09:19:18 2010	(r202684)
@@ -129,10 +129,10 @@ static int	ffs_reallocblks_ufs2(struct v
  *      available block is located.
  */
 int
-ffs_alloc(ip, lbn, bpref, size, cred, bnp)
+ffs_alloc(ip, lbn, bpref, size, flags, cred, bnp)
 	struct inode *ip;
 	ufs2_daddr_t lbn, bpref;
-	int size;
+	int size, flags;
 	struct ucred *cred;
 	ufs2_daddr_t *bnp;
 {
@@ -190,7 +190,10 @@ retry:
 			UFS_UNLOCK(ump);
 		}
 		DIP_SET(ip, i_blocks, DIP(ip, i_blocks) + delta);
-		ip->i_flag |= IN_CHANGE | IN_UPDATE;
+		if (flags & IO_EXT)
+			ip->i_flag |= IN_CHANGE;
+		else
+			ip->i_flag |= IN_CHANGE | IN_UPDATE;
 		*bnp = bno;
 		return (0);
 	}
@@ -226,12 +229,12 @@ nospace:
  * invoked to get an appropriate block.
  */
 int
-ffs_realloccg(ip, lbprev, bprev, bpref, osize, nsize, cred, bpp)
+ffs_realloccg(ip, lbprev, bprev, bpref, osize, nsize, flags, cred, bpp)
 	struct inode *ip;
 	ufs2_daddr_t lbprev;
 	ufs2_daddr_t bprev;
 	ufs2_daddr_t bpref;
-	int osize, nsize;
+	int osize, nsize, flags;
 	struct ucred *cred;
 	struct buf **bpp;
 {
@@ -316,7 +319,10 @@ retry:
 			UFS_UNLOCK(ump);
 		}
 		DIP_SET(ip, i_blocks, DIP(ip, i_blocks) + delta);
-		ip->i_flag |= IN_CHANGE | IN_UPDATE;
+		if (flags & IO_EXT)
+			ip->i_flag |= IN_CHANGE;
+		else
+			ip->i_flag |= IN_CHANGE | IN_UPDATE;
 		allocbuf(bp, nsize);
 		bp->b_flags |= B_DONE;
 		if ((bp->b_flags & (B_MALLOC | B_VMIO)) != B_VMIO)
@@ -391,7 +397,10 @@ retry:
 			UFS_UNLOCK(ump);
 		}
 		DIP_SET(ip, i_blocks, DIP(ip, i_blocks) + delta);
-		ip->i_flag |= IN_CHANGE | IN_UPDATE;
+		if (flags & IO_EXT)
+			ip->i_flag |= IN_CHANGE;
+		else
+			ip->i_flag |= IN_CHANGE | IN_UPDATE;
 		allocbuf(bp, nsize);
 		bp->b_flags |= B_DONE;
 		if ((bp->b_flags & (B_MALLOC | B_VMIO)) != B_VMIO)
@@ -920,7 +929,7 @@ ffs_valloc(pvp, mode, cred, vpp)
 	struct timespec ts;
 	struct ufsmount *ump;
 	ino_t ino, ipref;
-	int cg, error;
+	int cg, error, error1;
 	static struct timeval lastfail;
 	static int curfail;
 
@@ -1838,7 +1847,7 @@ ffs_blkfree(ump, fs, devvp, bno, size, i
 	struct cdev *dev;
 
 	cg = dtog(fs, bno);
-	if (devvp->v_type != VCHR) {
+	if (devvp->v_type == VREG) {
 		/* devvp is a snapshot */
 		dev = VTOI(devvp)->i_devvp->v_rdev;
 		cgblkno = fragstoblks(fs, cgtod(fs, cg));
@@ -1883,7 +1892,7 @@ ffs_blkfree(ump, fs, devvp, bno, size, i
 	if (size == fs->fs_bsize) {
 		fragno = fragstoblks(fs, cgbno);
 		if (!ffs_isfreeblock(fs, blksfree, fragno)) {
-			if (devvp->v_type != VCHR) {
+			if (devvp->v_type == VREG) {
 				UFS_UNLOCK(ump);
 				/* devvp is a snapshot */
 				brelse(bp);
@@ -2036,7 +2045,7 @@ ffs_freefile(ump, fs, devvp, ino, mode)
 	struct cdev *dev;
 
 	cg = ino_to_cg(fs, ino);
-	if (devvp->v_type != VCHR) {
+	if (devvp->v_type == VREG) {
 		/* devvp is a snapshot */
 		dev = VTOI(devvp)->i_devvp->v_rdev;
 		cgbno = fragstoblks(fs, cgtod(fs, cg));
@@ -2102,7 +2111,7 @@ ffs_checkfreefile(fs, devvp, ino)
 	u_int8_t *inosused;
 
 	cg = ino_to_cg(fs, ino);
-	if (devvp->v_type != VCHR) {
+	if (devvp->v_type == VREG) {
 		/* devvp is a snapshot */
 		cgbno = fragstoblks(fs, cgtod(fs, cg));
 	} else {

Modified: projects/suj/6/sys/ufs/ffs/ffs_balloc.c
==============================================================================
--- projects/suj/6/sys/ufs/ffs/ffs_balloc.c	Wed Jan 20 09:18:33 2010	(r202683)
+++ projects/suj/6/sys/ufs/ffs/ffs_balloc.c	Wed Jan 20 09:19:18 2010	(r202684)
@@ -133,7 +133,8 @@ ffs_balloc_ufs1(struct vnode *vp, off_t 
 			UFS_LOCK(ump);
 			error = ffs_realloccg(ip, nb, dp->di_db[nb],
 			   ffs_blkpref_ufs1(ip, lastlbn, (int)nb,
-			   &dp->di_db[0]), osize, (int)fs->fs_bsize, cred, &bp);
+			   &dp->di_db[0]), osize, (int)fs->fs_bsize, flags,
+			   cred, &bp);
 			if (error)
 				return (error);
 			if (DOINGSOFTDEP(vp))
@@ -184,7 +185,8 @@ ffs_balloc_ufs1(struct vnode *vp, off_t 
 				UFS_LOCK(ump);
 				error = ffs_realloccg(ip, lbn, dp->di_db[lbn],
 				    ffs_blkpref_ufs1(ip, lbn, (int)lbn,
-				    &dp->di_db[0]), osize, nsize, cred, &bp);
+				    &dp->di_db[0]), osize, nsize, flags,
+				    cred, &bp);
 				if (error)
 					return (error);
 				if (DOINGSOFTDEP(vp))
@@ -200,7 +202,7 @@ ffs_balloc_ufs1(struct vnode *vp, off_t 
 			UFS_LOCK(ump);
 			error = ffs_alloc(ip, lbn,
 			    ffs_blkpref_ufs1(ip, lbn, (int)lbn, &dp->di_db[0]),
-			    nsize, cred, &newb);
+			    nsize, flags, cred, &newb);
 			if (error)
 				return (error);
 			bp = getblk(vp, lbn, nsize, 0, 0, 0);
@@ -241,7 +243,7 @@ ffs_balloc_ufs1(struct vnode *vp, off_t 
 		UFS_LOCK(ump);
 		pref = ffs_blkpref_ufs1(ip, lbn, 0, (ufs1_daddr_t *)0);
 	        if ((error = ffs_alloc(ip, lbn, pref, (int)fs->fs_bsize,
-		    cred, &newb)) != 0) {
+		    flags, cred, &newb)) != 0) {
 			curthread->td_pflags &= saved_inbdflush;
 			return (error);
 		}
@@ -291,8 +293,8 @@ ffs_balloc_ufs1(struct vnode *vp, off_t 
 		UFS_LOCK(ump);
 		if (pref == 0)
 			pref = ffs_blkpref_ufs1(ip, lbn, 0, (ufs1_daddr_t *)0);
-		if ((error =
-		    ffs_alloc(ip, lbn, pref, (int)fs->fs_bsize, cred, &newb)) != 0) {
+		if ((error = ffs_alloc(ip, lbn, pref, (int)fs->fs_bsize,
+		    flags, cred, &newb)) != 0) {
 			brelse(bp);
 			goto fail;
 		}
@@ -346,7 +348,7 @@ ffs_balloc_ufs1(struct vnode *vp, off_t 
 		UFS_LOCK(ump);
 		pref = ffs_blkpref_ufs1(ip, lbn, indirs[i].in_off, &bap[0]);
 		error = ffs_alloc(ip,
-		    lbn, pref, (int)fs->fs_bsize, cred, &newb);
+		    lbn, pref, (int)fs->fs_bsize, flags, cred, &newb);
 		if (error) {
 			brelse(bp);
 			goto fail;
@@ -534,7 +536,7 @@ ffs_balloc_ufs2(struct vnode *vp, off_t 
 				    dp->di_extb[nb],
 				    ffs_blkpref_ufs2(ip, lastlbn, (int)nb,
 				    &dp->di_extb[0]), osize,
-				    (int)fs->fs_bsize, cred, &bp);
+				    (int)fs->fs_bsize, flags, cred, &bp);
 				if (error)
 					return (error);
 				if (DOINGSOFTDEP(vp))
@@ -545,7 +547,7 @@ ffs_balloc_ufs2(struct vnode *vp, off_t 
 				dp->di_extsize = smalllblktosize(fs, nb + 1);
 				dp->di_extb[nb] = dbtofsb(fs, bp->b_blkno);
 				bp->b_xflags |= BX_ALTDATA;
-				ip->i_flag |= IN_CHANGE | IN_UPDATE;
+				ip->i_flag |= IN_CHANGE;
 				if (flags & IO_SYNC)
 					bwrite(bp);
 				else
@@ -588,7 +590,8 @@ ffs_balloc_ufs2(struct vnode *vp, off_t 
 				error = ffs_realloccg(ip, -1 - lbn,
 				    dp->di_extb[lbn],
 				    ffs_blkpref_ufs2(ip, lbn, (int)lbn,
-				    &dp->di_extb[0]), osize, nsize, cred, &bp);
+				    &dp->di_extb[0]), osize, nsize, flags,
+				    cred, &bp);
 				if (error)
 					return (error);
 				bp->b_xflags |= BX_ALTDATA;
@@ -605,7 +608,7 @@ ffs_balloc_ufs2(struct vnode *vp, off_t 
 			UFS_LOCK(ump);
 			error = ffs_alloc(ip, lbn,
 			   ffs_blkpref_ufs2(ip, lbn, (int)lbn, &dp->di_extb[0]),
-			   nsize, cred, &newb);
+			   nsize, flags, cred, &newb);
 			if (error)
 				return (error);
 			bp = getblk(vp, -1 - lbn, nsize, 0, 0, 0);
@@ -618,7 +621,7 @@ ffs_balloc_ufs2(struct vnode *vp, off_t 
 				    nsize, 0, bp);
 		}
 		dp->di_extb[lbn] = dbtofsb(fs, bp->b_blkno);
-		ip->i_flag |= IN_CHANGE | IN_UPDATE;
+		ip->i_flag |= IN_CHANGE;
 		*bpp = bp;
 		return (0);
 	}
@@ -636,7 +639,7 @@ ffs_balloc_ufs2(struct vnode *vp, off_t 
 			error = ffs_realloccg(ip, nb, dp->di_db[nb],
 				ffs_blkpref_ufs2(ip, lastlbn, (int)nb,
 				    &dp->di_db[0]), osize, (int)fs->fs_bsize,
-				    cred, &bp);
+				    flags, cred, &bp);
 			if (error)
 				return (error);
 			if (DOINGSOFTDEP(vp))
@@ -688,7 +691,8 @@ ffs_balloc_ufs2(struct vnode *vp, off_t 
 				UFS_LOCK(ump);
 				error = ffs_realloccg(ip, lbn, dp->di_db[lbn],
 				    ffs_blkpref_ufs2(ip, lbn, (int)lbn,
-				       &dp->di_db[0]), osize, nsize, cred, &bp);
+				       &dp->di_db[0]), osize, nsize, flags,
+				    cred, &bp);
 				if (error)
 					return (error);
 				if (DOINGSOFTDEP(vp))
@@ -704,7 +708,7 @@ ffs_balloc_ufs2(struct vnode *vp, off_t 
 			UFS_LOCK(ump);
 			error = ffs_alloc(ip, lbn,
 			    ffs_blkpref_ufs2(ip, lbn, (int)lbn,
-				&dp->di_db[0]), nsize, cred, &newb);
+				&dp->di_db[0]), nsize, flags, cred, &newb);
 			if (error)
 				return (error);
 			bp = getblk(vp, lbn, nsize, 0, 0, 0);
@@ -745,7 +749,7 @@ ffs_balloc_ufs2(struct vnode *vp, off_t 
 		UFS_LOCK(ump);
 		pref = ffs_blkpref_ufs2(ip, lbn, 0, (ufs2_daddr_t *)0);
 	        if ((error = ffs_alloc(ip, lbn, pref, (int)fs->fs_bsize,
-		    cred, &newb)) != 0) {
+		    flags, cred, &newb)) != 0) {
 			curthread->td_pflags &= saved_inbdflush;
 			return (error);
 		}
@@ -795,8 +799,8 @@ ffs_balloc_ufs2(struct vnode *vp, off_t 
 		UFS_LOCK(ump);
 		if (pref == 0)
 			pref = ffs_blkpref_ufs2(ip, lbn, 0, (ufs2_daddr_t *)0);
-		if ((error =
-		    ffs_alloc(ip, lbn, pref, (int)fs->fs_bsize, cred, &newb)) != 0) {
+		if ((error = ffs_alloc(ip, lbn, pref, (int)fs->fs_bsize,
+		    flags, cred, &newb)) != 0) {
 			brelse(bp);
 			goto fail;
 		}
@@ -850,7 +854,7 @@ ffs_balloc_ufs2(struct vnode *vp, off_t 
 		UFS_LOCK(ump);
 		pref = ffs_blkpref_ufs2(ip, lbn, indirs[i].in_off, &bap[0]);
 		error = ffs_alloc(ip,
-		    lbn, pref, (int)fs->fs_bsize, cred, &newb);
+		    lbn, pref, (int)fs->fs_bsize, flags, cred, &newb);
 		if (error) {
 			brelse(bp);
 			goto fail;

Modified: projects/suj/6/sys/ufs/ffs/ffs_extern.h
==============================================================================
--- projects/suj/6/sys/ufs/ffs/ffs_extern.h	Wed Jan 20 09:18:33 2010	(r202683)
+++ projects/suj/6/sys/ufs/ffs/ffs_extern.h	Wed Jan 20 09:19:18 2010	(r202684)
@@ -48,8 +48,8 @@ struct vnode;
 struct vop_fsync_args;
 struct vop_reallocblks_args;
 
-int	ffs_alloc(struct inode *,
-	    ufs2_daddr_t, ufs2_daddr_t, int, struct ucred *, ufs2_daddr_t *);
+int	ffs_alloc(struct inode *, ufs2_daddr_t, ufs2_daddr_t, int, int,
+	    struct ucred *, ufs2_daddr_t *);
 int	ffs_balloc_ufs1(struct vnode *a_vp, off_t a_startoffset, int a_size,
             struct ucred *a_cred, int a_flags, struct buf **a_bpp);
 int	ffs_balloc_ufs2(struct vnode *a_vp, off_t a_startoffset, int a_size,
@@ -72,13 +72,15 @@ void	ffs_load_inode(struct buf *, struct
 int	ffs_mountroot(void);
 int	ffs_reallocblks(struct vop_reallocblks_args *);
 int	ffs_realloccg(struct inode *, ufs2_daddr_t, ufs2_daddr_t,
-	    ufs2_daddr_t, int, int, struct ucred *, struct buf **);
+	    ufs2_daddr_t, int, int, int, struct ucred *, struct buf **);
+int	ffs_sbupdate(struct ufsmount *, int, int);
 void	ffs_setblock(struct fs *, u_char *, ufs1_daddr_t);
 int	ffs_snapblkfree(struct fs *, struct vnode *, ufs2_daddr_t, long, ino_t);
 void	ffs_snapremove(struct vnode *vp);
 int	ffs_snapshot(struct mount *mp, char *snapfile);
 void	ffs_snapshot_mount(struct mount *mp);
 void	ffs_snapshot_unmount(struct mount *mp);
+void	process_deferred_inactive(struct mount *mp);
 int	ffs_syncvnode(struct vnode *vp, int waitfor);
 int	ffs_truncate(struct vnode *, off_t, int, struct ucred *, struct thread *);
 int	ffs_update(struct vnode *, int);

Modified: projects/suj/6/sys/ufs/ffs/ffs_inode.c
==============================================================================
--- projects/suj/6/sys/ufs/ffs/ffs_inode.c	Wed Jan 20 09:18:33 2010	(r202683)
+++ projects/suj/6/sys/ufs/ffs/ffs_inode.c	Wed Jan 20 09:19:18 2010	(r202684)
@@ -48,6 +48,7 @@ __FBSDID("$FreeBSD$");
 
 #include <vm/vm.h>
 #include <vm/vm_extern.h>
+#include <vm/vm_object.h>
 
 #include <ufs/ufs/extattr.h>
 #include <ufs/ufs/quota.h>
@@ -128,6 +129,18 @@ ffs_update(vp, waitfor)
 	}
 }
 
+static void
+ffs_pages_remove(struct vnode *vp, vm_pindex_t start, vm_pindex_t end)
+{
+	vm_object_t object;
+
+	if ((object = vp->v_object) == NULL)
+		return;
+	VM_OBJECT_LOCK(object);
+	vm_object_page_remove(object, start, end, FALSE);
+	VM_OBJECT_UNLOCK(object);
+}
+
 #define	SINGLE	0	/* index of single indirect block */
 #define	DOUBLE	1	/* index of double indirect block */
 #define	TRIPLE	2	/* index of triple indirect block */
@@ -203,12 +216,14 @@ ffs_truncate(vp, length, flags, cred, td
 			(void) chkdq(ip, -extblocks, NOCRED, 0);
 #endif
 			vinvalbuf(vp, V_ALT, td, 0, 0);
+			ffs_pages_remove(vp,
+			    OFF_TO_IDX(lblktosize(fs, -extblocks)), 0);
 			ip->i_din2->di_extsize = 0;
 			for (i = 0; i < NXADDR; i++) {
 				oldblks[i] = ip->i_din2->di_extb[i];
 				ip->i_din2->di_extb[i] = 0;
 			}
-			ip->i_flag |= IN_CHANGE | IN_UPDATE;
+			ip->i_flag |= IN_CHANGE;
 			if ((error = ffs_update(vp, 1)))
 				return (error);
 			for (i = 0; i < NXADDR; i++) {
@@ -279,6 +294,9 @@ ffs_truncate(vp, length, flags, cred, td
 			    IO_EXT | IO_NORMAL : IO_NORMAL);
 			ASSERT_VOP_LOCKED(vp, "ffs_truncate1");
 			vinvalbuf(vp, needextclean ? 0 : V_NORMAL, td, 0, 0);
+			if (!needextclean)
+				ffs_pages_remove(vp, 0,
+				    OFF_TO_IDX(lblktosize(fs, -extblocks)));
 			vnode_pager_setsize(vp, 0);
 			ip->i_flag |= IN_CHANGE | IN_UPDATE;
 			return (ffs_update(vp, 0));
@@ -294,8 +312,10 @@ ffs_truncate(vp, length, flags, cred, td
 		vnode_pager_setsize(vp, length);
 		flags |= BA_CLRBUF;
 		error = UFS_BALLOC(vp, length - 1, 1, cred, flags, &bp);
-		if (error)
+		if (error) {
+			vnode_pager_setsize(vp, osize);
 			return (error);
+		}
 		ip->i_size = length;
 		DIP_SET(ip, i_size, length);
 		if (bp->b_bufsize == fs->fs_bsize)
@@ -559,7 +579,7 @@ ffs_indirtrunc(ip, lbn, dbn, lastbn, lev
 	vp = ITOV(ip);
 	bp = getblk(vp, lbn, (int)fs->fs_bsize, 0, 0, 0);
 	if ((bp->b_flags & B_CACHE) == 0) {
-		curproc->p_stats->p_ru.ru_inblock++;	/* pay for read */
+		curproc->p_ru->ru_inblock++;	/* pay for read */
 		bp->b_iocmd = BIO_READ;
 		bp->b_flags &= ~B_INVAL;
 		bp->b_ioflags &= ~BIO_ERROR;

Modified: projects/suj/6/sys/ufs/ffs/ffs_snapshot.c
==============================================================================
--- projects/suj/6/sys/ufs/ffs/ffs_snapshot.c	Wed Jan 20 09:18:33 2010	(r202683)
+++ projects/suj/6/sys/ufs/ffs/ffs_snapshot.c	Wed Jan 20 09:19:18 2010	(r202684)
@@ -161,7 +161,6 @@ static int snapacct_ufs2(struct vnode *,
 static int mapacct_ufs2(struct vnode *, ufs2_daddr_t *, ufs2_daddr_t *,
     struct fs *, ufs_lbn_t, int);
 static int readblock(struct vnode *vp, struct buf *, ufs2_daddr_t);
-static void process_deferred_inactive(struct mount *);
 static void try_free_snapdata(struct vnode *devvp, struct thread *td);
 static int ffs_bp_snapblk(struct vnode *, struct buf *);
 
@@ -2417,7 +2416,7 @@ readblock(vp, bp, lbn)
  * the file system being suspended. Transfer IN_LAZYACCESS into
  * IN_MODIFIED for vnodes that were accessed during suspension.
  */
-static void
+void
 process_deferred_inactive(struct mount *mp)
 {
 	struct vnode *vp, *mvp;

Modified: projects/suj/6/sys/ufs/ffs/ffs_softdep.c
==============================================================================
--- projects/suj/6/sys/ufs/ffs/ffs_softdep.c	Wed Jan 20 09:18:33 2010	(r202683)
+++ projects/suj/6/sys/ufs/ffs/ffs_softdep.c	Wed Jan 20 09:19:18 2010	(r202684)
@@ -635,7 +635,7 @@ workitem_free(item, type)
 	ump = VFSTOUFS(item->wk_mp);
 	if (--ump->softdep_deps == 0 && ump->softdep_req)
 		wakeup(&ump->softdep_deps);
-	FREE(item, DtoM(type));
+	free(item, DtoM(type));
 }
 
 static void
@@ -866,6 +866,7 @@ softdep_process_worklist(mp, full)
 		 */
 		if (loopcount++ % 128 == 0) {
 			FREE_LOCK(&lk);
+			uio_yield();
 			bwillwrite();
 			ACQUIRE_LOCK(&lk);
 		}
@@ -1076,8 +1077,11 @@ softdep_flushfiles(oldmnt, flags, td)
 	int flags;
 	struct thread *td;
 {
-	int error, count, loopcnt;
+	int error, depcount, loopcnt, retry_flush_count, retry;
 
+	loopcnt = 10;
+	retry_flush_count = 3;
+retry_flush:
 	error = 0;
 
 	/*
@@ -1086,15 +1090,15 @@ softdep_flushfiles(oldmnt, flags, td)
 	 * creates. In theory, this loop can happen at most twice,
 	 * but we give it a few extra just to be sure.
 	 */
-	for (loopcnt = 10; loopcnt > 0; loopcnt--) {
+	for (; loopcnt > 0; loopcnt--) {
 		/*
 		 * Do another flush in case any vnodes were brought in
 		 * as part of the cleanup operations.
 		 */
 		if ((error = ffs_flushfiles(oldmnt, flags, td)) != 0)
 			break;
-		if ((error = softdep_flushworklist(oldmnt, &count, td)) != 0 ||
-		    count == 0)
+		if ((error = softdep_flushworklist(oldmnt, &depcount, td)) != 0 ||
+		    depcount == 0)
 			break;
 	}
 	/*
@@ -1200,7 +1204,7 @@ pagedep_lookup(ip, lbn, flags, pagedeppp
 	if (*pagedeppp || (flags & DEPALLOC) == 0)
 		return (ret);
 	FREE_LOCK(&lk);
-	MALLOC(pagedep, struct pagedep *, sizeof(struct pagedep),
+	pagedep = malloc(sizeof(struct pagedep),
 	    M_PAGEDEP, M_SOFTDEP_FLAGS|M_ZERO);
 	workitem_alloc(&pagedep->pd_list, D_PAGEDEP, mp);
 	ACQUIRE_LOCK(&lk);
@@ -1280,7 +1284,7 @@ inodedep_lookup(mp, inum, flags, inodede
 	if (num_inodedep > max_softdeps && (flags & NODELAY) == 0)
 		request_cleanup(mp, FLUSH_INODES);
 	FREE_LOCK(&lk);
-	MALLOC(inodedep, struct inodedep *, sizeof(struct inodedep),
+	inodedep = malloc(sizeof(struct inodedep),
 		M_INODEDEP, M_SOFTDEP_FLAGS);
 	workitem_alloc(&inodedep->id_list, D_INODEDEP, mp);
 	ACQUIRE_LOCK(&lk);
@@ -1358,11 +1362,11 @@ newblk_lookup(fs, newblkno, flags, newbl
 	if ((flags & DEPALLOC) == 0)
 		return (0);
 	FREE_LOCK(&lk);
-	MALLOC(newblk, struct newblk *, sizeof(struct newblk),
+	newblk = malloc(sizeof(struct newblk),
 		M_NEWBLK, M_SOFTDEP_FLAGS);
 	ACQUIRE_LOCK(&lk);
 	if (newblk_find(newblkhd, fs, newblkno, newblkpp)) {
-		FREE(newblk, M_NEWBLK);
+		free(newblk, M_NEWBLK);
 		return (1);
 	}
 	newblk->nb_state = 0;
@@ -1575,7 +1579,7 @@ bmsafemap_lookup(mp, bp)
 		if (wk->wk_type == D_BMSAFEMAP)
 			return (WK_BMSAFEMAP(wk));
 	FREE_LOCK(&lk);
-	MALLOC(bmsafemap, struct bmsafemap *, sizeof(struct bmsafemap),
+	bmsafemap = malloc(sizeof(struct bmsafemap),
 		M_BMSAFEMAP, M_SOFTDEP_FLAGS);
 	workitem_alloc(&bmsafemap->sm_list, D_BMSAFEMAP, mp);
 	bmsafemap->sm_buf = bp;
@@ -1636,7 +1640,7 @@ softdep_setup_allocdirect(ip, lbn, newbl
 	struct mount *mp;
 
 	mp = UFSTOVFS(ip->i_ump);
-	MALLOC(adp, struct allocdirect *, sizeof(struct allocdirect),
+	adp = malloc(sizeof(struct allocdirect),
 		M_ALLOCDIRECT, M_SOFTDEP_FLAGS|M_ZERO);
 	workitem_alloc(&adp->ad_list, D_ALLOCDIRECT, mp);
 	adp->ad_lbn = lbn;
@@ -1680,7 +1684,7 @@ softdep_setup_allocdirect(ip, lbn, newbl
 		LIST_INSERT_HEAD(&bmsafemap->sm_allocdirecthd, adp, ad_deps);
 	}
 	LIST_REMOVE(newblk, nb_hash);
-	FREE(newblk, M_NEWBLK);
+	free(newblk, M_NEWBLK);
 
 	inodedep_lookup(mp, ip->i_number, DEPALLOC | NODELAY, &inodedep);
 	adp->ad_inodedep = inodedep;
@@ -1797,7 +1801,7 @@ newfreefrag(ip, blkno, size)
 	fs = ip->i_fs;
 	if (fragnum(fs, blkno) + numfrags(fs, size) > fs->fs_frag)
 		panic("newfreefrag: frag size");
-	MALLOC(freefrag, struct freefrag *, sizeof(struct freefrag),
+	freefrag = malloc(sizeof(struct freefrag),
 		M_FREEFRAG, M_SOFTDEP_FLAGS);
 	workitem_alloc(&freefrag->ff_list, D_FREEFRAG, UFSTOVFS(ip->i_ump));
 	freefrag->ff_inum = ip->i_number;
@@ -1846,7 +1850,7 @@ softdep_setup_allocext(ip, lbn, newblkno
 	struct mount *mp;
 
 	mp = UFSTOVFS(ip->i_ump);
-	MALLOC(adp, struct allocdirect *, sizeof(struct allocdirect),
+	adp = malloc(sizeof(struct allocdirect),
 		M_ALLOCDIRECT, M_SOFTDEP_FLAGS|M_ZERO);
 	workitem_alloc(&adp->ad_list, D_ALLOCDIRECT, mp);
 	adp->ad_lbn = lbn;
@@ -1878,7 +1882,7 @@ softdep_setup_allocext(ip, lbn, newblkno
 		LIST_INSERT_HEAD(&bmsafemap->sm_allocdirecthd, adp, ad_deps);
 	}
 	LIST_REMOVE(newblk, nb_hash);
-	FREE(newblk, M_NEWBLK);
+	free(newblk, M_NEWBLK);
 
 	WORKLIST_INSERT(&bp->b_dep, &adp->ad_list);
 	if (lbn >= NXADDR)
@@ -1956,7 +1960,7 @@ newallocindir(ip, ptrno, newblkno, oldbl
 {
 	struct allocindir *aip;
 
-	MALLOC(aip, struct allocindir *, sizeof(struct allocindir),
+	aip = malloc(sizeof(struct allocindir),
 		M_ALLOCINDIR, M_SOFTDEP_FLAGS|M_ZERO);
 	workitem_alloc(&aip->ai_list, D_ALLOCINDIR, UFSTOVFS(ip->i_ump));
 	aip->ai_state = ATTACHED;
@@ -2070,7 +2074,7 @@ setup_allocindir_phase2(bp, ip, aip)
 				    aip, ai_deps);
 			}
 			LIST_REMOVE(newblk, nb_hash);
-			FREE(newblk, M_NEWBLK);
+			free(newblk, M_NEWBLK);
 			aip->ai_indirdep = indirdep;
 			/*
 			 * Check to see if there is an existing dependency
@@ -2119,7 +2123,7 @@ setup_allocindir_phase2(bp, ip, aip)
 			ACQUIRE_LOCK(&lk);
 			break;
 		}
-		MALLOC(newindirdep, struct indirdep *, sizeof(struct indirdep),
+		newindirdep = malloc(sizeof(struct indirdep),
 			M_INDIRDEP, M_SOFTDEP_FLAGS);
 		workitem_alloc(&newindirdep->ir_list, D_INDIRDEP,
 		    UFSTOVFS(ip->i_ump));
@@ -2190,7 +2194,7 @@ softdep_setup_freeblocks(ip, length, fla
 	mp = UFSTOVFS(ip->i_ump);
 	if (length != 0)
 		panic("softdep_setup_freeblocks: non-zero length");
-	MALLOC(freeblks, struct freeblks *, sizeof(struct freeblks),
+	freeblks = malloc(sizeof(struct freeblks),
 		M_FREEBLKS, M_SOFTDEP_FLAGS|M_ZERO);
 	workitem_alloc(&freeblks->fb_list, D_FREEBLKS, mp);
 	freeblks->fb_state = ATTACHED;
@@ -2573,7 +2577,7 @@ softdep_freefile(pvp, ino, mode)
 	/*
 	 * This sets up the inode de-allocation dependency.
 	 */
-	MALLOC(freefile, struct freefile *, sizeof(struct freefile),
+	freefile = malloc(sizeof(struct freefile),
 		M_FREEFILE, M_SOFTDEP_FLAGS);
 	workitem_alloc(&freefile->fx_list, D_FREEFILE, pvp->v_mount);
 	freefile->fx_mode = mode;
@@ -2600,7 +2604,8 @@ softdep_freefile(pvp, ino, mode)
 	}
 	WORKLIST_INSERT(&inodedep->id_inowait, &freefile->fx_list);
 	FREE_LOCK(&lk);
-	ip->i_flag |= IN_MODIFIED;
+	if (ip->i_number == ino)
+		ip->i_flag |= IN_MODIFIED;
 }
 
 /*
@@ -2649,7 +2654,7 @@ check_inode_unwritten(inodedep)
 	if (inodedep->id_state & ONWORKLIST)
 		WORKLIST_REMOVE(&inodedep->id_list);
 	if (inodedep->id_savedino1 != NULL) {
-		FREE(inodedep->id_savedino1, M_SAVEDINO);
+		free(inodedep->id_savedino1, M_SAVEDINO);
 		inodedep->id_savedino1 = NULL;
 	}
 	if (free_inodedep(inodedep) == 0)
@@ -2986,14 +2991,14 @@ softdep_setup_directory_add(bp, dp, diro
 	fs = dp->i_fs;
 	lbn = lblkno(fs, diroffset);
 	offset = blkoff(fs, diroffset);
-	MALLOC(dap, struct diradd *, sizeof(struct diradd), M_DIRADD,
+	dap = malloc(sizeof(struct diradd), M_DIRADD,
 		M_SOFTDEP_FLAGS|M_ZERO);
 	workitem_alloc(&dap->da_list, D_DIRADD, mp);
 	dap->da_offset = offset;
 	dap->da_newinum = newinum;
 	dap->da_state = ATTACHED;
 	if (isnewblk && lbn < NDADDR && fragoff(fs, diroffset) == 0) {
-		MALLOC(newdirblk, struct newdirblk *, sizeof(struct newdirblk),
+		newdirblk = malloc(sizeof(struct newdirblk),
 		    M_NEWDIRBLK, M_SOFTDEP_FLAGS);
 		workitem_alloc(&newdirblk->db_list, D_NEWDIRBLK, mp);
 	}
@@ -3002,12 +3007,12 @@ softdep_setup_directory_add(bp, dp, diro
 		ACQUIRE_LOCK(&lk);
 	} else {
 		dap->da_state |= MKDIR_BODY | MKDIR_PARENT;
-		MALLOC(mkdir1, struct mkdir *, sizeof(struct mkdir), M_MKDIR,
+		mkdir1 = malloc(sizeof(struct mkdir), M_MKDIR,
 		    M_SOFTDEP_FLAGS);
 		workitem_alloc(&mkdir1->md_list, D_MKDIR, mp);
 		mkdir1->md_state = MKDIR_BODY;
 		mkdir1->md_diradd = dap;
-		MALLOC(mkdir2, struct mkdir *, sizeof(struct mkdir), M_MKDIR,
+		mkdir2 = malloc(sizeof(struct mkdir), M_MKDIR,
 		    M_SOFTDEP_FLAGS);
 		workitem_alloc(&mkdir2->md_list, D_MKDIR, mp);
 		mkdir2->md_state = MKDIR_PARENT;
@@ -3284,11 +3289,11 @@ newdirrem(bp, dp, ip, isrmdir, prevdirre
 	 * the number of freefile and freeblks structures.
 	 */
 	ACQUIRE_LOCK(&lk);
-	if (num_dirrem > max_softdeps / 2)
+	if (!(ip->i_flags & SF_SNAPSHOT) && num_dirrem > max_softdeps / 2)
 		(void) request_cleanup(ITOV(dp)->v_mount, FLUSH_REMOVE);
 	num_dirrem += 1;
 	FREE_LOCK(&lk);
-	MALLOC(dirrem, struct dirrem *, sizeof(struct dirrem),
+	dirrem = malloc(sizeof(struct dirrem),
 		M_DIRREM, M_SOFTDEP_FLAGS|M_ZERO);
 	workitem_alloc(&dirrem->dm_list, D_DIRREM, ITOV(dp)->v_mount);
 	dirrem->dm_state = isrmdir ? RMDIR : 0;
@@ -3385,7 +3390,7 @@ softdep_setup_directory_change(bp, dp, i
 	 * Whiteouts do not need diradd dependencies.
 	 */
 	if (newinum != WINO) {
-		MALLOC(dap, struct diradd *, sizeof(struct diradd),
+		dap = malloc(sizeof(struct diradd),
 		    M_DIRADD, M_SOFTDEP_FLAGS|M_ZERO);
 		workitem_alloc(&dap->da_list, D_DIRADD, mp);
 		dap->da_state = DIRCHG | ATTACHED | DEPCOMPLETE;
@@ -3787,7 +3792,7 @@ softdep_disk_io_initiation(bp)
 			 * Replace up-to-date version with safe version.
 			 */
 			FREE_LOCK(&lk);
-			MALLOC(indirdep->ir_saveddata, caddr_t, bp->b_bcount,
+			indirdep->ir_saveddata = malloc(bp->b_bcount,
 			    M_INDIRDEP, M_SOFTDEP_FLAGS);
 			ACQUIRE_LOCK(&lk);
 			indirdep->ir_state &= ~ATTACHED;
@@ -3895,8 +3900,8 @@ initiate_write_inodeblock_ufs1(inodedep,
 		if (inodedep->id_savedino1 != NULL)
 			panic("initiate_write_inodeblock_ufs1: I/O underway");
 		FREE_LOCK(&lk);
-		MALLOC(sip, struct ufs1_dinode *,
-		    sizeof(struct ufs1_dinode), M_SAVEDINO, M_SOFTDEP_FLAGS);
+		sip = malloc(sizeof(struct ufs1_dinode),
+		    M_SAVEDINO, M_SOFTDEP_FLAGS);
 		ACQUIRE_LOCK(&lk);
 		inodedep->id_savedino1 = sip;
 		*inodedep->id_savedino1 = *dp;
@@ -4041,8 +4046,8 @@ initiate_write_inodeblock_ufs2(inodedep,
 		if (inodedep->id_savedino2 != NULL)
 			panic("initiate_write_inodeblock_ufs2: I/O underway");
 		FREE_LOCK(&lk);
-		MALLOC(sip, struct ufs2_dinode *,
-		    sizeof(struct ufs2_dinode), M_SAVEDINO, M_SOFTDEP_FLAGS);
+		sip = malloc(sizeof(struct ufs2_dinode),
+		    M_SAVEDINO, M_SOFTDEP_FLAGS);
 		ACQUIRE_LOCK(&lk);
 		inodedep->id_savedino2 = sip;
 		*inodedep->id_savedino2 = *dp;
@@ -4310,7 +4315,7 @@ softdep_disk_write_complete(bp)
 			if (indirdep->ir_state & GOINGAWAY)
 				panic("disk_write_complete: indirdep gone");
 			bcopy(indirdep->ir_saveddata, bp->b_data, bp->b_bcount);
-			FREE(indirdep->ir_saveddata, M_INDIRDEP);
+			free(indirdep->ir_saveddata, M_INDIRDEP);
 			indirdep->ir_saveddata = 0;
 			indirdep->ir_state &= ~UNDONE;
 			indirdep->ir_state |= ATTACHED;
@@ -4497,7 +4502,7 @@ handle_written_inodeblock(inodedep, bp)
 			*dp1 = *inodedep->id_savedino1;
 		else
 			*dp2 = *inodedep->id_savedino2;
-		FREE(inodedep->id_savedino1, M_SAVEDINO);
+		free(inodedep->id_savedino1, M_SAVEDINO);
 		inodedep->id_savedino1 = NULL;
 		if ((bp->b_flags & B_DELWRI) == 0)
 			stat_inode_bitmap++;
@@ -6301,4 +6306,30 @@ softdep_error(func, error)
 	printf("%s: got error %d while accessing filesystem\n", func, error);
 }
 
+#ifdef DDB
+
+DB_SHOW_COMMAND(inodedeps, db_show_inodedeps)
+{
+	struct inodedep_hashhead *inodedephd;
+	struct inodedep *inodedep;
+	struct fs *fs;
+	int cnt;
+
+	fs = have_addr ? (struct fs *)addr : NULL;
+	for (cnt = 0; cnt < inodedep_hash; cnt++) {
+		inodedephd = &inodedep_hashtbl[cnt];
+		LIST_FOREACH(inodedep, inodedephd, id_hash) {
+			if (fs != NULL && fs != inodedep->id_fs)
+				continue;
+			db_printf("%p fs %p st %x ino %jd inoblk %jd\n",
+			    inodedep, inodedep->id_fs, inodedep->id_state,
+			    (intmax_t)inodedep->id_ino,
+			    (intmax_t)fsbtodb(inodedep->id_fs,
+			    ino_to_fsba(inodedep->id_fs, inodedep->id_ino)));
+		}
+	}
+}
+
+#endif /* DDB */
+
 #endif /* SOFTUPDATES */

Modified: projects/suj/6/sys/ufs/ffs/ffs_vfsops.c
==============================================================================
--- projects/suj/6/sys/ufs/ffs/ffs_vfsops.c	Wed Jan 20 09:18:33 2010	(r202683)
+++ projects/suj/6/sys/ufs/ffs/ffs_vfsops.c	Wed Jan 20 09:19:18 2010	(r202684)
@@ -70,7 +70,6 @@ __FBSDID("$FreeBSD$");
 
 static uma_zone_t uma_inode, uma_ufs1, uma_ufs2;
 
-static int	ffs_sbupdate(struct ufsmount *, int, int);
 static int	ffs_reload(struct mount *, struct thread *);
 static int	ffs_mountfs(struct vnode *, struct mount *, struct thread *);
 static void	ffs_oldfscompat_read(struct fs *, struct ufsmount *,
@@ -1472,7 +1471,7 @@ ffs_uninit(vfsp)
 /*
  * Write a superblock and associated information back to disk.
  */
-static int
+int
 ffs_sbupdate(mp, waitfor, suspended)
 	struct ufsmount *mp;
 	int waitfor;

Modified: projects/suj/6/sys/ufs/ffs/fs.h
==============================================================================
--- projects/suj/6/sys/ufs/ffs/fs.h	Wed Jan 20 09:18:33 2010	(r202683)
+++ projects/suj/6/sys/ufs/ffs/fs.h	Wed Jan 20 09:19:18 2010	(r202684)
@@ -392,22 +392,24 @@ CTASSERT(sizeof(struct fs) == 1376);
  * flag to indicate that the indicies need to be rebuilt (by fsck) before
  * they can be used.
  *
- * FS_ACLS indicates that ACLs are administratively enabled for the
- * file system, so they should be loaded from extended attributes,
+ * FS_ACLS indicates that POSIX.1e ACLs are administratively enabled
+ * for the file system, so they should be loaded from extended attributes,
  * observed for access control purposes, and be administered by object
- * owners.  FS_MULTILABEL indicates that the TrustedBSD MAC Framework
- * should attempt to back MAC labels into extended attributes on the
- * file system rather than maintain a single mount label for all
- * objects.
- */
-#define FS_UNCLEAN    0x01	/* filesystem not clean at mount */
-#define FS_DOSOFTDEP  0x02	/* filesystem using soft dependencies */
-#define FS_NEEDSFSCK  0x04	/* filesystem needs sync fsck before mount */
-#define FS_INDEXDIRS  0x08	/* kernel supports indexed directories */
-#define FS_ACLS       0x10	/* file system has ACLs enabled */
-#define FS_MULTILABEL 0x20	/* file system is MAC multi-label */
-#define FS_GJOURNAL   0x40	/* reserved for FreeBSD 7.0 and later */
-#define FS_FLAGS_UPDATED 0x80	/* flags have been moved to new location */
+ * owners.  FS_NFS4ACLS indicates that NFSv4 ACLs are administratively
+ * enabled.  This flag is mutually exclusive with FS_ACLS.  FS_MULTILABEL
+ * indicates that the TrustedBSD MAC Framework should attempt to back MAC
+ * labels into extended attributes on the file system rather than maintain
+ * a single mount label for all objects.
+ */
+#define FS_UNCLEAN	0x0001	/* filesystem not clean at mount */
+#define FS_DOSOFTDEP	0x0002	/* filesystem using soft dependencies */
+#define FS_NEEDSFSCK	0x0004	/* filesystem needs sync fsck before mount */
+#define FS_INDEXDIRS	0x0008	/* kernel supports indexed directories */
+#define FS_ACLS		0x0010	/* file system has POSIX.1e ACLs enabled */
+#define FS_MULTILABEL	0x0020	/* file system is MAC multi-label */
+#define FS_GJOURNAL	0x0040	/* gjournaled file system */
+#define FS_FLAGS_UPDATED 0x0080	/* flags have been moved to new location */
+#define FS_NFS4ACLS	0x0100	/* file system has NFSv4 ACLs enabled */
 
 /*
  * Macros to access bits in the fs_active array.

Modified: projects/suj/6/sys/ufs/ufs/dinode.h
==============================================================================
--- projects/suj/6/sys/ufs/ufs/dinode.h	Wed Jan 20 09:18:33 2010	(r202683)
+++ projects/suj/6/sys/ufs/ufs/dinode.h	Wed Jan 20 09:19:18 2010	(r202684)
@@ -145,7 +145,8 @@ struct ufs2_dinode {
 	ufs2_daddr_t	di_extb[NXADDR];/*  96: External attributes block. */
 	ufs2_daddr_t	di_db[NDADDR];	/* 112: Direct disk blocks. */
 	ufs2_daddr_t	di_ib[NIADDR];	/* 208: Indirect disk blocks. */
-	int64_t		di_spare[3];	/* 232: Reserved; currently unused */
+	u_int64_t	di_modrev;	/* 232: i_modrev for NFSv4 */
+	int64_t		di_spare[2];	/* 240: Reserved; currently unused */
 };
 
 /*
@@ -183,7 +184,7 @@ struct ufs1_dinode {
 	int32_t		di_gen;		/* 108: Generation number. */
 	u_int32_t	di_uid;		/* 112: File owner. */
 	u_int32_t	di_gid;		/* 116: File group. */
-	int32_t		di_spare[2];	/* 120: Reserved; currently unused */
+	u_int64_t	di_modrev;	/* 120: i_modrev for NFSv4 */
 };
 #define	di_ogid		di_u.oldids[1]
 #define	di_ouid		di_u.oldids[0]

Modified: projects/suj/6/sys/ufs/ufs/ufs_extern.h
==============================================================================
--- projects/suj/6/sys/ufs/ufs/ufs_extern.h	Wed Jan 20 09:18:33 2010	(r202683)
+++ projects/suj/6/sys/ufs/ufs/ufs_extern.h	Wed Jan 20 09:19:18 2010	(r202684)
@@ -58,7 +58,7 @@ int	 ufs_bmap(struct vop_bmap_args *);
 int	 ufs_bmaparray(struct vnode *, ufs2_daddr_t, ufs2_daddr_t *,
 	    struct buf *, int *, int *);
 int	 ufs_fhtovp(struct mount *, struct ufid *, struct vnode **);
-int	 ufs_checkpath(struct inode *, struct inode *, struct ucred *);
+int	 ufs_checkpath(ino_t, struct inode *, struct ucred *);
 void	 ufs_dirbad(struct inode *, doff_t, char *);
 int	 ufs_dirbadentry(struct vnode *, struct direct *, int);
 int	 ufs_dirempty(struct inode *, ino_t, struct ucred *);

Modified: projects/suj/6/sys/ufs/ufs/ufs_lookup.c
==============================================================================
--- projects/suj/6/sys/ufs/ufs/ufs_lookup.c	Wed Jan 20 09:18:33 2010	(r202683)
+++ projects/suj/6/sys/ufs/ufs/ufs_lookup.c	Wed Jan 20 09:19:18 2010	(r202684)
@@ -77,6 +77,9 @@ SYSCTL_INT(_debug, OID_AUTO, dircheck, C
 /* true if old FS format...*/
 #define OFSFMT(vp)	((vp)->v_mount->mnt_maxsymlinklen <= 0)
 
+static int ufs_lookup_(struct vnode *, struct vnode **, struct componentname *,
+    ino_t *);
+
 /*
  * Convert a component of a pathname into a pointer to a locked inode.
  * This is a very central and rather complicated routine.
@@ -130,13 +133,22 @@ ufs_lookup(ap)
 		struct componentname *a_cnp;
 	} */ *ap;
 {
-	struct vnode *vdp;		/* vnode for directory being searched */
+
+	return (ufs_lookup_(ap->a_dvp, ap->a_vpp, ap->a_cnp, NULL));
+}
+
+static int
+ufs_lookup_(struct vnode *vdp, struct vnode **vpp, struct componentname *cnp,
+    ino_t *dd_ino)
+{
 	struct inode *dp;		/* inode for directory being searched */
 	struct buf *bp;			/* a buffer of directory entries */
 	struct direct *ep;		/* the current directory entry */
 	int entryoffsetinblock;		/* offset of ep in bp's buffer */
 	enum {NONE, COMPACT, FOUND} slotstatus;
 	doff_t slotoffset;		/* offset of area with free space */
+	doff_t i_diroff;		/* cached i_diroff value. */
+	doff_t i_offset;		/* cached i_offset value. */
 	int slotsize;			/* size of area at slotoffset */
 	int slotfreespace;		/* amount of space free in slot */
 	int slotneeded;			/* size of the entry we're seeking */
@@ -148,23 +160,17 @@ ufs_lookup(ap)
 	doff_t enduseful;		/* pointer past last used dir slot */
 	u_long bmask;			/* block offset mask */
 	int namlen, error;
-	struct vnode **vpp = ap->a_vpp;
-	struct componentname *cnp = ap->a_cnp;
 	struct ucred *cred = cnp->cn_cred;
 	int flags = cnp->cn_flags;
 	int nameiop = cnp->cn_nameiop;
 	struct thread *td = cnp->cn_thread;
 	ino_t saved_ino;
+	ino_t ino, ino1;
+	int ltype;
 
-	bp = NULL;
-	slotoffset = -1;
-/*
- *  XXX there was a soft-update diff about this I couldn't merge.
- * I think this was the equiv.
- */
-	*vpp = NULL;
+	if (vpp != NULL)
+		*vpp = NULL;
 
-	vdp = ap->a_dvp;
 	dp = VTOI(vdp);
 
 	/*
@@ -175,6 +181,12 @@ ufs_lookup(ap)
 	 */
 	vnode_create_vobject_off(vdp, DIP(dp, i_size), cnp->cn_thread);
 
+	bmask = VFSTOUFS(vdp->v_mount)->um_mountp->mnt_stat.f_iosize - 1;
+
+restart:
+	bp = NULL;
+	slotoffset = -1;
+
 	/*
 	 * We now have a segment name to search for, and a directory to search.
 	 *
@@ -183,6 +195,8 @@ ufs_lookup(ap)
 	 * we watch for a place to put the new file in
 	 * case it doesn't already exist.
 	 */
+	ino = 0;
+	i_diroff = dp->i_diroff;
 	slotstatus = FOUND;
 	slotfreespace = slotsize = slotneeded = 0;
 	if ((nameiop == CREATE || nameiop == RENAME) &&
@@ -190,7 +204,6 @@ ufs_lookup(ap)
 		slotstatus = NONE;
 		slotneeded = DIRECTSIZ(cnp->cn_namelen);
 	}
-	bmask = VFSTOUFS(vdp->v_mount)->um_mountp->mnt_stat.f_iosize - 1;
 
 #ifdef UFS_DIRHASH
 	/*
@@ -216,13 +229,13 @@ ufs_lookup(ap)
 		numdirpasses = 1;
 		entryoffsetinblock = 0; /* silence compiler warning */
 		switch (ufsdirhash_lookup(dp, cnp->cn_nameptr, cnp->cn_namelen,
-		    &dp->i_offset, &bp, nameiop == DELETE ? &prevoff : NULL)) {
+		    &i_offset, &bp, nameiop == DELETE ? &prevoff : NULL)) {
 		case 0:
 			ep = (struct direct *)((char *)bp->b_data +
-			    (dp->i_offset & bmask));
+			    (i_offset & bmask));
 			goto foundentry;
 		case ENOENT:
-			dp->i_offset = roundup2(dp->i_size, DIRBLKSIZ);
+			i_offset = roundup2(dp->i_size, DIRBLKSIZ);
 			goto notfound;
 		default:
 			/* Something failed; just do a linear search. */
@@ -241,33 +254,32 @@ ufs_lookup(ap)
 	 * profiling time and hence has been removed in the interest
 	 * of simplicity.
 	 */
-	if (nameiop != LOOKUP || dp->i_diroff == 0 ||
-	    dp->i_diroff >= dp->i_size) {
+	if (nameiop != LOOKUP || i_diroff == 0 || i_diroff >= dp->i_size) {
 		entryoffsetinblock = 0;
-		dp->i_offset = 0;
+		i_offset = 0;
 		numdirpasses = 1;
 	} else {
-		dp->i_offset = dp->i_diroff;
-		if ((entryoffsetinblock = dp->i_offset & bmask) &&
-		    (error = UFS_BLKATOFF(vdp, (off_t)dp->i_offset, NULL, &bp)))
+		i_offset = i_diroff;
+		if ((entryoffsetinblock = i_offset & bmask) &&
+		    (error = UFS_BLKATOFF(vdp, (off_t)i_offset, NULL, &bp)))
 			return (error);
 		numdirpasses = 2;
 		nchstats.ncs_2passes++;
 	}
-	prevoff = dp->i_offset;
+	prevoff = i_offset;
 	endsearch = roundup2(dp->i_size, DIRBLKSIZ);
 	enduseful = 0;
 
 searchloop:
-	while (dp->i_offset < endsearch) {
+	while (i_offset < endsearch) {
 		/*
 		 * If necessary, get the next directory block.
 		 */
-		if ((dp->i_offset & bmask) == 0) {
+		if ((i_offset & bmask) == 0) {
 			if (bp != NULL)
 				brelse(bp);
 			error =
-			    UFS_BLKATOFF(vdp, (off_t)dp->i_offset, NULL, &bp);
+			    UFS_BLKATOFF(vdp, (off_t)i_offset, NULL, &bp);
 			if (error)
 				return (error);
 			entryoffsetinblock = 0;
@@ -294,9 +306,9 @@ searchloop:
 		    (dirchk && ufs_dirbadentry(vdp, ep, entryoffsetinblock))) {
 			int i;
 
-			ufs_dirbad(dp, dp->i_offset, "mangled entry");
+			ufs_dirbad(dp, i_offset, "mangled entry");
 			i = DIRBLKSIZ - (entryoffsetinblock & (DIRBLKSIZ - 1));
-			dp->i_offset += i;
+			i_offset += i;
 			entryoffsetinblock += i;
 			continue;
 		}
@@ -315,15 +327,15 @@ searchloop:
 			if (size > 0) {
 				if (size >= slotneeded) {
 					slotstatus = FOUND;
-					slotoffset = dp->i_offset;
+					slotoffset = i_offset;

*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***

From owner-svn-src-projects@FreeBSD.ORG  Wed Jan 20 09:26:28 2010
Return-Path: <owner-svn-src-projects@FreeBSD.ORG>
Delivered-To: svn-src-projects@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id CB692106566C;
	Wed, 20 Jan 2010 09:26:28 +0000 (UTC)
	(envelope-from jeff@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id B84B18FC08;
	Wed, 20 Jan 2010 09:26:28 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o0K9QSHt071549;
	Wed, 20 Jan 2010 09:26:28 GMT (envelope-from jeff@svn.freebsd.org)
Received: (from jeff@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id o0K9QSZV071534;
	Wed, 20 Jan 2010 09:26:28 GMT (envelope-from jeff@svn.freebsd.org)
Message-Id: <201001200926.o0K9QSZV071534@svn.freebsd.org>
From: Jeff Roberson <jeff@FreeBSD.org>
Date: Wed, 20 Jan 2010 09:26:28 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-projects@freebsd.org
X-SVN-Group: projects
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r202685 - in projects/suj/head: lib/libufs
	sbin/fsck_ffs sbin/fsdb sbin/mount sbin/tunefs sys/kern
	sys/sys sys/ufs/ffs sys/ufs/ufs usr.sbin/makefs/ffs
X-BeenThere: svn-src-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the src &quot; projects&quot;
	tree" <svn-src-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
	<mailto:svn-src-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-projects>
List-Post: <mailto:svn-src-projects@freebsd.org>
List-Help: <mailto:svn-src-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
	<mailto:svn-src-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Wed, 20 Jan 2010 09:26:28 -0000

Author: jeff
Date: Wed Jan 20 09:26:28 2010
New Revision: 202685
URL: http://svn.freebsd.org/changeset/base/202685

Log:
   - Import softupdate journaling.

Added:
  projects/suj/head/sbin/fsck_ffs/suj.c
Modified:
  projects/suj/head/lib/libufs/Makefile
  projects/suj/head/lib/libufs/cgroup.c
  projects/suj/head/lib/libufs/inode.c
  projects/suj/head/lib/libufs/libufs.h
  projects/suj/head/lib/libufs/sblock.c
  projects/suj/head/lib/libufs/type.c
  projects/suj/head/sbin/fsck_ffs/Makefile
  projects/suj/head/sbin/fsck_ffs/fsck.h
  projects/suj/head/sbin/fsck_ffs/gjournal.c
  projects/suj/head/sbin/fsck_ffs/main.c
  projects/suj/head/sbin/fsck_ffs/pass4.c
  projects/suj/head/sbin/fsck_ffs/pass5.c
  projects/suj/head/sbin/fsdb/fsdbutil.c
  projects/suj/head/sbin/mount/mount.c
  projects/suj/head/sbin/tunefs/tunefs.c
  projects/suj/head/sys/kern/vfs_bio.c
  projects/suj/head/sys/kern/vfs_subr.c
  projects/suj/head/sys/sys/buf.h
  projects/suj/head/sys/sys/mount.h
  projects/suj/head/sys/ufs/ffs/ffs_alloc.c
  projects/suj/head/sys/ufs/ffs/ffs_balloc.c
  projects/suj/head/sys/ufs/ffs/ffs_extern.h
  projects/suj/head/sys/ufs/ffs/ffs_inode.c
  projects/suj/head/sys/ufs/ffs/ffs_snapshot.c
  projects/suj/head/sys/ufs/ffs/ffs_softdep.c
  projects/suj/head/sys/ufs/ffs/ffs_subr.c
  projects/suj/head/sys/ufs/ffs/ffs_vfsops.c
  projects/suj/head/sys/ufs/ffs/ffs_vnops.c
  projects/suj/head/sys/ufs/ffs/fs.h
  projects/suj/head/sys/ufs/ffs/softdep.h
  projects/suj/head/sys/ufs/ufs/dinode.h
  projects/suj/head/sys/ufs/ufs/inode.h
  projects/suj/head/sys/ufs/ufs/ufs_dirhash.c
  projects/suj/head/sys/ufs/ufs/ufs_extern.h
  projects/suj/head/sys/ufs/ufs/ufs_lookup.c
  projects/suj/head/sys/ufs/ufs/ufs_vnops.c
  projects/suj/head/sys/ufs/ufs/ufsmount.h
  projects/suj/head/usr.sbin/makefs/ffs/ffs_bswap.c

Modified: projects/suj/head/lib/libufs/Makefile
==============================================================================
--- projects/suj/head/lib/libufs/Makefile	Wed Jan 20 09:19:18 2010	(r202684)
+++ projects/suj/head/lib/libufs/Makefile	Wed Jan 20 09:26:28 2010	(r202685)
@@ -3,7 +3,7 @@
 LIB=	ufs
 SHLIBDIR?= /lib
 
-SRCS=	block.c cgroup.c inode.c sblock.c type.c
+SRCS=	block.c cgroup.c inode.c sblock.c type.c ffs_subr.c ffs_tables.c
 INCS=	libufs.h
 
 MAN=	bread.3 cgread.3 libufs.3 sbread.3 ufs_disk_close.3
@@ -16,8 +16,11 @@ MLINKS+= ufs_disk_close.3 ufs_disk_fillo
 MLINKS+= ufs_disk_close.3 ufs_disk_fillout_blank.3
 MLINKS+= ufs_disk_close.3 ufs_disk_write.3
 
-WARNS?=	3
+.PATH:  ${.CURDIR}/../../sys/ufs/ffs
 
+WARNS?=	2
+
+DEBUG_FLAGS = -g
 CFLAGS+= -D_LIBUFS
 .if defined(LIBUFS_DEBUG)
 CFLAGS+= -D_LIBUFS_DEBUGGING

Modified: projects/suj/head/lib/libufs/cgroup.c
==============================================================================
--- projects/suj/head/lib/libufs/cgroup.c	Wed Jan 20 09:19:18 2010	(r202684)
+++ projects/suj/head/lib/libufs/cgroup.c	Wed Jan 20 09:26:28 2010	(r202685)
@@ -40,11 +40,82 @@ __FBSDID("$FreeBSD$");
 #include <errno.h>
 #include <fcntl.h>
 #include <stdio.h>
+#include <stdlib.h>
 #include <string.h>
 #include <unistd.h>
 
 #include <libufs.h>
 
+ufs2_daddr_t
+cgballoc(struct uufsd *disk)
+{
+	u_int8_t *blksfree;
+	struct cg *cgp;
+	struct fs *fs;
+	long bno;
+
+	fs = &disk->d_fs;
+	cgp = &disk->d_cg;
+	blksfree = cg_blksfree(cgp);
+	for (bno = 0; bno < fs->fs_fpg / fs->fs_frag; bno++)
+		if (ffs_isblock(fs, blksfree, bno))
+			goto gotit;
+	return (0);
+gotit:
+	fs->fs_cs(fs, cgp->cg_cgx).cs_nbfree--;
+	ffs_clrblock(fs, blksfree, (long)bno);
+	ffs_clusteracct(fs, cgp, bno, -1);
+	cgp->cg_cs.cs_nbfree--;
+	fs->fs_cstotal.cs_nbfree--;
+	fs->fs_fmod = 1;
+	return (cgbase(fs, cgp->cg_cgx) + blkstofrags(fs, bno));
+}
+
+ino_t
+cgialloc(struct uufsd *disk)
+{
+	struct ufs2_dinode *dp2;
+	u_int8_t *inosused;
+	struct cg *cgp;
+	struct fs *fs;
+	ino_t ino;
+	int i;
+
+	fs = &disk->d_fs;
+	cgp = &disk->d_cg;
+	inosused = cg_inosused(cgp);
+	for (ino = 0; ino < fs->fs_ipg / NBBY; ino++)
+		if (isclr(inosused, ino))
+			goto gotit;
+	return (0);
+gotit:
+	if (fs->fs_magic == FS_UFS2_MAGIC &&
+	    ino + INOPB(fs) > cgp->cg_initediblk &&
+	    cgp->cg_initediblk < cgp->cg_niblk) {
+		char block[MAXBSIZE];
+		bzero(block, (int)fs->fs_bsize);
+		dp2 = (struct ufs2_dinode *)&block;
+		for (i = 0; i < INOPB(fs); i++) {
+			dp2->di_gen = arc4random() / 2 + 1;
+			dp2++;
+		}
+		if (bwrite(disk, ino_to_fsba(fs,
+		    cgp->cg_cgx * fs->fs_ipg + cgp->cg_initediblk),
+		    block, fs->fs_bsize))
+			return (0);
+		cgp->cg_initediblk += INOPB(fs);
+	}
+
+	setbit(inosused, ino);
+	cgp->cg_irotor = ino;
+	cgp->cg_cs.cs_nifree--;
+	fs->fs_cstotal.cs_nifree--;
+	fs->fs_cs(fs, cgp->cg_cgx).cs_nifree--;
+	fs->fs_fmod = 1;
+
+	return (ino + (cgp->cg_cgx * fs->fs_ipg));
+}
+
 int
 cgread(struct uufsd *disk)
 {
@@ -55,14 +126,12 @@ int
 cgread1(struct uufsd *disk, int c)
 {
 	struct fs *fs;
-	off_t ccg;
 
 	fs = &disk->d_fs;
 
 	if (c >= fs->fs_ncg) {
 		return (0);
 	}
-	ccg = fsbtodb(fs, cgtod(fs, c)) * disk->d_bsize;
 	if (bread(disk, fsbtodb(fs, cgtod(fs, c)), disk->d_cgunion.d_buf,
 	    fs->fs_bsize) == -1) {
 		ERROR(disk, "unable to read cylinder group");
@@ -73,6 +142,12 @@ cgread1(struct uufsd *disk, int c)
 }
 
 int
+cgwrite(struct uufsd *disk)
+{
+	return (cgwrite1(disk, disk->d_lcg));
+}
+
+int
 cgwrite1(struct uufsd *disk, int c)
 {
 	struct fs *fs;

Modified: projects/suj/head/lib/libufs/inode.c
==============================================================================
--- projects/suj/head/lib/libufs/inode.c	Wed Jan 20 09:19:18 2010	(r202684)
+++ projects/suj/head/lib/libufs/inode.c	Wed Jan 20 09:26:28 2010	(r202685)
@@ -93,3 +93,19 @@ gotit:	switch (disk->d_ufs) {
 	ERROR(disk, "unknown UFS filesystem type");
 	return (-1);
 }
+
+int
+putino(struct uufsd *disk)
+{
+	struct fs *fs;
+
+	fs = &disk->d_fs;
+	if (disk->d_inoblock == NULL) {
+		ERROR(disk, "No inode block allocated");
+		return (-1);
+	}
+	if (bwrite(disk, fsbtodb(fs, ino_to_fsba(&disk->d_fs, disk->d_inomin)),
+	    disk->d_inoblock, disk->d_fs.fs_bsize) <= 0)
+		return (-1);
+	return (0);
+}

Modified: projects/suj/head/lib/libufs/libufs.h
==============================================================================
--- projects/suj/head/lib/libufs/libufs.h	Wed Jan 20 09:19:18 2010	(r202684)
+++ projects/suj/head/lib/libufs/libufs.h	Wed Jan 20 09:26:28 2010	(r202685)
@@ -71,6 +71,7 @@ struct uufsd {
 	int d_fd;		/* raw device file descriptor */
 	long d_bsize;		/* device bsize */
 	ufs2_daddr_t d_sblock;	/* superblock location */
+	struct csum *d_sbcsum;	/* Superblock summary info */
 	caddr_t d_inoblock;	/* inode block */
 	ino_t d_inomin;		/* low inode */
 	ino_t d_inomax;		/* high inode */
@@ -109,14 +110,18 @@ int berase(struct uufsd *, ufs2_daddr_t,
 /*
  * cgroup.c
  */
+ufs2_daddr_t cgballoc(struct uufsd *);
+ino_t cgialloc(struct uufsd *);
 int cgread(struct uufsd *);
 int cgread1(struct uufsd *, int);
+int cgwrite(struct uufsd *);
 int cgwrite1(struct uufsd *, int);
 
 /*
  * inode.c
  */
 int getino(struct uufsd *, void **, ino_t, int *);
+int putino(struct uufsd *);
 
 /*
  * sblock.c
@@ -132,6 +137,16 @@ int ufs_disk_fillout(struct uufsd *, con
 int ufs_disk_fillout_blank(struct uufsd *, const char *);
 int ufs_disk_write(struct uufsd *);
 
+/*
+ * ffs_subr.c
+ */
+void	ffs_clrblock(struct fs *, u_char *, ufs1_daddr_t);
+void	ffs_clusteracct(struct fs *, struct cg *, ufs1_daddr_t, int);
+void	ffs_fragacct(struct fs *, int, int32_t [], int);
+int	ffs_isblock(struct fs *, u_char *, ufs1_daddr_t);
+int	ffs_isfreeblock(struct fs *, u_char *, ufs1_daddr_t);
+void	ffs_setblock(struct fs *, u_char *, ufs1_daddr_t);
+
 __END_DECLS
 
 #endif	/* __LIBUFS_H__ */

Modified: projects/suj/head/lib/libufs/sblock.c
==============================================================================
--- projects/suj/head/lib/libufs/sblock.c	Wed Jan 20 09:19:18 2010	(r202684)
+++ projects/suj/head/lib/libufs/sblock.c	Wed Jan 20 09:26:28 2010	(r202685)
@@ -40,6 +40,7 @@ __FBSDID("$FreeBSD$");
 #include <errno.h>
 #include <stdio.h>
 #include <string.h>
+#include <stdlib.h>
 #include <unistd.h>
 
 #include <libufs.h>
@@ -49,8 +50,11 @@ static int superblocks[] = SBLOCKSEARCH;
 int
 sbread(struct uufsd *disk)
 {
+	uint8_t block[MAXBSIZE];
 	struct fs *fs;
 	int sb, superblock;
+	int i, size, blks;
+	uint8_t *space;
 
 	ERROR(disk, NULL);
 
@@ -86,6 +90,34 @@ sbread(struct uufsd *disk)
 	}
 	disk->d_bsize = fs->fs_fsize / fsbtodb(fs, 1);
 	disk->d_sblock = superblock / disk->d_bsize;
+	/*
+	 * Read in the superblock summary information.
+	 */
+	size = fs->fs_cssize;
+	blks = howmany(size, fs->fs_fsize);
+	size += fs->fs_ncg * sizeof(int32_t);
+	space = malloc(size);
+	if (space == NULL) {
+		ERROR(disk, "failed to allocate space for summary information");
+		return (-1);
+	}
+	fs->fs_csp = (struct csum *)space;
+	for (i = 0; i < blks; i += fs->fs_frag) {
+		size = fs->fs_bsize;
+		if (i + fs->fs_frag > blks)
+			size = (blks - i) * fs->fs_fsize;
+		if (bread(disk, fsbtodb(fs, fs->fs_csaddr + i), block, size)
+		    == -1) {
+			ERROR(disk, "Failed to read sb summary information");
+			free(fs->fs_csp);
+			return (-1);
+		}
+		bcopy(block, space, size);
+		space += size;
+	}
+	fs->fs_maxcluster = (uint32_t *)space;
+	disk->d_sbcsum = fs->fs_csp;
+
 	return (0);
 }
 
@@ -93,7 +125,8 @@ int
 sbwrite(struct uufsd *disk, int all)
 {
 	struct fs *fs;
-	int i;
+	int i, blks, size;
+	uint8_t *space;
 
 	ERROR(disk, NULL);
 
@@ -107,6 +140,22 @@ sbwrite(struct uufsd *disk, int all)
 		ERROR(disk, "failed to write superblock");
 		return (-1);
 	}
+	/*
+	 * Write superblock summary information.
+	 */
+	blks = howmany(fs->fs_cssize, fs->fs_fsize);
+	space = (uint8_t *)disk->d_sbcsum;
+	for (i = 0; i < blks; i += fs->fs_frag) {
+		size = fs->fs_bsize;
+		if (i + fs->fs_frag > blks)
+			size = (blks - i) * fs->fs_fsize;
+		if (bwrite(disk, fsbtodb(fs, fs->fs_csaddr + i), space, size)
+		    == -1) {
+			ERROR(disk, "Failed to write sb summary information");
+			return (-1);
+		}
+		space += size;
+	}
 	if (all) {
 		for (i = 0; i < fs->fs_ncg; i++)
 			if (bwrite(disk, fsbtodb(fs, cgsblock(fs, i)),

Modified: projects/suj/head/lib/libufs/type.c
==============================================================================
--- projects/suj/head/lib/libufs/type.c	Wed Jan 20 09:19:18 2010	(r202684)
+++ projects/suj/head/lib/libufs/type.c	Wed Jan 20 09:26:28 2010	(r202685)
@@ -66,6 +66,10 @@ ufs_disk_close(struct uufsd *disk)
 		free((char *)(uintptr_t)disk->d_name);
 		disk->d_name = NULL;
 	}
+	if (disk->d_sbcsum != NULL) {
+		free(disk->d_sbcsum);
+		disk->d_sbcsum = NULL;
+	}
 	return (0);
 }
 
@@ -156,6 +160,7 @@ again:	if ((ret = stat(name, &st)) < 0) 
 	disk->d_mine = 0;
 	disk->d_ufs = 0;
 	disk->d_error = NULL;
+	disk->d_sbcsum = NULL;
 
 	if (oname != name) {
 		name = strdup(name);

Modified: projects/suj/head/sbin/fsck_ffs/Makefile
==============================================================================
--- projects/suj/head/sbin/fsck_ffs/Makefile	Wed Jan 20 09:19:18 2010	(r202684)
+++ projects/suj/head/sbin/fsck_ffs/Makefile	Wed Jan 20 09:26:28 2010	(r202685)
@@ -7,8 +7,7 @@ LINKS+=	${BINDIR}/fsck_ffs ${BINDIR}/fsc
 MAN=	fsck_ffs.8
 MLINKS=	fsck_ffs.8 fsck_ufs.8 fsck_ffs.8 fsck_4.2bsd.8
 SRCS=	dir.c ea.c fsutil.c inode.c main.c pass1.c pass1b.c pass2.c pass3.c \
-	pass4.c pass5.c setup.c utilities.c ffs_subr.c ffs_tables.c gjournal.c \
-	getmntopts.c
+	pass4.c pass5.c setup.c suj.c utilities.c gjournal.c getmntopts.c
 DPADD=	${LIBUFS}
 LDADD=	-lufs
 WARNS?=	2

Modified: projects/suj/head/sbin/fsck_ffs/fsck.h
==============================================================================
--- projects/suj/head/sbin/fsck_ffs/fsck.h	Wed Jan 20 09:19:18 2010	(r202684)
+++ projects/suj/head/sbin/fsck_ffs/fsck.h	Wed Jan 20 09:26:28 2010	(r202685)
@@ -347,10 +347,6 @@ void		direrror(ino_t ino, const char *er
 int		dirscan(struct inodesc *);
 int		dofix(struct inodesc *, const char *msg);
 int		eascan(struct inodesc *, struct ufs2_dinode *dp);
-void		ffs_clrblock(struct fs *, u_char *, ufs1_daddr_t);
-void		ffs_fragacct(struct fs *, int, int32_t [], int);
-int		ffs_isblock(struct fs *, u_char *, ufs1_daddr_t);
-void		ffs_setblock(struct fs *, u_char *, ufs1_daddr_t);
 void		fileerror(ino_t cwd, ino_t ino, const char *errmesg);
 int		findino(struct inodesc *);
 int		findname(struct inodesc *);
@@ -392,3 +388,4 @@ void		sblock_init(void);
 void		setinodebuf(ino_t);
 int		setup(char *dev);
 void		gjournal_check(const char *filesys);
+void		suj_check(const char *filesys);

Modified: projects/suj/head/sbin/fsck_ffs/gjournal.c
==============================================================================
--- projects/suj/head/sbin/fsck_ffs/gjournal.c	Wed Jan 20 09:19:18 2010	(r202684)
+++ projects/suj/head/sbin/fsck_ffs/gjournal.c	Wed Jan 20 09:26:28 2010	(r202685)
@@ -96,27 +96,6 @@ struct ufs2_dinode ufs2_zino;
 static void putcgs(void);
 
 /*
- * Write current block of inodes.
- */
-static int
-putino(struct uufsd *disk, ino_t inode)
-{
-	caddr_t inoblock;
-	struct fs *fs;
-	ssize_t ret;
-
-	fs = &disk->d_fs;
-	inoblock = disk->d_inoblock;
-
-	assert(inoblock != NULL);
-	assert(inode >= disk->d_inomin && inode <= disk->d_inomax);
-	ret = bwrite(disk, fsbtodb(fs, ino_to_fsba(fs, inode)), inoblock,
-	    fs->fs_bsize);
-
-	return (ret == -1 ? -1 : 0);
-}
-
-/*
  * Return cylinder group from the cache or load it if it is not in the
  * cache yet.
  * Don't cache more than MAX_CACHED_CGS cylinder groups.
@@ -242,13 +221,11 @@ cancelcgs(void)
 #endif
 
 /*
- * Open the given provider, load statistics.
+ * Open the given provider, load superblock.
  */
 static void
-getdisk(void)
+opendisk(void)
 {
-	int i;
-
 	if (disk != NULL)
 		return;
 	disk = malloc(sizeof(*disk));
@@ -259,24 +236,6 @@ getdisk(void)
 		    disk->d_error);
 	}
 	fs = &disk->d_fs;
-	fs->fs_csp = malloc((size_t)fs->fs_cssize);
-	if (fs->fs_csp == NULL)
-		err(1, "malloc(%zu)", (size_t)fs->fs_cssize);
-	bzero(fs->fs_csp, (size_t)fs->fs_cssize);
-	for (i = 0; i < fs->fs_cssize; i += fs->fs_bsize) {
-		if (bread(disk, fsbtodb(fs, fs->fs_csaddr + numfrags(fs, i)),
-		    (void *)(((char *)fs->fs_csp) + i),
-		    (size_t)(fs->fs_cssize - i < fs->fs_bsize ? fs->fs_cssize - i : fs->fs_bsize)) == -1) {
-			err(1, "bread: %s", disk->d_error);
-		}
-	}
-	if (fs->fs_contigsumsize > 0) {
-		fs->fs_maxcluster = malloc(fs->fs_ncg * sizeof(int32_t));
-		if (fs->fs_maxcluster == NULL)
-			err(1, "malloc(%zu)", fs->fs_ncg * sizeof(int32_t));
-		for (i = 0; i < fs->fs_ncg; i++)
-			fs->fs_maxcluster[i] = fs->fs_contigsumsize;
-	}
 }
 
 /*
@@ -286,11 +245,6 @@ static void
 closedisk(void)
 {
 
-	free(fs->fs_csp);
-	if (fs->fs_contigsumsize > 0) {
-		free(fs->fs_maxcluster);
-		fs->fs_maxcluster = NULL;
-	}
 	fs->fs_clean = 1;
 	if (sbwrite(disk, 0) == -1)
 		err(1, "sbwrite(%s)", devnam);
@@ -301,227 +255,6 @@ closedisk(void)
 	fs = NULL;
 }
 
-/*
- * Write the statistics back, call closedisk().
- */
-static void
-putdisk(void)
-{
-	int i;
-
-	assert(disk != NULL && fs != NULL);
-	for (i = 0; i < fs->fs_cssize; i += fs->fs_bsize) {
-		if (bwrite(disk, fsbtodb(fs, fs->fs_csaddr + numfrags(fs, i)),
-		    (void *)(((char *)fs->fs_csp) + i),
-		    (size_t)(fs->fs_cssize - i < fs->fs_bsize ? fs->fs_cssize - i : fs->fs_bsize)) == -1) {
-			err(1, "bwrite: %s", disk->d_error);
-		}
-	}
-	closedisk();
-}
-
-#if 0
-/*
- * Free memory, close the disk, but don't write anything back.
- */
-static void
-canceldisk(void)
-{
-	int i;
-
-	assert(disk != NULL && fs != NULL);
-	free(fs->fs_csp);
-	if (fs->fs_contigsumsize > 0)
-		free(fs->fs_maxcluster);
-	if (ufs_disk_close(disk) == -1)
-		err(1, "ufs_disk_close(%s)", devnam);
-	free(disk);
-	disk = NULL;
-	fs = NULL;
-}
-#endif
-
-static int
-isblock(unsigned char *cp, ufs1_daddr_t h)
-{
-	unsigned char mask;
-
-	switch ((int)fs->fs_frag) {
-	case 8:
-		return (cp[h] == 0xff);
-	case 4:
-		mask = 0x0f << ((h & 0x1) << 2);
-		return ((cp[h >> 1] & mask) == mask);
-	case 2:
-		mask = 0x03 << ((h & 0x3) << 1);
-		return ((cp[h >> 2] & mask) == mask);
-	case 1:
-		mask = 0x01 << (h & 0x7);
-		return ((cp[h >> 3] & mask) == mask);
-	default:
-		assert(!"isblock: invalid number of fragments");
-	}
-	return (0);
-}
-
-/*
- * put a block into the map
- */
-static void
-setblock(unsigned char *cp, ufs1_daddr_t h)
-{
-
-	switch ((int)fs->fs_frag) {
-	case 8:
-		cp[h] = 0xff;
-		return;
-	case 4:
-		cp[h >> 1] |= (0x0f << ((h & 0x1) << 2));
-		return;
-	case 2:
-		cp[h >> 2] |= (0x03 << ((h & 0x3) << 1));
-		return;
-	case 1:
-		cp[h >> 3] |= (0x01 << (h & 0x7));
-		return;
-	default:
-		assert(!"setblock: invalid number of fragments");
-	}
-}
-
-/*
- * check if a block is free
- */
-static int
-isfreeblock(u_char *cp, ufs1_daddr_t h)
-{
-
-	switch ((int)fs->fs_frag) {
-	case 8:
-		return (cp[h] == 0);
-	case 4:
-		return ((cp[h >> 1] & (0x0f << ((h & 0x1) << 2))) == 0);
-	case 2:
-		return ((cp[h >> 2] & (0x03 << ((h & 0x3) << 1))) == 0);
-	case 1:
-		return ((cp[h >> 3] & (0x01 << (h & 0x7))) == 0);
-	default:
-		assert(!"isfreeblock: invalid number of fragments");
-	}
-	return (0);
-}
-
-/*
- * Update the frsum fields to reflect addition or deletion
- * of some frags.
- */
-void
-fragacct(int fragmap, int32_t fraglist[], int cnt)
-{
-	int inblk;
-	int field, subfield;
-	int siz, pos;
-
-	inblk = (int)(fragtbl[fs->fs_frag][fragmap]) << 1;
-	fragmap <<= 1;
-	for (siz = 1; siz < fs->fs_frag; siz++) {
-		if ((inblk & (1 << (siz + (fs->fs_frag % NBBY)))) == 0)
-			continue;
-		field = around[siz];
-		subfield = inside[siz];
-		for (pos = siz; pos <= fs->fs_frag; pos++) {
-			if ((fragmap & field) == subfield) {
-				fraglist[siz] += cnt;
-				pos += siz;
-				field <<= siz;
-				subfield <<= siz;
-			}
-			field <<= 1;
-			subfield <<= 1;
-		}
-	}
-}
-
-static void
-clusteracct(struct cg *cgp, ufs1_daddr_t blkno)
-{
-	int32_t *sump;
-	int32_t *lp;
-	u_char *freemapp, *mapp;
-	int i, start, end, forw, back, map, bit;
-
-	if (fs->fs_contigsumsize <= 0)
-		return;
-	freemapp = cg_clustersfree(cgp);
-	sump = cg_clustersum(cgp);
-	/*
-	 * Clear the actual block.
-	 */
-	setbit(freemapp, blkno);
-	/*
-	 * Find the size of the cluster going forward.
-	 */
-	start = blkno + 1;
-	end = start + fs->fs_contigsumsize;
-	if (end >= cgp->cg_nclusterblks)
-		end = cgp->cg_nclusterblks;
-	mapp = &freemapp[start / NBBY];
-	map = *mapp++;
-	bit = 1 << (start % NBBY);
-	for (i = start; i < end; i++) {
-		if ((map & bit) == 0)
-			break;
-		if ((i & (NBBY - 1)) != (NBBY - 1)) {
-			bit <<= 1;
-		} else {
-			map = *mapp++;
-			bit = 1;
-		}
-	}
-	forw = i - start;
-	/*
-	 * Find the size of the cluster going backward.
-	 */
-	start = blkno - 1;
-	end = start - fs->fs_contigsumsize;
-	if (end < 0)
-		end = -1;
-	mapp = &freemapp[start / NBBY];
-	map = *mapp--;
-	bit = 1 << (start % NBBY);
-	for (i = start; i > end; i--) {
-		if ((map & bit) == 0)
-			break;
-		if ((i & (NBBY - 1)) != 0) {
-			bit >>= 1;
-		} else {
-			map = *mapp--;
-			bit = 1 << (NBBY - 1);
-		}
-	}
-	back = start - i;
-	/*
-	 * Account for old cluster and the possibly new forward and
-	 * back clusters.
-	 */
-	i = back + forw + 1;
-	if (i > fs->fs_contigsumsize)
-		i = fs->fs_contigsumsize;
-	sump[i]++;
-	if (back > 0)
-		sump[back]--;
-	if (forw > 0)
-		sump[forw]--;
-	/*
-	 * Update cluster summary information.
-	 */
-	lp = &sump[fs->fs_contigsumsize];
-	for (i = fs->fs_contigsumsize; i > 0; i--)
-		if (*lp-- > 0)
-			break;
-	fs->fs_maxcluster[cgp->cg_cgx] = i;
-}
-
 static void
 blkfree(ufs2_daddr_t bno, long size)
 {
@@ -539,10 +272,10 @@ blkfree(ufs2_daddr_t bno, long size)
 	blksfree = cg_blksfree(cgp);
 	if (size == fs->fs_bsize) {
 		fragno = fragstoblks(fs, cgbno);
-		if (!isfreeblock(blksfree, fragno))
+		if (!ffs_isfreeblock(fs, blksfree, fragno))
 			assert(!"blkfree: freeing free block");
-		setblock(blksfree, fragno);
-		clusteracct(cgp, fragno);
+		ffs_setblock(fs, blksfree, fragno);
+		ffs_clusteracct(fs, cgp, fragno, 1);
 		cgp->cg_cs.cs_nbfree++;
 		fs->fs_cstotal.cs_nbfree++;
 		fs->fs_cs(fs, cg).cs_nbfree++;
@@ -552,7 +285,7 @@ blkfree(ufs2_daddr_t bno, long size)
 		 * decrement the counts associated with the old frags
 		 */
 		blk = blkmap(fs, blksfree, bbase);
-		fragacct(blk, cgp->cg_frsum, -1);
+		ffs_fragacct(fs, blk, cgp->cg_frsum, -1);
 		/*
 		 * deallocate the fragment
 		 */
@@ -569,16 +302,16 @@ blkfree(ufs2_daddr_t bno, long size)
 		 * add back in counts associated with the new frags
 		 */
 		blk = blkmap(fs, blksfree, bbase);
-		fragacct(blk, cgp->cg_frsum, 1);
+		ffs_fragacct(fs, blk, cgp->cg_frsum, 1);
 		/*
 		 * if a complete block has been reassembled, account for it
 		 */
 		fragno = fragstoblks(fs, bbase);
-		if (isblock(blksfree, fragno)) {
+		if (ffs_isblock(fs, blksfree, fragno)) {
 			cgp->cg_cs.cs_nffree -= fs->fs_frag;
 			fs->fs_cstotal.cs_nffree -= fs->fs_frag;
 			fs->fs_cs(fs, cg).cs_nffree -= fs->fs_frag;
-			clusteracct(cgp, fragno);
+			ffs_clusteracct(fs, cgp, fragno, 1);
 			cgp->cg_cs.cs_nbfree++;
 			fs->fs_cstotal.cs_nbfree++;
 			fs->fs_cs(fs, cg).cs_nbfree++;
@@ -599,7 +332,7 @@ freeindir(ufs2_daddr_t blk, int level)
 	if (bread(disk, fsbtodb(fs, blk), (void *)&sblks, (size_t)fs->fs_bsize) == -1)
 		err(1, "bread: %s", disk->d_error);
 	blks = (ufs2_daddr_t *)&sblks;
-	for (i = 0; i < howmany(fs->fs_bsize, sizeof(ufs2_daddr_t)); i++) {
+	for (i = 0; i < NINDIR(fs); i++) {
 		if (blks[i] == 0)
 			break;
 		if (level == 0)
@@ -671,7 +404,7 @@ gjournal_check(const char *filesys)
 	int cg, mode;
 
 	devnam = filesys;
-	getdisk();
+	opendisk();
 	/* Are there any unreferenced inodes in this file system? */
 	if (fs->fs_unrefs == 0) {
 		//printf("No unreferenced inodes.\n");
@@ -747,7 +480,7 @@ gjournal_check(const char *filesys)
 			/* Zero-fill the inode. */
 			*dino = ufs2_zino;
 			/* Write the inode back. */
-			if (putino(disk, ino) == -1)
+			if (putino(disk) == -1)
 				err(1, "putino(cg=%d ino=%d)", cg, ino);
 			if (cgp->cg_unrefs == 0) {
 				//printf("No more unreferenced inodes in cg=%d.\n", cg);
@@ -772,5 +505,5 @@ gjournal_check(const char *filesys)
 	/* Write back modified cylinder groups. */
 	putcgs();
 	/* Write back updated statistics and super-block. */
-	putdisk();
+	closedisk();
 }

Modified: projects/suj/head/sbin/fsck_ffs/main.c
==============================================================================
--- projects/suj/head/sbin/fsck_ffs/main.c	Wed Jan 20 09:19:18 2010	(r202684)
+++ projects/suj/head/sbin/fsck_ffs/main.c	Wed Jan 20 09:26:28 2010	(r202685)
@@ -256,7 +256,7 @@ checkfilesys(char *filesys)
 	}
 	if (ckclean && skipclean) {
 		/*
-		 * If file system is gjournaled, check it here.
+		 * If file system is gjournaled or su+j, check it here.
 		 */
 		if ((fsreadfd = open(filesys, O_RDONLY)) < 0 || readsb(0) == 0)
 			exit(3);	/* Cannot read superblock */
@@ -278,6 +278,18 @@ checkfilesys(char *filesys)
 				    "CANNOT RUN FAST FSCK\n");
 			}
 		}
+#if 0
+		if ((sblock.fs_flags & FS_SUJ) != 0) {
+			if (sblock.fs_clean == 1) {
+				pwarn("FILE SYSTEM CLEAN; SKIPPING CHECKS\n");
+				exit(0);
+			}
+			suj_check(filesys);
+			if (chkdoreload(mntp) == 0)
+				exit(0);
+			exit(4);
+		}
+#endif
 	}
 	/*
 	 * If we are to do a background check:
@@ -299,7 +311,7 @@ checkfilesys(char *filesys)
 			pfatal("MOUNTED READ-ONLY, CANNOT RUN IN BACKGROUND\n");
 		} else if ((fsreadfd = open(filesys, O_RDONLY)) >= 0) {
 			if (readsb(0) != 0) {
-				if (sblock.fs_flags & FS_NEEDSFSCK) {
+				if (sblock.fs_flags & (FS_NEEDSFSCK | FS_SUJ)) {
 					bkgrdflag = 0;
 					pfatal("UNEXPECTED INCONSISTENCY, %s\n",
 					    "CANNOT RUN IN BACKGROUND\n");
@@ -481,6 +493,7 @@ checkfilesys(char *filesys)
 	inocleanup();
 	if (fsmodified) {
 		sblock.fs_time = time(NULL);
+		sblock.fs_mtime = time(NULL);
 		sbdirty();
 	}
 	if (cvtlevel && sblk.b_dirty) {

Modified: projects/suj/head/sbin/fsck_ffs/pass4.c
==============================================================================
--- projects/suj/head/sbin/fsck_ffs/pass4.c	Wed Jan 20 09:19:18 2010	(r202684)
+++ projects/suj/head/sbin/fsck_ffs/pass4.c	Wed Jan 20 09:26:28 2010	(r202685)
@@ -72,6 +72,9 @@ pass4(void)
 		for (i = 0; i < inostathead[cg].il_numalloced; i++, inumber++) {
 			if (inumber < ROOTINO)
 				continue;
+			if (sblock.fs_flags & FS_SUJ &&
+			    inumber == sblock.fs_sujournal)
+				continue;
 			idesc.id_number = inumber;
 			switch (inoinfo(inumber)->ino_state) {
 

Modified: projects/suj/head/sbin/fsck_ffs/pass5.c
==============================================================================
--- projects/suj/head/sbin/fsck_ffs/pass5.c	Wed Jan 20 09:19:18 2010	(r202684)
+++ projects/suj/head/sbin/fsck_ffs/pass5.c	Wed Jan 20 09:26:28 2010	(r202685)
@@ -45,6 +45,7 @@ __FBSDID("$FreeBSD$");
 #include <inttypes.h>
 #include <limits.h>
 #include <string.h>
+#include <libufs.h>
 
 #include "fsck.h"
 

Added: projects/suj/head/sbin/fsck_ffs/suj.c
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ projects/suj/head/sbin/fsck_ffs/suj.c	Wed Jan 20 09:26:28 2010	(r202685)
@@ -0,0 +1,2065 @@
+/*-
+ * Copyright (c) 2009 Jeffrey W. Roberson <jeff@FreeBSD.org>
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHORS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#include <sys/cdefs.h>
+__FBSDID("$FreeBSD$");
+
+#include <sys/param.h>
+#include <sys/disklabel.h>
+#include <sys/mount.h>
+#include <sys/stat.h>
+
+#include <ufs/ufs/ufsmount.h>
+#include <ufs/ufs/dinode.h>
+#include <ufs/ufs/dir.h>
+#include <ufs/ffs/fs.h>
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <stdint.h>
+#include <libufs.h>
+#include <strings.h>
+#include <err.h>
+#include <assert.h>
+
+#include "fsck.h"
+
+static void	ino_decr(ino_t);
+
+#define	SUJ_HASHSIZE	128
+#define	SUJ_HASHMASK	(SUJ_HASHSIZE - 1)
+#define	SUJ_HASH(x)	((x * 2654435761) & SUJ_HASHMASK)
+
+struct suj_seg {
+	TAILQ_ENTRY(suj_seg) ss_next;
+	struct jsegrec	ss_rec;
+	uint8_t		*ss_blk;
+};
+
+struct suj_rec {
+	TAILQ_ENTRY(suj_rec) sr_next;
+	union jrec	*sr_rec;
+};
+TAILQ_HEAD(srechd, suj_rec);
+
+struct suj_ino {
+	LIST_ENTRY(suj_ino)	si_next;
+	struct srechd		si_recs;
+	struct srechd		si_movs;
+	ino_t			si_ino;
+	int			si_nlinkadj;
+	int			si_skipparent;
+	int			si_linkadj;
+	int			si_hasrecs;
+	int			si_blkadj;
+};
+LIST_HEAD(inohd, suj_ino);
+
+struct suj_blk {
+	LIST_ENTRY(suj_blk)	sb_next;
+	struct srechd		sb_recs;
+	ufs2_daddr_t		sb_blk;
+};
+LIST_HEAD(blkhd, suj_blk);
+
+struct data_blk {
+	LIST_ENTRY(data_blk)	db_next;
+	uint8_t			*db_buf;
+	ufs2_daddr_t		db_blk;
+	int			db_size;
+};
+
+struct ino_blk {
+	LIST_ENTRY(ino_blk)	ib_next;
+	uint8_t			*ib_buf;
+	int			ib_dirty;
+	ufs2_daddr_t		ib_blk;
+};
+LIST_HEAD(iblkhd, ino_blk);
+
+struct suj_cg {
+	LIST_ENTRY(suj_cg)	sc_next;
+	struct blkhd		sc_blkhash[SUJ_HASHSIZE];
+	struct inohd		sc_inohash[SUJ_HASHSIZE];
+	struct iblkhd		sc_iblkhash[SUJ_HASHSIZE];
+	struct ino_blk		*sc_lastiblk;
+	uint8_t			*sc_cgbuf;
+	struct cg		*sc_cgp;
+	int			sc_dirty;
+	int			sc_cgx;
+};
+
+LIST_HEAD(cghd, suj_cg) cghash[SUJ_HASHSIZE];
+LIST_HEAD(dblkhd, data_blk) dbhash[SUJ_HASHSIZE];
+
+TAILQ_HEAD(seghd, suj_seg) allsegs;
+uint64_t oldseq;
+static struct uufsd *disk = NULL;
+static struct fs *fs = NULL;
+
+/*
+ * Summary statistics.
+ */
+uint64_t freefrags;
+uint64_t freeblocks;
+uint64_t freeinos;
+uint64_t freedir;
+uint64_t jbytes;
+uint64_t jrecs;
+
+typedef void (*ino_visitor)(ino_t, ufs_lbn_t, ufs2_daddr_t, int);
+
+static void *
+errmalloc(size_t n)
+{
+	void *a;
+
+	a = malloc(n);
+	if (a == NULL)
+		errx(1, "malloc(%zu)", n);
+	return (a);
+}
+
+/*
+ * Open the given provider, load superblock.
+ */
+static void
+opendisk(const char *devnam)
+{
+	if (disk != NULL)
+		return;
+	disk = malloc(sizeof(*disk));
+	if (disk == NULL)
+		errx(1, "malloc(%zu)", sizeof(*disk));
+	if (ufs_disk_fillout(disk, devnam) == -1) {
+		err(1, "ufs_disk_fillout(%s) failed: %s", devnam,
+		    disk->d_error);
+	}
+	fs = &disk->d_fs;
+	/*
+	 * Setup a few things so reply() can work.
+	 */
+	bcopy(fs, &sblock, sizeof(sblock));
+	fsreadfd = disk->d_fd;
+	fswritefd = disk->d_fd;
+}
+
+/*
+ * Mark file system as clean, write the super-block back, close the disk.
+ */
+static void
+closedisk(const char *devnam)
+{
+	struct csum *cgsum;
+	int i;
+
+	/*
+	 * Recompute the fs summary info from correct cs summaries.
+	 */
+	bzero(&fs->fs_cstotal, sizeof(struct csum_total));
+	for (i = 0; i < fs->fs_ncg; i++) {
+		cgsum = &fs->fs_cs(fs, i);
+		fs->fs_cstotal.cs_nffree += cgsum->cs_nffree;
+		fs->fs_cstotal.cs_nbfree += cgsum->cs_nbfree;
+		fs->fs_cstotal.cs_nifree += cgsum->cs_nifree;
+		fs->fs_cstotal.cs_ndir += cgsum->cs_ndir;
+	}
+	/* XXX Don't set clean for now, we don't trust the journal. */
+	/* fs->fs_clean = 1; */
+	fs->fs_time = time(NULL);
+	fs->fs_mtime = time(NULL);
+	if (sbwrite(disk, 0) == -1)

*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***

From owner-svn-src-projects@FreeBSD.ORG  Wed Jan 20 09:49:54 2010
Return-Path: <owner-svn-src-projects@FreeBSD.ORG>
Delivered-To: svn-src-projects@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 74DA51065670;
	Wed, 20 Jan 2010 09:49:54 +0000 (UTC)
	(envelope-from jeff@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 619368FC13;
	Wed, 20 Jan 2010 09:49:54 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o0K9nspY076796;
	Wed, 20 Jan 2010 09:49:54 GMT (envelope-from jeff@svn.freebsd.org)
Received: (from jeff@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id o0K9nsgX076781;
	Wed, 20 Jan 2010 09:49:54 GMT (envelope-from jeff@svn.freebsd.org)
Message-Id: <201001200949.o0K9nsgX076781@svn.freebsd.org>
From: Jeff Roberson <jeff@FreeBSD.org>
Date: Wed, 20 Jan 2010 09:49:54 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-projects@freebsd.org
X-SVN-Group: projects
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r202688 - in projects/suj/8: . contrib/top lib/libufs
	lib/libusb sbin/fsck_ffs sbin/fsdb sbin/mount sbin/tunefs
	share/man/man4 sys/kern sys/sys sys/ufs/ffs sys/ufs/ufs
	tools/regression/...
X-BeenThere: svn-src-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the src &quot; projects&quot;
	tree" <svn-src-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
	<mailto:svn-src-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-projects>
List-Post: <mailto:svn-src-projects@freebsd.org>
List-Help: <mailto:svn-src-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
	<mailto:svn-src-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Wed, 20 Jan 2010 09:49:54 -0000

Author: jeff
Date: Wed Jan 20 09:49:53 2010
New Revision: 202688
URL: http://svn.freebsd.org/changeset/base/202688

Log:
   - Merge SUJ from the private head branch to the private 8 branch.

Added:
  projects/suj/8/sbin/fsck_ffs/suj.c
     - copied unchanged from r202685, projects/suj/head/sbin/fsck_ffs/suj.c
Modified:
  projects/suj/8/lib/libufs/Makefile
  projects/suj/8/lib/libufs/cgroup.c
  projects/suj/8/lib/libufs/inode.c
  projects/suj/8/lib/libufs/libufs.h
  projects/suj/8/lib/libufs/sblock.c
  projects/suj/8/lib/libufs/type.c
  projects/suj/8/sbin/fsck_ffs/Makefile
  projects/suj/8/sbin/fsck_ffs/fsck.h
  projects/suj/8/sbin/fsck_ffs/gjournal.c
  projects/suj/8/sbin/fsck_ffs/main.c
  projects/suj/8/sbin/fsck_ffs/pass4.c
  projects/suj/8/sbin/fsck_ffs/pass5.c
  projects/suj/8/sbin/fsdb/fsdbutil.c
  projects/suj/8/sbin/mount/mount.c
  projects/suj/8/sbin/tunefs/tunefs.c
  projects/suj/8/sys/kern/vfs_bio.c
  projects/suj/8/sys/kern/vfs_subr.c
  projects/suj/8/sys/sys/buf.h
  projects/suj/8/sys/sys/mount.h
  projects/suj/8/sys/ufs/ffs/ffs_alloc.c
  projects/suj/8/sys/ufs/ffs/ffs_balloc.c
  projects/suj/8/sys/ufs/ffs/ffs_extern.h
  projects/suj/8/sys/ufs/ffs/ffs_inode.c
  projects/suj/8/sys/ufs/ffs/ffs_snapshot.c
  projects/suj/8/sys/ufs/ffs/ffs_softdep.c
  projects/suj/8/sys/ufs/ffs/ffs_subr.c
  projects/suj/8/sys/ufs/ffs/ffs_vfsops.c
  projects/suj/8/sys/ufs/ffs/ffs_vnops.c
  projects/suj/8/sys/ufs/ffs/fs.h
  projects/suj/8/sys/ufs/ffs/softdep.h
  projects/suj/8/sys/ufs/ufs/dinode.h
  projects/suj/8/sys/ufs/ufs/inode.h
  projects/suj/8/sys/ufs/ufs/ufs_dirhash.c
  projects/suj/8/sys/ufs/ufs/ufs_extern.h
  projects/suj/8/sys/ufs/ufs/ufs_lookup.c
  projects/suj/8/sys/ufs/ufs/ufs_vnops.c
  projects/suj/8/sys/ufs/ufs/ufsmount.h
  projects/suj/8/usr.sbin/makefs/ffs/ffs_bswap.c   (contents, props changed)
Directory Properties:
  projects/suj/8/   (props changed)
  projects/suj/8/ObsoleteFiles.inc   (props changed)
  projects/suj/8/UPDATING   (props changed)
  projects/suj/8/bin/   (props changed)
  projects/suj/8/bin/csh/   (props changed)
  projects/suj/8/bin/pax/   (props changed)
  projects/suj/8/bin/ps/   (props changed)
  projects/suj/8/bin/sh/   (props changed)
  projects/suj/8/cddl/compat/opensolaris/   (props changed)
  projects/suj/8/cddl/contrib/opensolaris/   (props changed)
  projects/suj/8/cddl/contrib/opensolaris/cmd/zdb/   (props changed)
  projects/suj/8/cddl/contrib/opensolaris/cmd/zfs/   (props changed)
  projects/suj/8/cddl/contrib/opensolaris/lib/libzfs/   (props changed)
  projects/suj/8/cddl/lib/libnvpair/   (props changed)
  projects/suj/8/contrib/bind9/   (props changed)
  projects/suj/8/contrib/bsnmp/   (props changed)
  projects/suj/8/contrib/bzip2/   (props changed)
  projects/suj/8/contrib/cpio/   (props changed)
  projects/suj/8/contrib/csup/   (props changed)
  projects/suj/8/contrib/ee/   (props changed)
  projects/suj/8/contrib/expat/   (props changed)
  projects/suj/8/contrib/file/   (props changed)
  projects/suj/8/contrib/gcc/   (props changed)
  projects/suj/8/contrib/gdb/   (props changed)
  projects/suj/8/contrib/gdtoa/   (props changed)
  projects/suj/8/contrib/groff/   (props changed)
  projects/suj/8/contrib/less/   (props changed)
  projects/suj/8/contrib/libpcap/   (props changed)
  projects/suj/8/contrib/ncurses/   (props changed)
  projects/suj/8/contrib/netcat/   (props changed)
  projects/suj/8/contrib/ntp/   (props changed)
  projects/suj/8/contrib/one-true-awk/   (props changed)
  projects/suj/8/contrib/openbsm/   (props changed)
  projects/suj/8/contrib/openpam/   (props changed)
  projects/suj/8/contrib/pf/   (props changed)
  projects/suj/8/contrib/sendmail/   (props changed)
  projects/suj/8/contrib/tcpdump/   (props changed)
  projects/suj/8/contrib/tcsh/   (props changed)
  projects/suj/8/contrib/top/   (props changed)
  projects/suj/8/contrib/top/install-sh   (props changed)
  projects/suj/8/contrib/traceroute/   (props changed)
  projects/suj/8/contrib/wpa/   (props changed)
  projects/suj/8/crypto/heimdal/   (props changed)
  projects/suj/8/crypto/openssh/   (props changed)
  projects/suj/8/crypto/openssl/   (props changed)
  projects/suj/8/etc/   (props changed)
  projects/suj/8/etc/rc.d/   (props changed)
  projects/suj/8/games/factor/   (props changed)
  projects/suj/8/games/fortune/   (props changed)
  projects/suj/8/games/fortune/datfiles/   (props changed)
  projects/suj/8/gnu/usr.bin/groff/   (props changed)
  projects/suj/8/gnu/usr.bin/patch/   (props changed)
  projects/suj/8/include/   (props changed)
  projects/suj/8/kerberos5/lib/libgssapi_krb5/   (props changed)
  projects/suj/8/kerberos5/lib/libgssapi_spnego/   (props changed)
  projects/suj/8/lib/bind/   (props changed)
  projects/suj/8/lib/csu/   (props changed)
  projects/suj/8/lib/libarchive/   (props changed)
  projects/suj/8/lib/libc/   (props changed)
  projects/suj/8/lib/libc/stdtime/   (props changed)
  projects/suj/8/lib/libdevinfo/   (props changed)
  projects/suj/8/lib/libdisk/   (props changed)
  projects/suj/8/lib/libelf/   (props changed)
  projects/suj/8/lib/libexpat/   (props changed)
  projects/suj/8/lib/libfetch/   (props changed)
  projects/suj/8/lib/libjail/   (props changed)
  projects/suj/8/lib/libkvm/   (props changed)
  projects/suj/8/lib/libpmc/   (props changed)
  projects/suj/8/lib/libradius/   (props changed)
  projects/suj/8/lib/libstand/   (props changed)
  projects/suj/8/lib/libtacplus/   (props changed)
  projects/suj/8/lib/libthr/   (props changed)
  projects/suj/8/lib/libusb/   (props changed)
  projects/suj/8/lib/libusb/usb.h   (props changed)
  projects/suj/8/lib/libutil/   (props changed)
  projects/suj/8/libexec/rtld-elf/   (props changed)
  projects/suj/8/release/   (props changed)
  projects/suj/8/release/doc/   (props changed)
  projects/suj/8/release/doc/en_US.ISO8859-1/hardware/   (props changed)
  projects/suj/8/sbin/   (props changed)
  projects/suj/8/sbin/atacontrol/   (props changed)
  projects/suj/8/sbin/bsdlabel/   (props changed)
  projects/suj/8/sbin/camcontrol/   (props changed)
  projects/suj/8/sbin/ddb/   (props changed)
  projects/suj/8/sbin/dhclient/   (props changed)
  projects/suj/8/sbin/fsck/   (props changed)
  projects/suj/8/sbin/geom/   (props changed)
  projects/suj/8/sbin/geom/class/stripe/   (props changed)
  projects/suj/8/sbin/ifconfig/   (props changed)
  projects/suj/8/sbin/ipfw/   (props changed)
  projects/suj/8/sbin/mksnap_ffs/   (props changed)
  projects/suj/8/sbin/mount/   (props changed)
  projects/suj/8/sbin/mount_cd9660/   (props changed)
  projects/suj/8/sbin/mount_msdosfs/   (props changed)
  projects/suj/8/sbin/mount_nfs/   (props changed)
  projects/suj/8/sbin/umount/   (props changed)
  projects/suj/8/secure/usr.bin/bdes/   (props changed)
  projects/suj/8/share/examples/   (props changed)
  projects/suj/8/share/man/man3/   (props changed)
  projects/suj/8/share/man/man4/   (props changed)
  projects/suj/8/share/man/man4/de.4   (props changed)
  projects/suj/8/share/man/man5/   (props changed)
  projects/suj/8/share/man/man7/   (props changed)
  projects/suj/8/share/man/man8/   (props changed)
  projects/suj/8/share/man/man9/   (props changed)
  projects/suj/8/share/misc/   (props changed)
  projects/suj/8/share/timedef/   (props changed)
  projects/suj/8/share/zoneinfo/   (props changed)
  projects/suj/8/sys/   (props changed)
  projects/suj/8/sys/amd64/include/xen/   (props changed)
  projects/suj/8/sys/cddl/contrib/opensolaris/   (props changed)
  projects/suj/8/sys/contrib/dev/acpica/   (props changed)
  projects/suj/8/sys/contrib/pf/   (props changed)
  projects/suj/8/sys/dev/xen/xenpci/   (props changed)
  projects/suj/8/tools/kerneldoc/subsys/   (props changed)
  projects/suj/8/tools/regression/bin/sh/   (props changed)
  projects/suj/8/tools/regression/lib/libc/   (props changed)
  projects/suj/8/tools/regression/lib/msun/test-conj.t   (props changed)
  projects/suj/8/tools/regression/poll/   (props changed)
  projects/suj/8/tools/regression/priv/   (props changed)
  projects/suj/8/tools/regression/usr.bin/pkill/pgrep-_g.t   (props changed)
  projects/suj/8/tools/regression/usr.bin/pkill/pgrep-_s.t   (props changed)
  projects/suj/8/tools/regression/usr.bin/pkill/pkill-_g.t   (props changed)
  projects/suj/8/tools/tools/ath/common/dumpregs.h   (props changed)
  projects/suj/8/tools/tools/ath/common/dumpregs_5210.c   (props changed)
  projects/suj/8/tools/tools/ath/common/dumpregs_5211.c   (props changed)
  projects/suj/8/tools/tools/ath/common/dumpregs_5212.c   (props changed)
  projects/suj/8/tools/tools/ath/common/dumpregs_5416.c   (props changed)
  projects/suj/8/tools/tools/termcap/termcap.pl   (props changed)
  projects/suj/8/tools/tools/vimage/   (props changed)
  projects/suj/8/usr.bin/awk/   (props changed)
  projects/suj/8/usr.bin/calendar/   (props changed)
  projects/suj/8/usr.bin/calendar/calendars/calendar.freebsd   (props changed)
  projects/suj/8/usr.bin/csup/   (props changed)
  projects/suj/8/usr.bin/fetch/   (props changed)
  projects/suj/8/usr.bin/find/   (props changed)
  projects/suj/8/usr.bin/finger/   (props changed)
  projects/suj/8/usr.bin/fstat/   (props changed)
  projects/suj/8/usr.bin/gcore/   (props changed)
  projects/suj/8/usr.bin/gzip/   (props changed)
  projects/suj/8/usr.bin/kdump/   (props changed)
  projects/suj/8/usr.bin/locale/   (props changed)
  projects/suj/8/usr.bin/look/   (props changed)
  projects/suj/8/usr.bin/netstat/   (props changed)
  projects/suj/8/usr.bin/perror/   (props changed)
  projects/suj/8/usr.bin/procstat/   (props changed)
  projects/suj/8/usr.bin/systat/   (props changed)
  projects/suj/8/usr.bin/tftp/   (props changed)
  projects/suj/8/usr.bin/unifdef/   (props changed)
  projects/suj/8/usr.bin/vmstat/   (props changed)
  projects/suj/8/usr.bin/w/   (props changed)
  projects/suj/8/usr.bin/whois/   (props changed)
  projects/suj/8/usr.sbin/   (props changed)
  projects/suj/8/usr.sbin/Makefile   (props changed)
  projects/suj/8/usr.sbin/acpi/   (props changed)
  projects/suj/8/usr.sbin/arp/   (props changed)
  projects/suj/8/usr.sbin/bsnmpd/   (props changed)
  projects/suj/8/usr.sbin/burncd/   (props changed)
  projects/suj/8/usr.sbin/cdcontrol/   (props changed)
  projects/suj/8/usr.sbin/crashinfo/   (props changed)
  projects/suj/8/usr.sbin/cron/   (props changed)
  projects/suj/8/usr.sbin/diskinfo/   (props changed)
  projects/suj/8/usr.sbin/dumpcis/cardinfo.h   (props changed)
  projects/suj/8/usr.sbin/dumpcis/cis.h   (props changed)
  projects/suj/8/usr.sbin/faithd/   (props changed)
  projects/suj/8/usr.sbin/freebsd-update/   (props changed)
  projects/suj/8/usr.sbin/inetd/   (props changed)
  projects/suj/8/usr.sbin/iostat/   (props changed)
  projects/suj/8/usr.sbin/jail/   (props changed)
  projects/suj/8/usr.sbin/jls/   (props changed)
  projects/suj/8/usr.sbin/lpr/   (props changed)
  projects/suj/8/usr.sbin/makefs/ffs/ffs_subr.c   (props changed)
  projects/suj/8/usr.sbin/makefs/ffs/ufs_bswap.h   (props changed)
  projects/suj/8/usr.sbin/makefs/getid.c   (props changed)
  projects/suj/8/usr.sbin/mergemaster/   (props changed)
  projects/suj/8/usr.sbin/mfiutil/mfiutil.8   (props changed)
  projects/suj/8/usr.sbin/ndp/   (props changed)
  projects/suj/8/usr.sbin/ntp/   (props changed)
  projects/suj/8/usr.sbin/powerd/   (props changed)
  projects/suj/8/usr.sbin/ppp/   (props changed)
  projects/suj/8/usr.sbin/pstat/   (props changed)
  projects/suj/8/usr.sbin/rtsold/   (props changed)
  projects/suj/8/usr.sbin/service/   (props changed)
  projects/suj/8/usr.sbin/sysinstall/   (props changed)
  projects/suj/8/usr.sbin/syslogd/   (props changed)
  projects/suj/8/usr.sbin/traceroute/   (props changed)
  projects/suj/8/usr.sbin/traceroute6/   (props changed)
  projects/suj/8/usr.sbin/usbconfig/   (props changed)
  projects/suj/8/usr.sbin/wpa/   (props changed)
  projects/suj/8/usr.sbin/ypserv/   (props changed)
  projects/suj/8/usr.sbin/zic/   (props changed)

Modified: projects/suj/8/lib/libufs/Makefile
==============================================================================
--- projects/suj/8/lib/libufs/Makefile	Wed Jan 20 09:48:46 2010	(r202687)
+++ projects/suj/8/lib/libufs/Makefile	Wed Jan 20 09:49:53 2010	(r202688)
@@ -3,7 +3,7 @@
 LIB=	ufs
 SHLIBDIR?= /lib
 
-SRCS=	block.c cgroup.c inode.c sblock.c type.c
+SRCS=	block.c cgroup.c inode.c sblock.c type.c ffs_subr.c ffs_tables.c
 INCS=	libufs.h
 
 MAN=	bread.3 cgread.3 libufs.3 sbread.3 ufs_disk_close.3
@@ -18,6 +18,9 @@ MLINKS+= ufs_disk_close.3 ufs_disk_write
 
 WARNS?=	2
 
+.PATH:  ${.CURDIR}/../../sys/ufs/ffs
+
+DEBUG_FLAGS = -g
 CFLAGS+= -D_LIBUFS
 .if defined(LIBUFS_DEBUG)
 CFLAGS+= -D_LIBUFS_DEBUGGING

Modified: projects/suj/8/lib/libufs/cgroup.c
==============================================================================
--- projects/suj/8/lib/libufs/cgroup.c	Wed Jan 20 09:48:46 2010	(r202687)
+++ projects/suj/8/lib/libufs/cgroup.c	Wed Jan 20 09:49:53 2010	(r202688)
@@ -40,11 +40,82 @@ __FBSDID("$FreeBSD$");
 #include <errno.h>
 #include <fcntl.h>
 #include <stdio.h>
+#include <stdlib.h>
 #include <string.h>
 #include <unistd.h>
 
 #include <libufs.h>
 
+ufs2_daddr_t
+cgballoc(struct uufsd *disk)
+{
+	u_int8_t *blksfree;
+	struct cg *cgp;
+	struct fs *fs;
+	long bno;
+
+	fs = &disk->d_fs;
+	cgp = &disk->d_cg;
+	blksfree = cg_blksfree(cgp);
+	for (bno = 0; bno < fs->fs_fpg / fs->fs_frag; bno++)
+		if (ffs_isblock(fs, blksfree, bno))
+			goto gotit;
+	return (0);
+gotit:
+	fs->fs_cs(fs, cgp->cg_cgx).cs_nbfree--;
+	ffs_clrblock(fs, blksfree, (long)bno);
+	ffs_clusteracct(fs, cgp, bno, -1);
+	cgp->cg_cs.cs_nbfree--;
+	fs->fs_cstotal.cs_nbfree--;
+	fs->fs_fmod = 1;
+	return (cgbase(fs, cgp->cg_cgx) + blkstofrags(fs, bno));
+}
+
+ino_t
+cgialloc(struct uufsd *disk)
+{
+	struct ufs2_dinode *dp2;
+	u_int8_t *inosused;
+	struct cg *cgp;
+	struct fs *fs;
+	ino_t ino;
+	int i;
+
+	fs = &disk->d_fs;
+	cgp = &disk->d_cg;
+	inosused = cg_inosused(cgp);
+	for (ino = 0; ino < fs->fs_ipg / NBBY; ino++)
+		if (isclr(inosused, ino))
+			goto gotit;
+	return (0);
+gotit:
+	if (fs->fs_magic == FS_UFS2_MAGIC &&
+	    ino + INOPB(fs) > cgp->cg_initediblk &&
+	    cgp->cg_initediblk < cgp->cg_niblk) {
+		char block[MAXBSIZE];
+		bzero(block, (int)fs->fs_bsize);
+		dp2 = (struct ufs2_dinode *)&block;
+		for (i = 0; i < INOPB(fs); i++) {
+			dp2->di_gen = arc4random() / 2 + 1;
+			dp2++;
+		}
+		if (bwrite(disk, ino_to_fsba(fs,
+		    cgp->cg_cgx * fs->fs_ipg + cgp->cg_initediblk),
+		    block, fs->fs_bsize))
+			return (0);
+		cgp->cg_initediblk += INOPB(fs);
+	}
+
+	setbit(inosused, ino);
+	cgp->cg_irotor = ino;
+	cgp->cg_cs.cs_nifree--;
+	fs->fs_cstotal.cs_nifree--;
+	fs->fs_cs(fs, cgp->cg_cgx).cs_nifree--;
+	fs->fs_fmod = 1;
+
+	return (ino + (cgp->cg_cgx * fs->fs_ipg));
+}
+
 int
 cgread(struct uufsd *disk)
 {
@@ -55,14 +126,12 @@ int
 cgread1(struct uufsd *disk, int c)
 {
 	struct fs *fs;
-	off_t ccg;
 
 	fs = &disk->d_fs;
 
 	if (c >= fs->fs_ncg) {
 		return (0);
 	}
-	ccg = fsbtodb(fs, cgtod(fs, c)) * disk->d_bsize;
 	if (bread(disk, fsbtodb(fs, cgtod(fs, c)), disk->d_cgunion.d_buf,
 	    fs->fs_bsize) == -1) {
 		ERROR(disk, "unable to read cylinder group");
@@ -73,6 +142,12 @@ cgread1(struct uufsd *disk, int c)
 }
 
 int
+cgwrite(struct uufsd *disk)
+{
+	return (cgwrite1(disk, disk->d_lcg));
+}
+
+int
 cgwrite1(struct uufsd *disk, int c)
 {
 	struct fs *fs;

Modified: projects/suj/8/lib/libufs/inode.c
==============================================================================
--- projects/suj/8/lib/libufs/inode.c	Wed Jan 20 09:48:46 2010	(r202687)
+++ projects/suj/8/lib/libufs/inode.c	Wed Jan 20 09:49:53 2010	(r202688)
@@ -93,3 +93,19 @@ gotit:	switch (disk->d_ufs) {
 	ERROR(disk, "unknown UFS filesystem type");
 	return (-1);
 }
+
+int
+putino(struct uufsd *disk)
+{
+	struct fs *fs;
+
+	fs = &disk->d_fs;
+	if (disk->d_inoblock == NULL) {
+		ERROR(disk, "No inode block allocated");
+		return (-1);
+	}
+	if (bwrite(disk, fsbtodb(fs, ino_to_fsba(&disk->d_fs, disk->d_inomin)),
+	    disk->d_inoblock, disk->d_fs.fs_bsize) <= 0)
+		return (-1);
+	return (0);
+}

Modified: projects/suj/8/lib/libufs/libufs.h
==============================================================================
--- projects/suj/8/lib/libufs/libufs.h	Wed Jan 20 09:48:46 2010	(r202687)
+++ projects/suj/8/lib/libufs/libufs.h	Wed Jan 20 09:49:53 2010	(r202688)
@@ -71,6 +71,7 @@ struct uufsd {
 	int d_fd;		/* raw device file descriptor */
 	long d_bsize;		/* device bsize */
 	ufs2_daddr_t d_sblock;	/* superblock location */
+	struct csum *d_sbcsum;	/* Superblock summary info */
 	caddr_t d_inoblock;	/* inode block */
 	ino_t d_inomin;		/* low inode */
 	ino_t d_inomax;		/* high inode */
@@ -109,14 +110,18 @@ int berase(struct uufsd *, ufs2_daddr_t,
 /*
  * cgroup.c
  */
+ufs2_daddr_t cgballoc(struct uufsd *);
+ino_t cgialloc(struct uufsd *);
 int cgread(struct uufsd *);
 int cgread1(struct uufsd *, int);
+int cgwrite(struct uufsd *);
 int cgwrite1(struct uufsd *, int);
 
 /*
  * inode.c
  */
 int getino(struct uufsd *, void **, ino_t, int *);
+int putino(struct uufsd *);
 
 /*
  * sblock.c
@@ -132,6 +137,16 @@ int ufs_disk_fillout(struct uufsd *, con
 int ufs_disk_fillout_blank(struct uufsd *, const char *);
 int ufs_disk_write(struct uufsd *);
 
+/*
+ * ffs_subr.c
+ */
+void	ffs_clrblock(struct fs *, u_char *, ufs1_daddr_t);
+void	ffs_clusteracct(struct fs *, struct cg *, ufs1_daddr_t, int);
+void	ffs_fragacct(struct fs *, int, int32_t [], int);
+int	ffs_isblock(struct fs *, u_char *, ufs1_daddr_t);
+int	ffs_isfreeblock(struct fs *, u_char *, ufs1_daddr_t);
+void	ffs_setblock(struct fs *, u_char *, ufs1_daddr_t);
+
 __END_DECLS
 
 #endif	/* __LIBUFS_H__ */

Modified: projects/suj/8/lib/libufs/sblock.c
==============================================================================
--- projects/suj/8/lib/libufs/sblock.c	Wed Jan 20 09:48:46 2010	(r202687)
+++ projects/suj/8/lib/libufs/sblock.c	Wed Jan 20 09:49:53 2010	(r202688)
@@ -40,6 +40,7 @@ __FBSDID("$FreeBSD$");
 #include <errno.h>
 #include <stdio.h>
 #include <string.h>
+#include <stdlib.h>
 #include <unistd.h>
 
 #include <libufs.h>
@@ -49,8 +50,11 @@ static int superblocks[] = SBLOCKSEARCH;
 int
 sbread(struct uufsd *disk)
 {
+	uint8_t block[MAXBSIZE];
 	struct fs *fs;
 	int sb, superblock;
+	int i, size, blks;
+	uint8_t *space;
 
 	ERROR(disk, NULL);
 
@@ -86,6 +90,34 @@ sbread(struct uufsd *disk)
 	}
 	disk->d_bsize = fs->fs_fsize / fsbtodb(fs, 1);
 	disk->d_sblock = superblock / disk->d_bsize;
+	/*
+	 * Read in the superblock summary information.
+	 */
+	size = fs->fs_cssize;
+	blks = howmany(size, fs->fs_fsize);
+	size += fs->fs_ncg * sizeof(int32_t);
+	space = malloc(size);
+	if (space == NULL) {
+		ERROR(disk, "failed to allocate space for summary information");
+		return (-1);
+	}
+	fs->fs_csp = (struct csum *)space;
+	for (i = 0; i < blks; i += fs->fs_frag) {
+		size = fs->fs_bsize;
+		if (i + fs->fs_frag > blks)
+			size = (blks - i) * fs->fs_fsize;
+		if (bread(disk, fsbtodb(fs, fs->fs_csaddr + i), block, size)
+		    == -1) {
+			ERROR(disk, "Failed to read sb summary information");
+			free(fs->fs_csp);
+			return (-1);
+		}
+		bcopy(block, space, size);
+		space += size;
+	}
+	fs->fs_maxcluster = (uint32_t *)space;
+	disk->d_sbcsum = fs->fs_csp;
+
 	return (0);
 }
 
@@ -93,7 +125,8 @@ int
 sbwrite(struct uufsd *disk, int all)
 {
 	struct fs *fs;
-	int i;
+	int i, blks, size;
+	uint8_t *space;
 
 	ERROR(disk, NULL);
 
@@ -107,6 +140,22 @@ sbwrite(struct uufsd *disk, int all)
 		ERROR(disk, "failed to write superblock");
 		return (-1);
 	}
+	/*
+	 * Write superblock summary information.
+	 */
+	blks = howmany(fs->fs_cssize, fs->fs_fsize);
+	space = (uint8_t *)disk->d_sbcsum;
+	for (i = 0; i < blks; i += fs->fs_frag) {
+		size = fs->fs_bsize;
+		if (i + fs->fs_frag > blks)
+			size = (blks - i) * fs->fs_fsize;
+		if (bwrite(disk, fsbtodb(fs, fs->fs_csaddr + i), space, size)
+		    == -1) {
+			ERROR(disk, "Failed to write sb summary information");
+			return (-1);
+		}
+		space += size;
+	}
 	if (all) {
 		for (i = 0; i < fs->fs_ncg; i++)
 			if (bwrite(disk, fsbtodb(fs, cgsblock(fs, i)),

Modified: projects/suj/8/lib/libufs/type.c
==============================================================================
--- projects/suj/8/lib/libufs/type.c	Wed Jan 20 09:48:46 2010	(r202687)
+++ projects/suj/8/lib/libufs/type.c	Wed Jan 20 09:49:53 2010	(r202688)
@@ -66,6 +66,10 @@ ufs_disk_close(struct uufsd *disk)
 		free((char *)(uintptr_t)disk->d_name);
 		disk->d_name = NULL;
 	}
+	if (disk->d_sbcsum != NULL) {
+		free(disk->d_sbcsum);
+		disk->d_sbcsum = NULL;
+	}
 	return (0);
 }
 
@@ -156,6 +160,7 @@ again:	if ((ret = stat(name, &st)) < 0) 
 	disk->d_mine = 0;
 	disk->d_ufs = 0;
 	disk->d_error = NULL;
+	disk->d_sbcsum = NULL;
 
 	if (oname != name) {
 		name = strdup(name);

Modified: projects/suj/8/sbin/fsck_ffs/Makefile
==============================================================================
--- projects/suj/8/sbin/fsck_ffs/Makefile	Wed Jan 20 09:48:46 2010	(r202687)
+++ projects/suj/8/sbin/fsck_ffs/Makefile	Wed Jan 20 09:49:53 2010	(r202688)
@@ -7,8 +7,7 @@ LINKS+=	${BINDIR}/fsck_ffs ${BINDIR}/fsc
 MAN=	fsck_ffs.8
 MLINKS=	fsck_ffs.8 fsck_ufs.8 fsck_ffs.8 fsck_4.2bsd.8
 SRCS=	dir.c ea.c fsutil.c inode.c main.c pass1.c pass1b.c pass2.c pass3.c \
-	pass4.c pass5.c setup.c utilities.c ffs_subr.c ffs_tables.c gjournal.c \
-	getmntopts.c
+	pass4.c pass5.c setup.c suj.c utilities.c gjournal.c getmntopts.c
 DPADD=	${LIBUFS}
 LDADD=	-lufs
 WARNS?=	2

Modified: projects/suj/8/sbin/fsck_ffs/fsck.h
==============================================================================
--- projects/suj/8/sbin/fsck_ffs/fsck.h	Wed Jan 20 09:48:46 2010	(r202687)
+++ projects/suj/8/sbin/fsck_ffs/fsck.h	Wed Jan 20 09:49:53 2010	(r202688)
@@ -347,10 +347,6 @@ void		direrror(ino_t ino, const char *er
 int		dirscan(struct inodesc *);
 int		dofix(struct inodesc *, const char *msg);
 int		eascan(struct inodesc *, struct ufs2_dinode *dp);
-void		ffs_clrblock(struct fs *, u_char *, ufs1_daddr_t);
-void		ffs_fragacct(struct fs *, int, int32_t [], int);
-int		ffs_isblock(struct fs *, u_char *, ufs1_daddr_t);
-void		ffs_setblock(struct fs *, u_char *, ufs1_daddr_t);
 void		fileerror(ino_t cwd, ino_t ino, const char *errmesg);
 int		findino(struct inodesc *);
 int		findname(struct inodesc *);
@@ -392,3 +388,4 @@ void		sblock_init(void);
 void		setinodebuf(ino_t);
 int		setup(char *dev);
 void		gjournal_check(const char *filesys);
+void		suj_check(const char *filesys);

Modified: projects/suj/8/sbin/fsck_ffs/gjournal.c
==============================================================================
--- projects/suj/8/sbin/fsck_ffs/gjournal.c	Wed Jan 20 09:48:46 2010	(r202687)
+++ projects/suj/8/sbin/fsck_ffs/gjournal.c	Wed Jan 20 09:49:53 2010	(r202688)
@@ -96,27 +96,6 @@ struct ufs2_dinode ufs2_zino;
 static void putcgs(void);
 
 /*
- * Write current block of inodes.
- */
-static int
-putino(struct uufsd *disk, ino_t inode)
-{
-	caddr_t inoblock;
-	struct fs *fs;
-	ssize_t ret;
-
-	fs = &disk->d_fs;
-	inoblock = disk->d_inoblock;
-
-	assert(inoblock != NULL);
-	assert(inode >= disk->d_inomin && inode <= disk->d_inomax);
-	ret = bwrite(disk, fsbtodb(fs, ino_to_fsba(fs, inode)), inoblock,
-	    fs->fs_bsize);
-
-	return (ret == -1 ? -1 : 0);
-}
-
-/*
  * Return cylinder group from the cache or load it if it is not in the
  * cache yet.
  * Don't cache more than MAX_CACHED_CGS cylinder groups.
@@ -242,13 +221,11 @@ cancelcgs(void)
 #endif
 
 /*
- * Open the given provider, load statistics.
+ * Open the given provider, load superblock.
  */
 static void
-getdisk(void)
+opendisk(void)
 {
-	int i;
-
 	if (disk != NULL)
 		return;
 	disk = malloc(sizeof(*disk));
@@ -259,24 +236,6 @@ getdisk(void)
 		    disk->d_error);
 	}
 	fs = &disk->d_fs;
-	fs->fs_csp = malloc((size_t)fs->fs_cssize);
-	if (fs->fs_csp == NULL)
-		err(1, "malloc(%zu)", (size_t)fs->fs_cssize);
-	bzero(fs->fs_csp, (size_t)fs->fs_cssize);
-	for (i = 0; i < fs->fs_cssize; i += fs->fs_bsize) {
-		if (bread(disk, fsbtodb(fs, fs->fs_csaddr + numfrags(fs, i)),
-		    (void *)(((char *)fs->fs_csp) + i),
-		    (size_t)(fs->fs_cssize - i < fs->fs_bsize ? fs->fs_cssize - i : fs->fs_bsize)) == -1) {
-			err(1, "bread: %s", disk->d_error);
-		}
-	}
-	if (fs->fs_contigsumsize > 0) {
-		fs->fs_maxcluster = malloc(fs->fs_ncg * sizeof(int32_t));
-		if (fs->fs_maxcluster == NULL)
-			err(1, "malloc(%zu)", fs->fs_ncg * sizeof(int32_t));
-		for (i = 0; i < fs->fs_ncg; i++)
-			fs->fs_maxcluster[i] = fs->fs_contigsumsize;
-	}
 }
 
 /*
@@ -286,11 +245,6 @@ static void
 closedisk(void)
 {
 
-	free(fs->fs_csp);
-	if (fs->fs_contigsumsize > 0) {
-		free(fs->fs_maxcluster);
-		fs->fs_maxcluster = NULL;
-	}
 	fs->fs_clean = 1;
 	if (sbwrite(disk, 0) == -1)
 		err(1, "sbwrite(%s)", devnam);
@@ -301,227 +255,6 @@ closedisk(void)
 	fs = NULL;
 }
 
-/*
- * Write the statistics back, call closedisk().
- */
-static void
-putdisk(void)
-{
-	int i;
-
-	assert(disk != NULL && fs != NULL);
-	for (i = 0; i < fs->fs_cssize; i += fs->fs_bsize) {
-		if (bwrite(disk, fsbtodb(fs, fs->fs_csaddr + numfrags(fs, i)),
-		    (void *)(((char *)fs->fs_csp) + i),
-		    (size_t)(fs->fs_cssize - i < fs->fs_bsize ? fs->fs_cssize - i : fs->fs_bsize)) == -1) {
-			err(1, "bwrite: %s", disk->d_error);
-		}
-	}
-	closedisk();
-}
-
-#if 0
-/*
- * Free memory, close the disk, but don't write anything back.
- */
-static void
-canceldisk(void)
-{
-	int i;
-
-	assert(disk != NULL && fs != NULL);
-	free(fs->fs_csp);
-	if (fs->fs_contigsumsize > 0)
-		free(fs->fs_maxcluster);
-	if (ufs_disk_close(disk) == -1)
-		err(1, "ufs_disk_close(%s)", devnam);
-	free(disk);
-	disk = NULL;
-	fs = NULL;
-}
-#endif
-
-static int
-isblock(unsigned char *cp, ufs1_daddr_t h)
-{
-	unsigned char mask;
-
-	switch ((int)fs->fs_frag) {
-	case 8:
-		return (cp[h] == 0xff);
-	case 4:
-		mask = 0x0f << ((h & 0x1) << 2);
-		return ((cp[h >> 1] & mask) == mask);
-	case 2:
-		mask = 0x03 << ((h & 0x3) << 1);
-		return ((cp[h >> 2] & mask) == mask);
-	case 1:
-		mask = 0x01 << (h & 0x7);
-		return ((cp[h >> 3] & mask) == mask);
-	default:
-		assert(!"isblock: invalid number of fragments");
-	}
-	return (0);
-}
-
-/*
- * put a block into the map
- */
-static void
-setblock(unsigned char *cp, ufs1_daddr_t h)
-{
-
-	switch ((int)fs->fs_frag) {
-	case 8:
-		cp[h] = 0xff;
-		return;
-	case 4:
-		cp[h >> 1] |= (0x0f << ((h & 0x1) << 2));
-		return;
-	case 2:
-		cp[h >> 2] |= (0x03 << ((h & 0x3) << 1));
-		return;
-	case 1:
-		cp[h >> 3] |= (0x01 << (h & 0x7));
-		return;
-	default:
-		assert(!"setblock: invalid number of fragments");
-	}
-}
-
-/*
- * check if a block is free
- */
-static int
-isfreeblock(u_char *cp, ufs1_daddr_t h)
-{
-
-	switch ((int)fs->fs_frag) {
-	case 8:
-		return (cp[h] == 0);
-	case 4:
-		return ((cp[h >> 1] & (0x0f << ((h & 0x1) << 2))) == 0);
-	case 2:
-		return ((cp[h >> 2] & (0x03 << ((h & 0x3) << 1))) == 0);
-	case 1:
-		return ((cp[h >> 3] & (0x01 << (h & 0x7))) == 0);
-	default:
-		assert(!"isfreeblock: invalid number of fragments");
-	}
-	return (0);
-}
-
-/*
- * Update the frsum fields to reflect addition or deletion
- * of some frags.
- */
-void
-fragacct(int fragmap, int32_t fraglist[], int cnt)
-{
-	int inblk;
-	int field, subfield;
-	int siz, pos;
-
-	inblk = (int)(fragtbl[fs->fs_frag][fragmap]) << 1;
-	fragmap <<= 1;
-	for (siz = 1; siz < fs->fs_frag; siz++) {
-		if ((inblk & (1 << (siz + (fs->fs_frag % NBBY)))) == 0)
-			continue;
-		field = around[siz];
-		subfield = inside[siz];
-		for (pos = siz; pos <= fs->fs_frag; pos++) {
-			if ((fragmap & field) == subfield) {
-				fraglist[siz] += cnt;
-				pos += siz;
-				field <<= siz;
-				subfield <<= siz;
-			}
-			field <<= 1;
-			subfield <<= 1;
-		}
-	}
-}
-
-static void
-clusteracct(struct cg *cgp, ufs1_daddr_t blkno)
-{
-	int32_t *sump;
-	int32_t *lp;
-	u_char *freemapp, *mapp;
-	int i, start, end, forw, back, map, bit;
-
-	if (fs->fs_contigsumsize <= 0)
-		return;
-	freemapp = cg_clustersfree(cgp);
-	sump = cg_clustersum(cgp);
-	/*
-	 * Clear the actual block.
-	 */
-	setbit(freemapp, blkno);
-	/*
-	 * Find the size of the cluster going forward.
-	 */
-	start = blkno + 1;
-	end = start + fs->fs_contigsumsize;
-	if (end >= cgp->cg_nclusterblks)
-		end = cgp->cg_nclusterblks;
-	mapp = &freemapp[start / NBBY];
-	map = *mapp++;
-	bit = 1 << (start % NBBY);
-	for (i = start; i < end; i++) {
-		if ((map & bit) == 0)
-			break;
-		if ((i & (NBBY - 1)) != (NBBY - 1)) {
-			bit <<= 1;
-		} else {
-			map = *mapp++;
-			bit = 1;
-		}
-	}
-	forw = i - start;
-	/*
-	 * Find the size of the cluster going backward.
-	 */
-	start = blkno - 1;
-	end = start - fs->fs_contigsumsize;
-	if (end < 0)
-		end = -1;
-	mapp = &freemapp[start / NBBY];
-	map = *mapp--;
-	bit = 1 << (start % NBBY);
-	for (i = start; i > end; i--) {
-		if ((map & bit) == 0)
-			break;
-		if ((i & (NBBY - 1)) != 0) {
-			bit >>= 1;
-		} else {
-			map = *mapp--;
-			bit = 1 << (NBBY - 1);
-		}
-	}
-	back = start - i;
-	/*
-	 * Account for old cluster and the possibly new forward and
-	 * back clusters.
-	 */
-	i = back + forw + 1;
-	if (i > fs->fs_contigsumsize)
-		i = fs->fs_contigsumsize;
-	sump[i]++;
-	if (back > 0)
-		sump[back]--;
-	if (forw > 0)
-		sump[forw]--;
-	/*
-	 * Update cluster summary information.
-	 */
-	lp = &sump[fs->fs_contigsumsize];
-	for (i = fs->fs_contigsumsize; i > 0; i--)
-		if (*lp-- > 0)
-			break;
-	fs->fs_maxcluster[cgp->cg_cgx] = i;
-}
-
 static void
 blkfree(ufs2_daddr_t bno, long size)
 {
@@ -539,10 +272,10 @@ blkfree(ufs2_daddr_t bno, long size)
 	blksfree = cg_blksfree(cgp);
 	if (size == fs->fs_bsize) {
 		fragno = fragstoblks(fs, cgbno);
-		if (!isfreeblock(blksfree, fragno))
+		if (!ffs_isfreeblock(fs, blksfree, fragno))
 			assert(!"blkfree: freeing free block");
-		setblock(blksfree, fragno);
-		clusteracct(cgp, fragno);
+		ffs_setblock(fs, blksfree, fragno);
+		ffs_clusteracct(fs, cgp, fragno, 1);
 		cgp->cg_cs.cs_nbfree++;
 		fs->fs_cstotal.cs_nbfree++;
 		fs->fs_cs(fs, cg).cs_nbfree++;
@@ -552,7 +285,7 @@ blkfree(ufs2_daddr_t bno, long size)
 		 * decrement the counts associated with the old frags
 		 */
 		blk = blkmap(fs, blksfree, bbase);
-		fragacct(blk, cgp->cg_frsum, -1);
+		ffs_fragacct(fs, blk, cgp->cg_frsum, -1);
 		/*
 		 * deallocate the fragment
 		 */
@@ -569,16 +302,16 @@ blkfree(ufs2_daddr_t bno, long size)
 		 * add back in counts associated with the new frags
 		 */
 		blk = blkmap(fs, blksfree, bbase);
-		fragacct(blk, cgp->cg_frsum, 1);
+		ffs_fragacct(fs, blk, cgp->cg_frsum, 1);
 		/*
 		 * if a complete block has been reassembled, account for it
 		 */
 		fragno = fragstoblks(fs, bbase);
-		if (isblock(blksfree, fragno)) {
+		if (ffs_isblock(fs, blksfree, fragno)) {
 			cgp->cg_cs.cs_nffree -= fs->fs_frag;
 			fs->fs_cstotal.cs_nffree -= fs->fs_frag;
 			fs->fs_cs(fs, cg).cs_nffree -= fs->fs_frag;
-			clusteracct(cgp, fragno);
+			ffs_clusteracct(fs, cgp, fragno, 1);
 			cgp->cg_cs.cs_nbfree++;
 			fs->fs_cstotal.cs_nbfree++;
 			fs->fs_cs(fs, cg).cs_nbfree++;
@@ -599,7 +332,7 @@ freeindir(ufs2_daddr_t blk, int level)
 	if (bread(disk, fsbtodb(fs, blk), (void *)&sblks, (size_t)fs->fs_bsize) == -1)
 		err(1, "bread: %s", disk->d_error);
 	blks = (ufs2_daddr_t *)&sblks;
-	for (i = 0; i < howmany(fs->fs_bsize, sizeof(ufs2_daddr_t)); i++) {
+	for (i = 0; i < NINDIR(fs); i++) {
 		if (blks[i] == 0)
 			break;
 		if (level == 0)
@@ -671,7 +404,7 @@ gjournal_check(const char *filesys)
 	int cg, mode;
 
 	devnam = filesys;
-	getdisk();
+	opendisk();
 	/* Are there any unreferenced inodes in this file system? */
 	if (fs->fs_unrefs == 0) {
 		//printf("No unreferenced inodes.\n");
@@ -747,7 +480,7 @@ gjournal_check(const char *filesys)
 			/* Zero-fill the inode. */
 			*dino = ufs2_zino;
 			/* Write the inode back. */
-			if (putino(disk, ino) == -1)
+			if (putino(disk) == -1)
 				err(1, "putino(cg=%d ino=%d)", cg, ino);
 			if (cgp->cg_unrefs == 0) {
 				//printf("No more unreferenced inodes in cg=%d.\n", cg);
@@ -772,5 +505,5 @@ gjournal_check(const char *filesys)
 	/* Write back modified cylinder groups. */
 	putcgs();
 	/* Write back updated statistics and super-block. */
-	putdisk();
+	closedisk();
 }

Modified: projects/suj/8/sbin/fsck_ffs/main.c
==============================================================================
--- projects/suj/8/sbin/fsck_ffs/main.c	Wed Jan 20 09:48:46 2010	(r202687)
+++ projects/suj/8/sbin/fsck_ffs/main.c	Wed Jan 20 09:49:53 2010	(r202688)
@@ -256,7 +256,7 @@ checkfilesys(char *filesys)
 	}
 	if (ckclean && skipclean) {
 		/*
-		 * If file system is gjournaled, check it here.
+		 * If file system is gjournaled or su+j, check it here.
 		 */
 		if ((fsreadfd = open(filesys, O_RDONLY)) < 0 || readsb(0) == 0)
 			exit(3);	/* Cannot read superblock */
@@ -278,6 +278,18 @@ checkfilesys(char *filesys)
 				    "CANNOT RUN FAST FSCK\n");
 			}
 		}
+#if 0
+		if ((sblock.fs_flags & FS_SUJ) != 0) {
+			if (sblock.fs_clean == 1) {
+				pwarn("FILE SYSTEM CLEAN; SKIPPING CHECKS\n");
+				exit(0);
+			}
+			suj_check(filesys);
+			if (chkdoreload(mntp) == 0)
+				exit(0);
+			exit(4);
+		}
+#endif
 	}
 	/*
 	 * If we are to do a background check:
@@ -299,7 +311,7 @@ checkfilesys(char *filesys)
 			pfatal("MOUNTED READ-ONLY, CANNOT RUN IN BACKGROUND\n");
 		} else if ((fsreadfd = open(filesys, O_RDONLY)) >= 0) {
 			if (readsb(0) != 0) {
-				if (sblock.fs_flags & FS_NEEDSFSCK) {
+				if (sblock.fs_flags & (FS_NEEDSFSCK | FS_SUJ)) {
 					bkgrdflag = 0;
 					pfatal("UNEXPECTED INCONSISTENCY, %s\n",
 					    "CANNOT RUN IN BACKGROUND\n");
@@ -478,6 +490,7 @@ checkfilesys(char *filesys)
 	inocleanup();
 	if (fsmodified) {
 		sblock.fs_time = time(NULL);
+		sblock.fs_mtime = time(NULL);
 		sbdirty();
 	}
 	if (cvtlevel && sblk.b_dirty) {

Modified: projects/suj/8/sbin/fsck_ffs/pass4.c
==============================================================================
--- projects/suj/8/sbin/fsck_ffs/pass4.c	Wed Jan 20 09:48:46 2010	(r202687)
+++ projects/suj/8/sbin/fsck_ffs/pass4.c	Wed Jan 20 09:49:53 2010	(r202688)
@@ -72,6 +72,9 @@ pass4(void)
 		for (i = 0; i < inostathead[cg].il_numalloced; i++, inumber++) {
 			if (inumber < ROOTINO)
 				continue;
+			if (sblock.fs_flags & FS_SUJ &&
+			    inumber == sblock.fs_sujournal)
+				continue;
 			idesc.id_number = inumber;
 			switch (inoinfo(inumber)->ino_state) {
 

Modified: projects/suj/8/sbin/fsck_ffs/pass5.c
==============================================================================
--- projects/suj/8/sbin/fsck_ffs/pass5.c	Wed Jan 20 09:48:46 2010	(r202687)
+++ projects/suj/8/sbin/fsck_ffs/pass5.c	Wed Jan 20 09:49:53 2010	(r202688)
@@ -45,6 +45,7 @@ __FBSDID("$FreeBSD$");
 #include <inttypes.h>
 #include <limits.h>
 #include <string.h>
+#include <libufs.h>
 
 #include "fsck.h"
 

Copied: projects/suj/8/sbin/fsck_ffs/suj.c (from r202685, projects/suj/head/sbin/fsck_ffs/suj.c)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ projects/suj/8/sbin/fsck_ffs/suj.c	Wed Jan 20 09:49:53 2010	(r202688, copy of r202685, projects/suj/head/sbin/fsck_ffs/suj.c)
@@ -0,0 +1,2065 @@
+/*-
+ * Copyright (c) 2009 Jeffrey W. Roberson <jeff@FreeBSD.org>
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHORS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#include <sys/cdefs.h>
+__FBSDID("$FreeBSD$");
+
+#include <sys/param.h>
+#include <sys/disklabel.h>
+#include <sys/mount.h>
+#include <sys/stat.h>
+
+#include <ufs/ufs/ufsmount.h>
+#include <ufs/ufs/dinode.h>
+#include <ufs/ufs/dir.h>
+#include <ufs/ffs/fs.h>
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <stdint.h>
+#include <libufs.h>
+#include <strings.h>
+#include <err.h>
+#include <assert.h>
+
+#include "fsck.h"
+
+static void	ino_decr(ino_t);
+
+#define	SUJ_HASHSIZE	128
+#define	SUJ_HASHMASK	(SUJ_HASHSIZE - 1)
+#define	SUJ_HASH(x)	((x * 2654435761) & SUJ_HASHMASK)
+
+struct suj_seg {
+	TAILQ_ENTRY(suj_seg) ss_next;
+	struct jsegrec	ss_rec;
+	uint8_t		*ss_blk;
+};
+
+struct suj_rec {
+	TAILQ_ENTRY(suj_rec) sr_next;
+	union jrec	*sr_rec;
+};
+TAILQ_HEAD(srechd, suj_rec);
+
+struct suj_ino {
+	LIST_ENTRY(suj_ino)	si_next;
+	struct srechd		si_recs;
+	struct srechd		si_movs;
+	ino_t			si_ino;
+	int			si_nlinkadj;
+	int			si_skipparent;
+	int			si_linkadj;
+	int			si_hasrecs;
+	int			si_blkadj;
+};
+LIST_HEAD(inohd, suj_ino);
+
+struct suj_blk {
+	LIST_ENTRY(suj_blk)	sb_next;
+	struct srechd		sb_recs;
+	ufs2_daddr_t		sb_blk;
+};
+LIST_HEAD(blkhd, suj_blk);
+
+struct data_blk {
+	LIST_ENTRY(data_blk)	db_next;
+	uint8_t			*db_buf;
+	ufs2_daddr_t		db_blk;
+	int			db_size;
+};
+
+struct ino_blk {
+	LIST_ENTRY(ino_blk)	ib_next;
+	uint8_t			*ib_buf;
+	int			ib_dirty;
+	ufs2_daddr_t		ib_blk;
+};
+LIST_HEAD(iblkhd, ino_blk);
+
+struct suj_cg {
+	LIST_ENTRY(suj_cg)	sc_next;
+	struct blkhd		sc_blkhash[SUJ_HASHSIZE];
+	struct inohd		sc_inohash[SUJ_HASHSIZE];
+	struct iblkhd		sc_iblkhash[SUJ_HASHSIZE];
+	struct ino_blk		*sc_lastiblk;
+	uint8_t			*sc_cgbuf;
+	struct cg		*sc_cgp;
+	int			sc_dirty;
+	int			sc_cgx;
+};
+
+LIST_HEAD(cghd, suj_cg) cghash[SUJ_HASHSIZE];
+LIST_HEAD(dblkhd, data_blk) dbhash[SUJ_HASHSIZE];
+
+TAILQ_HEAD(seghd, suj_seg) allsegs;
+uint64_t oldseq;
+static struct uufsd *disk = NULL;
+static struct fs *fs = NULL;
+
+/*
+ * Summary statistics.
+ */
+uint64_t freefrags;
+uint64_t freeblocks;
+uint64_t freeinos;
+uint64_t freedir;
+uint64_t jbytes;
+uint64_t jrecs;
+
+typedef void (*ino_visitor)(ino_t, ufs_lbn_t, ufs2_daddr_t, int);
+
+static void *
+errmalloc(size_t n)
+{
+	void *a;
+
+	a = malloc(n);
+	if (a == NULL)
+		errx(1, "malloc(%zu)", n);
+	return (a);
+}
+
+/*
+ * Open the given provider, load superblock.
+ */
+static void
+opendisk(const char *devnam)
+{
+	if (disk != NULL)
+		return;
+	disk = malloc(sizeof(*disk));
+	if (disk == NULL)
+		errx(1, "malloc(%zu)", sizeof(*disk));
+	if (ufs_disk_fillout(disk, devnam) == -1) {
+		err(1, "ufs_disk_fillout(%s) failed: %s", devnam,
+		    disk->d_error);
+	}
+	fs = &disk->d_fs;
+	/*
+	 * Setup a few things so reply() can work.
+	 */
+	bcopy(fs, &sblock, sizeof(sblock));
+	fsreadfd = disk->d_fd;
+	fswritefd = disk->d_fd;
+}
+
+/*
+ * Mark file system as clean, write the super-block back, close the disk.
+ */
+static void
+closedisk(const char *devnam)
+{
+	struct csum *cgsum;
+	int i;
+
+	/*
+	 * Recompute the fs summary info from correct cs summaries.
+	 */
+	bzero(&fs->fs_cstotal, sizeof(struct csum_total));
+	for (i = 0; i < fs->fs_ncg; i++) {
+		cgsum = &fs->fs_cs(fs, i);
+		fs->fs_cstotal.cs_nffree += cgsum->cs_nffree;
+		fs->fs_cstotal.cs_nbfree += cgsum->cs_nbfree;
+		fs->fs_cstotal.cs_nifree += cgsum->cs_nifree;
+		fs->fs_cstotal.cs_ndir += cgsum->cs_ndir;
+	}
+	/* XXX Don't set clean for now, we don't trust the journal. */
+	/* fs->fs_clean = 1; */
+	fs->fs_time = time(NULL);
+	fs->fs_mtime = time(NULL);
+	if (sbwrite(disk, 0) == -1)
+		err(1, "sbwrite(%s)", devnam);
+	if (ufs_disk_close(disk) == -1)
+		err(1, "ufs_disk_close(%s)", devnam);

*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***

From owner-svn-src-projects@FreeBSD.ORG  Wed Jan 20 10:15:56 2010
Return-Path: <owner-svn-src-projects@FreeBSD.ORG>
Delivered-To: svn-src-projects@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 30AEE1065692;
	Wed, 20 Jan 2010 10:15:56 +0000 (UTC)
	(envelope-from jeff@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 084238FC1A;
	Wed, 20 Jan 2010 10:15:56 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o0KAFt90082606;
	Wed, 20 Jan 2010 10:15:55 GMT (envelope-from jeff@svn.freebsd.org)
Received: (from jeff@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id o0KAFtm5082605;
	Wed, 20 Jan 2010 10:15:55 GMT (envelope-from jeff@svn.freebsd.org)
Message-Id: <201001201015.o0KAFtm5082605@svn.freebsd.org>
From: Jeff Roberson <jeff@FreeBSD.org>
Date: Wed, 20 Jan 2010 10:15:55 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-projects@freebsd.org
X-SVN-Group: projects
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r202689 - projects/suj
X-BeenThere: svn-src-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the src &quot; projects&quot;
	tree" <svn-src-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
	<mailto:svn-src-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-projects>
List-Post: <mailto:svn-src-projects@freebsd.org>
List-Help: <mailto:svn-src-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
	<mailto:svn-src-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Wed, 20 Jan 2010 10:15:56 -0000

Author: jeff
Date: Wed Jan 20 10:15:55 2010
New Revision: 202689
URL: http://svn.freebsd.org/changeset/base/202689

Log:
   - Add a text file to easily keep track of various revision numbers
     for easy diffing and merging.

Added:
  projects/suj/rev.txt

Added: projects/suj/rev.txt
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ projects/suj/rev.txt	Wed Jan 20 10:15:55 2010	(r202689)
@@ -0,0 +1,5 @@
+suj base revisions for diffing
+head - 202673
+8 - 202674
+7 - 206275
+6 - 202676

From owner-svn-src-projects@FreeBSD.ORG  Wed Jan 20 10:21:04 2010
Return-Path: <owner-svn-src-projects@FreeBSD.ORG>
Delivered-To: svn-src-projects@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id EF851106566C;
	Wed, 20 Jan 2010 10:21:04 +0000 (UTC)
	(envelope-from jeff@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id DCE078FC0A;
	Wed, 20 Jan 2010 10:21:04 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o0KAL4nr083803;
	Wed, 20 Jan 2010 10:21:04 GMT (envelope-from jeff@svn.freebsd.org)
Received: (from jeff@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id o0KAL46F083788;
	Wed, 20 Jan 2010 10:21:04 GMT (envelope-from jeff@svn.freebsd.org)
Message-Id: <201001201021.o0KAL46F083788@svn.freebsd.org>
From: Jeff Roberson <jeff@FreeBSD.org>
Date: Wed, 20 Jan 2010 10:21:04 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-projects@freebsd.org
X-SVN-Group: projects
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r202690 - in projects/suj/7: . games/fortune
	games/fortune/datfiles gnu/usr.bin/groff/tmac lib/libufs
	sbin/fsck_ffs sbin/fsdb sbin/mount sbin/tunefs share/man/man4
	share/man/man5 share/...
X-BeenThere: svn-src-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the src &quot; projects&quot;
	tree" <svn-src-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
	<mailto:svn-src-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-projects>
List-Post: <mailto:svn-src-projects@freebsd.org>
List-Help: <mailto:svn-src-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
	<mailto:svn-src-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Wed, 20 Jan 2010 10:21:05 -0000

Author: jeff
Date: Wed Jan 20 10:21:04 2010
New Revision: 202690
URL: http://svn.freebsd.org/changeset/base/202690

Log:
   - Merge SUJ from 8 to 7.

Added:
  projects/suj/7/sbin/fsck_ffs/suj.c
     - copied unchanged from r202688, projects/suj/8/sbin/fsck_ffs/suj.c
Modified:
  projects/suj/7/lib/libufs/Makefile
  projects/suj/7/lib/libufs/cgroup.c
  projects/suj/7/lib/libufs/inode.c
  projects/suj/7/lib/libufs/libufs.h
  projects/suj/7/lib/libufs/sblock.c
  projects/suj/7/lib/libufs/type.c
  projects/suj/7/sbin/fsck_ffs/Makefile
  projects/suj/7/sbin/fsck_ffs/fsck.h
  projects/suj/7/sbin/fsck_ffs/gjournal.c
  projects/suj/7/sbin/fsck_ffs/main.c
  projects/suj/7/sbin/fsck_ffs/pass4.c
  projects/suj/7/sbin/fsck_ffs/pass5.c
  projects/suj/7/sbin/fsdb/fsdbutil.c
  projects/suj/7/sbin/mount/mount.c
  projects/suj/7/sbin/tunefs/tunefs.c
  projects/suj/7/sys/kern/vfs_bio.c
  projects/suj/7/sys/kern/vfs_subr.c
  projects/suj/7/sys/sys/buf.h
  projects/suj/7/sys/sys/mount.h
  projects/suj/7/sys/sys/queue.h
  projects/suj/7/sys/ufs/ffs/ffs_alloc.c
  projects/suj/7/sys/ufs/ffs/ffs_balloc.c
  projects/suj/7/sys/ufs/ffs/ffs_extern.h
  projects/suj/7/sys/ufs/ffs/ffs_inode.c
  projects/suj/7/sys/ufs/ffs/ffs_snapshot.c
  projects/suj/7/sys/ufs/ffs/ffs_softdep.c
  projects/suj/7/sys/ufs/ffs/ffs_subr.c
  projects/suj/7/sys/ufs/ffs/ffs_vfsops.c
  projects/suj/7/sys/ufs/ffs/ffs_vnops.c
  projects/suj/7/sys/ufs/ffs/fs.h
  projects/suj/7/sys/ufs/ffs/softdep.h
  projects/suj/7/sys/ufs/ufs/dinode.h
  projects/suj/7/sys/ufs/ufs/inode.h
  projects/suj/7/sys/ufs/ufs/ufs_dirhash.c
  projects/suj/7/sys/ufs/ufs/ufs_extern.h
  projects/suj/7/sys/ufs/ufs/ufs_lookup.c
  projects/suj/7/sys/ufs/ufs/ufs_vnops.c
  projects/suj/7/sys/ufs/ufs/ufsmount.h
  projects/suj/7/usr.sbin/makefs/ffs/ffs_bswap.c   (contents, props changed)
Directory Properties:
  projects/suj/7/   (props changed)
  projects/suj/7/COPYRIGHT   (props changed)
  projects/suj/7/Makefile   (props changed)
  projects/suj/7/Makefile.inc1   (props changed)
  projects/suj/7/ObsoleteFiles.inc   (props changed)
  projects/suj/7/UPDATING   (props changed)
  projects/suj/7/bin/   (props changed)
  projects/suj/7/bin/chflags/   (props changed)
  projects/suj/7/bin/chio/   (props changed)
  projects/suj/7/bin/cp/   (props changed)
  projects/suj/7/bin/csh/   (props changed)
  projects/suj/7/bin/dd/   (props changed)
  projects/suj/7/bin/df/   (props changed)
  projects/suj/7/bin/ln/   (props changed)
  projects/suj/7/bin/pax/   (props changed)
  projects/suj/7/bin/ps/   (props changed)
  projects/suj/7/bin/rm/   (props changed)
  projects/suj/7/bin/sh/   (props changed)
  projects/suj/7/cddl/compat/opensolaris/   (props changed)
  projects/suj/7/cddl/contrib/opensolaris/   (props changed)
  projects/suj/7/cddl/contrib/opensolaris/cmd/zdb/   (props changed)
  projects/suj/7/cddl/contrib/opensolaris/cmd/zfs/   (props changed)
  projects/suj/7/cddl/contrib/opensolaris/lib/libzfs/   (props changed)
  projects/suj/7/cddl/lib/libnvpair/   (props changed)
  projects/suj/7/contrib/   (props changed)
  projects/suj/7/contrib/bind9/   (props changed)
  projects/suj/7/contrib/bsnmp/   (props changed)
  projects/suj/7/contrib/bzip2/   (props changed)
  projects/suj/7/contrib/cpio/   (props changed)
  projects/suj/7/contrib/csup/   (props changed)
  projects/suj/7/contrib/expat/   (props changed)
  projects/suj/7/contrib/file/   (props changed)
  projects/suj/7/contrib/gcc/   (props changed)
  projects/suj/7/contrib/gdb/   (props changed)
  projects/suj/7/contrib/gdtoa/   (props changed)
  projects/suj/7/contrib/groff/   (props changed)
  projects/suj/7/contrib/ipfilter/   (props changed)
  projects/suj/7/contrib/less/   (props changed)
  projects/suj/7/contrib/libpcap/   (props changed)
  projects/suj/7/contrib/ncurses/   (props changed)
  projects/suj/7/contrib/netcat/   (props changed)
  projects/suj/7/contrib/ntp/   (props changed)
  projects/suj/7/contrib/one-true-awk/   (props changed)
  projects/suj/7/contrib/openbsm/   (props changed)
  projects/suj/7/contrib/openpam/   (props changed)
  projects/suj/7/contrib/pf/   (props changed)
  projects/suj/7/contrib/sendmail/   (props changed)
  projects/suj/7/contrib/smbfs/   (props changed)
  projects/suj/7/contrib/tcpdump/   (props changed)
  projects/suj/7/contrib/tcsh/   (props changed)
  projects/suj/7/contrib/telnet/   (props changed)
  projects/suj/7/contrib/top/   (props changed)
  projects/suj/7/contrib/traceroute/   (props changed)
  projects/suj/7/crypto/heimdal/   (props changed)
  projects/suj/7/crypto/openssh/   (props changed)
  projects/suj/7/crypto/openssl/   (props changed)
  projects/suj/7/etc/   (props changed)
  projects/suj/7/etc/rc.d/   (props changed)
  projects/suj/7/games/factor/   (props changed)
  projects/suj/7/games/fortune/   (props changed)
  projects/suj/7/games/fortune/Makefile   (props changed)
  projects/suj/7/games/fortune/Makefile.inc   (props changed)
  projects/suj/7/games/fortune/Notes   (props changed)
  projects/suj/7/games/fortune/README   (props changed)
  projects/suj/7/games/fortune/datfiles/   (props changed)
  projects/suj/7/games/fortune/datfiles/freebsd-tips   (props changed)
  projects/suj/7/games/fortune/fortune/   (props changed)
  projects/suj/7/games/fortune/strfile/   (props changed)
  projects/suj/7/games/fortune/tools/   (props changed)
  projects/suj/7/games/fortune/unstr/   (props changed)
  projects/suj/7/gnu/   (props changed)
  projects/suj/7/gnu/usr.bin/cc/   (props changed)
  projects/suj/7/gnu/usr.bin/cvs/   (props changed)
  projects/suj/7/gnu/usr.bin/gdb/kgdb/   (props changed)
  projects/suj/7/gnu/usr.bin/grep/   (props changed)
  projects/suj/7/gnu/usr.bin/groff/   (props changed)
  projects/suj/7/gnu/usr.bin/groff/tmac/mdoc.local   (props changed)
  projects/suj/7/gnu/usr.bin/man/   (props changed)
  projects/suj/7/gnu/usr.bin/patch/   (props changed)
  projects/suj/7/gnu/usr.bin/sort/   (props changed)
  projects/suj/7/include/   (props changed)
  projects/suj/7/kerberos5/   (props changed)
  projects/suj/7/lib/   (props changed)
  projects/suj/7/lib/bind/   (props changed)
  projects/suj/7/lib/csu/   (props changed)
  projects/suj/7/lib/libarchive/   (props changed)
  projects/suj/7/lib/libbluetooth/   (props changed)
  projects/suj/7/lib/libc/   (props changed)
  projects/suj/7/lib/libc/stdtime/   (props changed)
  projects/suj/7/lib/libc_r/   (props changed)
  projects/suj/7/lib/libcam/   (props changed)
  projects/suj/7/lib/libdevinfo/   (props changed)
  projects/suj/7/lib/libdisk/   (props changed)
  projects/suj/7/lib/libdwarf/   (props changed)
  projects/suj/7/lib/libelf/   (props changed)
  projects/suj/7/lib/libexpat/   (props changed)
  projects/suj/7/lib/libfetch/   (props changed)
  projects/suj/7/lib/libftpio/   (props changed)
  projects/suj/7/lib/libgeom/   (props changed)
  projects/suj/7/lib/libgssapi/   (props changed)
  projects/suj/7/lib/libkse/   (props changed)
  projects/suj/7/lib/libkvm/   (props changed)
  projects/suj/7/lib/libmagic/   (props changed)
  projects/suj/7/lib/libmemstat/   (props changed)
  projects/suj/7/lib/libpmc/   (props changed)
  projects/suj/7/lib/libradius/   (props changed)
  projects/suj/7/lib/libstand/   (props changed)
  projects/suj/7/lib/libtacplus/   (props changed)
  projects/suj/7/lib/libthr/   (props changed)
  projects/suj/7/lib/libthread_db/   (props changed)
  projects/suj/7/lib/libufs/   (props changed)
  projects/suj/7/lib/libutil/   (props changed)
  projects/suj/7/lib/msun/   (props changed)
  projects/suj/7/libexec/   (props changed)
  projects/suj/7/libexec/rpc.rquotad/   (props changed)
  projects/suj/7/libexec/rpc.rstatd/   (props changed)
  projects/suj/7/libexec/rtld-elf/   (props changed)
  projects/suj/7/release/   (props changed)
  projects/suj/7/release/doc/   (props changed)
  projects/suj/7/release/doc/en_US.ISO8859-1/hardware/   (props changed)
  projects/suj/7/rescue/   (props changed)
  projects/suj/7/sbin/   (props changed)
  projects/suj/7/sbin/atacontrol/   (props changed)
  projects/suj/7/sbin/bsdlabel/   (props changed)
  projects/suj/7/sbin/camcontrol/   (props changed)
  projects/suj/7/sbin/clri/   (props changed)
  projects/suj/7/sbin/ddb/   (props changed)
  projects/suj/7/sbin/devd/   (props changed)
  projects/suj/7/sbin/devfs/   (props changed)
  projects/suj/7/sbin/dhclient/   (props changed)
  projects/suj/7/sbin/dumpfs/   (props changed)
  projects/suj/7/sbin/fdisk/   (props changed)
  projects/suj/7/sbin/fdisk_pc98/   (props changed)
  projects/suj/7/sbin/fsck/   (props changed)
  projects/suj/7/sbin/fsck_ffs/   (props changed)
  projects/suj/7/sbin/fsck_msdosfs/   (props changed)
  projects/suj/7/sbin/geom/   (props changed)
  projects/suj/7/sbin/geom/class/label/   (props changed)
  projects/suj/7/sbin/geom/class/part/   (props changed)
  projects/suj/7/sbin/geom/class/stripe/   (props changed)
  projects/suj/7/sbin/geom/misc/   (props changed)
  projects/suj/7/sbin/ifconfig/   (props changed)
  projects/suj/7/sbin/init/   (props changed)
  projects/suj/7/sbin/ipf/   (props changed)
  projects/suj/7/sbin/ipfw/   (props changed)
  projects/suj/7/sbin/md5/   (props changed)
  projects/suj/7/sbin/mdconfig/   (props changed)
  projects/suj/7/sbin/mksnap_ffs/   (props changed)
  projects/suj/7/sbin/mount/   (props changed)
  projects/suj/7/sbin/mount/mount_fs.c   (props changed)
  projects/suj/7/sbin/mount_cd9660/   (props changed)
  projects/suj/7/sbin/mount_msdosfs/   (props changed)
  projects/suj/7/sbin/mount_nfs/   (props changed)
  projects/suj/7/sbin/natd/   (props changed)
  projects/suj/7/sbin/newfs_msdos/   (props changed)
  projects/suj/7/sbin/ping6/   (props changed)
  projects/suj/7/sbin/restore/   (props changed)
  projects/suj/7/sbin/route/   (props changed)
  projects/suj/7/sbin/savecore/   (props changed)
  projects/suj/7/sbin/sconfig/   (props changed)
  projects/suj/7/sbin/shutdown/   (props changed)
  projects/suj/7/sbin/umount/   (props changed)
  projects/suj/7/secure/lib/libssh/   (props changed)
  projects/suj/7/secure/libexec/sftp-server/   (props changed)
  projects/suj/7/secure/usr.bin/bdes/   (props changed)
  projects/suj/7/secure/usr.bin/ssh/   (props changed)
  projects/suj/7/secure/usr.sbin/sshd/   (props changed)
  projects/suj/7/share/   (props changed)
  projects/suj/7/share/colldef/   (props changed)
  projects/suj/7/share/doc/bind9/   (props changed)
  projects/suj/7/share/examples/   (props changed)
  projects/suj/7/share/man/   (props changed)
  projects/suj/7/share/man/man3/   (props changed)
  projects/suj/7/share/man/man4/   (props changed)
  projects/suj/7/share/man/man4/de.4   (props changed)
  projects/suj/7/share/man/man5/   (props changed)
  projects/suj/7/share/man/man5/rc.conf.5   (props changed)
  projects/suj/7/share/man/man7/   (props changed)
  projects/suj/7/share/man/man8/   (props changed)
  projects/suj/7/share/man/man9/   (props changed)
  projects/suj/7/share/misc/   (props changed)
  projects/suj/7/share/misc/iso639   (props changed)
  projects/suj/7/share/misc/pci_vendors   (props changed)
  projects/suj/7/share/mk/   (props changed)
  projects/suj/7/share/mklocale/   (props changed)
  projects/suj/7/share/monetdef/   (props changed)
  projects/suj/7/share/msgdef/   (props changed)
  projects/suj/7/share/numericdef/   (props changed)
  projects/suj/7/share/sendmail/   (props changed)
  projects/suj/7/share/syscons/   (props changed)
  projects/suj/7/share/syscons/keymaps/   (props changed)
  projects/suj/7/share/termcap/   (props changed)
  projects/suj/7/share/timedef/   (props changed)
  projects/suj/7/share/zoneinfo/   (props changed)
  projects/suj/7/sys/   (props changed)
  projects/suj/7/sys/cddl/contrib/opensolaris/   (props changed)
  projects/suj/7/sys/contrib/dev/acpica/   (props changed)
  projects/suj/7/sys/contrib/pf/   (props changed)
  projects/suj/7/tools/build/   (props changed)
  projects/suj/7/tools/kerneldoc/subsys/   (props changed)
  projects/suj/7/tools/regression/atm/   (props changed)
  projects/suj/7/tools/regression/bin/sh/   (props changed)
  projects/suj/7/tools/regression/file/   (props changed)
  projects/suj/7/tools/regression/file/flock/   (props changed)
  projects/suj/7/tools/regression/lib/libc/   (props changed)
  projects/suj/7/tools/regression/priv/   (props changed)
  projects/suj/7/tools/regression/usr.bin/   (props changed)
  projects/suj/7/tools/regression/usr.bin/jot/   (props changed)
  projects/suj/7/tools/regression/usr.bin/tr/   (props changed)
  projects/suj/7/tools/sched/   (props changed)
  projects/suj/7/tools/tools/crypto/   (props changed)
  projects/suj/7/tools/tools/editing/   (props changed)
  projects/suj/7/tools/tools/nanobsd/   (props changed)
  projects/suj/7/tools/tools/nanobsd/FlashDevice.sub   (props changed)
  projects/suj/7/tools/tools/nanobsd/nanobsd.sh   (props changed)
  projects/suj/7/tools/tools/usb/   (props changed)
  projects/suj/7/usr.bin/   (props changed)
  projects/suj/7/usr.bin/awk/   (props changed)
  projects/suj/7/usr.bin/basename/   (props changed)
  projects/suj/7/usr.bin/bluetooth/rfcomm_sppd/   (props changed)
  projects/suj/7/usr.bin/calendar/   (props changed)
  projects/suj/7/usr.bin/calendar/calendars/   (props changed)
  projects/suj/7/usr.bin/calendar/calendars/calendar.freebsd   (props changed)
  projects/suj/7/usr.bin/catman/   (props changed)
  projects/suj/7/usr.bin/cksum/   (props changed)
  projects/suj/7/usr.bin/comm/   (props changed)
  projects/suj/7/usr.bin/cpuset/   (props changed)
  projects/suj/7/usr.bin/csup/   (props changed)
  projects/suj/7/usr.bin/dirname/   (props changed)
  projects/suj/7/usr.bin/du/   (props changed)
  projects/suj/7/usr.bin/fetch/   (props changed)
  projects/suj/7/usr.bin/file/   (props changed)
  projects/suj/7/usr.bin/find/   (props changed)
  projects/suj/7/usr.bin/finger/   (props changed)
  projects/suj/7/usr.bin/fstat/   (props changed)
  projects/suj/7/usr.bin/gcore/   (props changed)
  projects/suj/7/usr.bin/gprof/   (props changed)
  projects/suj/7/usr.bin/gzip/   (props changed)
  projects/suj/7/usr.bin/id/   (props changed)
  projects/suj/7/usr.bin/ipcrm/   (props changed)
  projects/suj/7/usr.bin/ipcs/   (props changed)
  projects/suj/7/usr.bin/jot/   (props changed)
  projects/suj/7/usr.bin/kdump/   (props changed)
  projects/suj/7/usr.bin/ktrace/   (props changed)
  projects/suj/7/usr.bin/ldd/   (props changed)
  projects/suj/7/usr.bin/locale/   (props changed)
  projects/suj/7/usr.bin/locate/   (props changed)
  projects/suj/7/usr.bin/lockf/   (props changed)
  projects/suj/7/usr.bin/logger/   (props changed)
  projects/suj/7/usr.bin/look/   (props changed)
  projects/suj/7/usr.bin/make/   (props changed)
  projects/suj/7/usr.bin/ncal/   (props changed)
  projects/suj/7/usr.bin/netstat/   (props changed)
  projects/suj/7/usr.bin/newgrp/   (props changed)
  projects/suj/7/usr.bin/nsupdate/   (props changed)
  projects/suj/7/usr.bin/procstat/   (props changed)
  projects/suj/7/usr.bin/quota/   (props changed)
  projects/suj/7/usr.bin/rpcgen/   (props changed)
  projects/suj/7/usr.bin/sed/   (props changed)
  projects/suj/7/usr.bin/shar/   (props changed)
  projects/suj/7/usr.bin/sockstat/   (props changed)
  projects/suj/7/usr.bin/stat/   (props changed)
  projects/suj/7/usr.bin/su/   (props changed)
  projects/suj/7/usr.bin/systat/   (props changed)
  projects/suj/7/usr.bin/tail/   (props changed)
  projects/suj/7/usr.bin/tar/   (props changed)
  projects/suj/7/usr.bin/tftp/   (props changed)
  projects/suj/7/usr.bin/tip/   (props changed)
  projects/suj/7/usr.bin/top/   (props changed)
  projects/suj/7/usr.bin/truncate/   (props changed)
  projects/suj/7/usr.bin/truss/   (props changed)
  projects/suj/7/usr.bin/unifdef/   (props changed)
  projects/suj/7/usr.bin/units/   (props changed)
  projects/suj/7/usr.bin/vmstat/   (props changed)
  projects/suj/7/usr.bin/w/   (props changed)
  projects/suj/7/usr.bin/wc/   (props changed)
  projects/suj/7/usr.bin/whereis/   (props changed)
  projects/suj/7/usr.bin/whois/   (props changed)
  projects/suj/7/usr.bin/xargs/   (props changed)
  projects/suj/7/usr.bin/ypcat/   (props changed)
  projects/suj/7/usr.bin/ypmatch/   (props changed)
  projects/suj/7/usr.bin/ypwhich/   (props changed)
  projects/suj/7/usr.sbin/   (props changed)
  projects/suj/7/usr.sbin/IPXrouted/   (props changed)
  projects/suj/7/usr.sbin/Makefile   (props changed)
  projects/suj/7/usr.sbin/Makefile.inc   (props changed)
  projects/suj/7/usr.sbin/ac/   (props changed)
  projects/suj/7/usr.sbin/accton/   (props changed)
  projects/suj/7/usr.sbin/acpi/   (props changed)
  projects/suj/7/usr.sbin/adduser/   (props changed)
  projects/suj/7/usr.sbin/amd/   (props changed)
  projects/suj/7/usr.sbin/ancontrol/   (props changed)
  projects/suj/7/usr.sbin/apm/   (props changed)
  projects/suj/7/usr.sbin/apmd/   (props changed)
  projects/suj/7/usr.sbin/arlcontrol/   (props changed)
  projects/suj/7/usr.sbin/arp/   (props changed)
  projects/suj/7/usr.sbin/asf/   (props changed)
  projects/suj/7/usr.sbin/audit/   (props changed)
  projects/suj/7/usr.sbin/auditd/   (props changed)
  projects/suj/7/usr.sbin/auditreduce/   (props changed)
  projects/suj/7/usr.sbin/authpf/   (props changed)
  projects/suj/7/usr.sbin/bluetooth/   (props changed)
  projects/suj/7/usr.sbin/bluetooth/btpand/   (props changed)
  projects/suj/7/usr.sbin/bluetooth/hcsecd/   (props changed)
  projects/suj/7/usr.sbin/bluetooth/hcseriald/   (props changed)
  projects/suj/7/usr.sbin/bluetooth/rfcomm_pppd/   (props changed)
  projects/suj/7/usr.sbin/bluetooth/sdpd/   (props changed)
  projects/suj/7/usr.sbin/boot0cfg/   (props changed)
  projects/suj/7/usr.sbin/boot98cfg/   (props changed)
  projects/suj/7/usr.sbin/bootparamd/   (props changed)
  projects/suj/7/usr.sbin/bsnmpd/   (props changed)
  projects/suj/7/usr.sbin/bsnmpd/modules/snmp_pf/   (props changed)
  projects/suj/7/usr.sbin/btxld/   (props changed)
  projects/suj/7/usr.sbin/burncd/   (props changed)
  projects/suj/7/usr.sbin/cdcontrol/   (props changed)
  projects/suj/7/usr.sbin/chkgrp/   (props changed)
  projects/suj/7/usr.sbin/chown/   (props changed)
  projects/suj/7/usr.sbin/chroot/   (props changed)
  projects/suj/7/usr.sbin/ckdist/   (props changed)
  projects/suj/7/usr.sbin/clear_locks/   (props changed)
  projects/suj/7/usr.sbin/config/   (props changed)
  projects/suj/7/usr.sbin/cpucontrol/   (props changed)
  projects/suj/7/usr.sbin/crashinfo/   (props changed)
  projects/suj/7/usr.sbin/cron/   (props changed)
  projects/suj/7/usr.sbin/cron/cron/   (props changed)
  projects/suj/7/usr.sbin/crunch/   (props changed)
  projects/suj/7/usr.sbin/ctm/   (props changed)
  projects/suj/7/usr.sbin/cxgbtool/   (props changed)
  projects/suj/7/usr.sbin/daemon/   (props changed)
  projects/suj/7/usr.sbin/dconschat/   (props changed)
  projects/suj/7/usr.sbin/devinfo/   (props changed)
  projects/suj/7/usr.sbin/digictl/   (props changed)
  projects/suj/7/usr.sbin/diskinfo/   (props changed)
  projects/suj/7/usr.sbin/dnssec-keygen/   (props changed)
  projects/suj/7/usr.sbin/dnssec-signzone/   (props changed)
  projects/suj/7/usr.sbin/editmap/   (props changed)
  projects/suj/7/usr.sbin/edquota/   (props changed)
  projects/suj/7/usr.sbin/eeprom/   (props changed)
  projects/suj/7/usr.sbin/extattr/   (props changed)
  projects/suj/7/usr.sbin/extattrctl/   (props changed)
  projects/suj/7/usr.sbin/faithd/   (props changed)
  projects/suj/7/usr.sbin/fdcontrol/   (props changed)
  projects/suj/7/usr.sbin/fdformat/   (props changed)
  projects/suj/7/usr.sbin/fdread/   (props changed)
  projects/suj/7/usr.sbin/fdwrite/   (props changed)
  projects/suj/7/usr.sbin/fifolog/   (props changed)
  projects/suj/7/usr.sbin/flowctl/   (props changed)
  projects/suj/7/usr.sbin/freebsd-update/   (props changed)
  projects/suj/7/usr.sbin/ftp-proxy/   (props changed)
  projects/suj/7/usr.sbin/fwcontrol/   (props changed)
  projects/suj/7/usr.sbin/getfmac/   (props changed)
  projects/suj/7/usr.sbin/getpmac/   (props changed)
  projects/suj/7/usr.sbin/gstat/   (props changed)
  projects/suj/7/usr.sbin/i4b/   (props changed)
  projects/suj/7/usr.sbin/ifmcstat/   (props changed)
  projects/suj/7/usr.sbin/inetd/   (props changed)
  projects/suj/7/usr.sbin/iostat/   (props changed)
  projects/suj/7/usr.sbin/ip6addrctl/   (props changed)
  projects/suj/7/usr.sbin/ipfwpcap/   (props changed)
  projects/suj/7/usr.sbin/jail/   (props changed)
  projects/suj/7/usr.sbin/jexec/   (props changed)
  projects/suj/7/usr.sbin/jls/   (props changed)
  projects/suj/7/usr.sbin/kbdcontrol/   (props changed)
  projects/suj/7/usr.sbin/kbdmap/   (props changed)
  projects/suj/7/usr.sbin/kernbb/   (props changed)
  projects/suj/7/usr.sbin/keyserv/   (props changed)
  projects/suj/7/usr.sbin/kgmon/   (props changed)
  projects/suj/7/usr.sbin/kgzip/   (props changed)
  projects/suj/7/usr.sbin/kldxref/   (props changed)
  projects/suj/7/usr.sbin/lastlogin/   (props changed)
  projects/suj/7/usr.sbin/lmcconfig/   (props changed)
  projects/suj/7/usr.sbin/lpr/   (props changed)
  projects/suj/7/usr.sbin/lptcontrol/   (props changed)
  projects/suj/7/usr.sbin/mailstats/   (props changed)
  projects/suj/7/usr.sbin/mailwrapper/   (props changed)
  projects/suj/7/usr.sbin/makefs/   (props changed)
  projects/suj/7/usr.sbin/makefs/ffs/ffs_subr.c   (props changed)
  projects/suj/7/usr.sbin/makefs/ffs/ufs_bswap.h   (props changed)
  projects/suj/7/usr.sbin/makefs/getid.c   (props changed)
  projects/suj/7/usr.sbin/makemap/   (props changed)
  projects/suj/7/usr.sbin/manctl/   (props changed)
  projects/suj/7/usr.sbin/memcontrol/   (props changed)
  projects/suj/7/usr.sbin/mergemaster/   (props changed)
  projects/suj/7/usr.sbin/mfiutil/   (props changed)
  projects/suj/7/usr.sbin/mfiutil/mfiutil.8   (props changed)
  projects/suj/7/usr.sbin/mixer/   (props changed)
  projects/suj/7/usr.sbin/mld6query/   (props changed)
  projects/suj/7/usr.sbin/mlxcontrol/   (props changed)
  projects/suj/7/usr.sbin/mount_nwfs/   (props changed)
  projects/suj/7/usr.sbin/mount_portalfs/   (props changed)
  projects/suj/7/usr.sbin/mount_smbfs/   (props changed)
  projects/suj/7/usr.sbin/mountd/   (props changed)
  projects/suj/7/usr.sbin/moused/   (props changed)
  projects/suj/7/usr.sbin/mptable/   (props changed)
  projects/suj/7/usr.sbin/mptutil/   (props changed)
  projects/suj/7/usr.sbin/mtest/   (props changed)
  projects/suj/7/usr.sbin/mtree/   (props changed)
  projects/suj/7/usr.sbin/named/   (props changed)
  projects/suj/7/usr.sbin/named-checkconf/   (props changed)
  projects/suj/7/usr.sbin/named-checkzone/   (props changed)
  projects/suj/7/usr.sbin/named.reload/   (props changed)
  projects/suj/7/usr.sbin/ndiscvt/   (props changed)
  projects/suj/7/usr.sbin/ndp/   (props changed)
  projects/suj/7/usr.sbin/newsyslog/   (props changed)
  projects/suj/7/usr.sbin/newsyslog/newsyslog.conf.5   (props changed)
  projects/suj/7/usr.sbin/nfsd/   (props changed)
  projects/suj/7/usr.sbin/ngctl/   (props changed)
  projects/suj/7/usr.sbin/nghook/   (props changed)
  projects/suj/7/usr.sbin/nologin/   (props changed)
  projects/suj/7/usr.sbin/nscd/   (props changed)
  projects/suj/7/usr.sbin/ntp/   (props changed)
  projects/suj/7/usr.sbin/nvram/   (props changed)
  projects/suj/7/usr.sbin/ofwdump/   (props changed)
  projects/suj/7/usr.sbin/pccard/   (props changed)
  projects/suj/7/usr.sbin/pciconf/   (props changed)
  projects/suj/7/usr.sbin/periodic/   (props changed)
  projects/suj/7/usr.sbin/pkg_install/   (props changed)
  projects/suj/7/usr.sbin/pmcannotate/   (props changed)
  projects/suj/7/usr.sbin/pmccontrol/   (props changed)
  projects/suj/7/usr.sbin/pmcstat/   (props changed)
  projects/suj/7/usr.sbin/pnpinfo/   (props changed)
  projects/suj/7/usr.sbin/portsnap/   (props changed)
  projects/suj/7/usr.sbin/powerd/   (props changed)
  projects/suj/7/usr.sbin/ppp/   (props changed)
  projects/suj/7/usr.sbin/pppctl/   (props changed)
  projects/suj/7/usr.sbin/pppd/   (props changed)
  projects/suj/7/usr.sbin/pppstats/   (props changed)
  projects/suj/7/usr.sbin/praliases/   (props changed)
  projects/suj/7/usr.sbin/praudit/   (props changed)
  projects/suj/7/usr.sbin/procctl/   (props changed)
  projects/suj/7/usr.sbin/pstat/   (props changed)
  projects/suj/7/usr.sbin/pw/   (props changed)
  projects/suj/7/usr.sbin/pwd_mkdb/   (props changed)
  projects/suj/7/usr.sbin/quot/   (props changed)
  projects/suj/7/usr.sbin/quotaon/   (props changed)
  projects/suj/7/usr.sbin/rarpd/   (props changed)
  projects/suj/7/usr.sbin/raycontrol/   (props changed)
  projects/suj/7/usr.sbin/repquota/   (props changed)
  projects/suj/7/usr.sbin/rip6query/   (props changed)
  projects/suj/7/usr.sbin/rmt/   (props changed)
  projects/suj/7/usr.sbin/rndc/   (props changed)
  projects/suj/7/usr.sbin/rndc-confgen/   (props changed)
  projects/suj/7/usr.sbin/route6d/   (props changed)
  projects/suj/7/usr.sbin/rpc.lockd/   (props changed)
  projects/suj/7/usr.sbin/rpc.statd/   (props changed)
  projects/suj/7/usr.sbin/rpc.umntall/   (props changed)
  projects/suj/7/usr.sbin/rpc.yppasswdd/   (props changed)
  projects/suj/7/usr.sbin/rpc.ypupdated/   (props changed)
  projects/suj/7/usr.sbin/rpc.ypxfrd/   (props changed)
  projects/suj/7/usr.sbin/rpcbind/   (props changed)
  projects/suj/7/usr.sbin/rrenumd/   (props changed)
  projects/suj/7/usr.sbin/rtadvd/   (props changed)
  projects/suj/7/usr.sbin/rtprio/   (props changed)
  projects/suj/7/usr.sbin/rtsold/   (props changed)
  projects/suj/7/usr.sbin/rwhod/   (props changed)
  projects/suj/7/usr.sbin/sa/   (props changed)
  projects/suj/7/usr.sbin/sade/   (props changed)
  projects/suj/7/usr.sbin/sendmail/   (props changed)
  projects/suj/7/usr.sbin/service/   (props changed)
  projects/suj/7/usr.sbin/service/Makefile   (props changed)
  projects/suj/7/usr.sbin/service/service.8   (props changed)
  projects/suj/7/usr.sbin/service/service.sh   (props changed)
  projects/suj/7/usr.sbin/setfib/   (props changed)
  projects/suj/7/usr.sbin/setfmac/   (props changed)
  projects/suj/7/usr.sbin/setpmac/   (props changed)
  projects/suj/7/usr.sbin/sicontrol/   (props changed)
  projects/suj/7/usr.sbin/sliplogin/   (props changed)
  projects/suj/7/usr.sbin/slstat/   (props changed)
  projects/suj/7/usr.sbin/smbmsg/   (props changed)
  projects/suj/7/usr.sbin/snapinfo/   (props changed)
  projects/suj/7/usr.sbin/spkrtest/   (props changed)
  projects/suj/7/usr.sbin/spray/   (props changed)
  projects/suj/7/usr.sbin/sysinstall/   (props changed)
  projects/suj/7/usr.sbin/syslogd/   (props changed)
  projects/suj/7/usr.sbin/tcpdchk/   (props changed)
  projects/suj/7/usr.sbin/tcpdmatch/   (props changed)
  projects/suj/7/usr.sbin/tcpdrop/   (props changed)
  projects/suj/7/usr.sbin/tcpdump/   (props changed)
  projects/suj/7/usr.sbin/timed/   (props changed)
  projects/suj/7/usr.sbin/traceroute/   (props changed)
  projects/suj/7/usr.sbin/traceroute6/   (props changed)
  projects/suj/7/usr.sbin/trpt/   (props changed)
  projects/suj/7/usr.sbin/tzsetup/   (props changed)
  projects/suj/7/usr.sbin/ugidfw/   (props changed)
  projects/suj/7/usr.sbin/usbdevs/   (props changed)
  projects/suj/7/usr.sbin/vidcontrol/   (props changed)
  projects/suj/7/usr.sbin/vipw/   (props changed)
  projects/suj/7/usr.sbin/watch/   (props changed)
  projects/suj/7/usr.sbin/watchdogd/   (props changed)
  projects/suj/7/usr.sbin/wlandebug/   (props changed)
  projects/suj/7/usr.sbin/wlconfig/   (props changed)
  projects/suj/7/usr.sbin/wpa/   (props changed)
  projects/suj/7/usr.sbin/wpa/wpa_supplicant/   (props changed)
  projects/suj/7/usr.sbin/yp_mkdb/   (props changed)
  projects/suj/7/usr.sbin/ypbind/   (props changed)
  projects/suj/7/usr.sbin/yppoll/   (props changed)
  projects/suj/7/usr.sbin/yppush/   (props changed)
  projects/suj/7/usr.sbin/ypserv/   (props changed)
  projects/suj/7/usr.sbin/ypset/   (props changed)
  projects/suj/7/usr.sbin/zic/   (props changed)
  projects/suj/7/usr.sbin/zzz/   (props changed)

Modified: projects/suj/7/lib/libufs/Makefile
==============================================================================
--- projects/suj/7/lib/libufs/Makefile	Wed Jan 20 10:15:55 2010	(r202689)
+++ projects/suj/7/lib/libufs/Makefile	Wed Jan 20 10:21:04 2010	(r202690)
@@ -3,7 +3,7 @@
 LIB=	ufs
 SHLIBDIR?= /lib
 
-SRCS=	block.c cgroup.c inode.c sblock.c type.c
+SRCS=	block.c cgroup.c inode.c sblock.c type.c ffs_subr.c ffs_tables.c
 INCS=	libufs.h
 
 MAN=	bread.3 cgread.3 libufs.3 sbread.3 ufs_disk_close.3
@@ -17,6 +17,9 @@ MLINKS+= ufs_disk_close.3 ufs_disk_write
 
 WARNS?=	2
 
+.PATH:  ${.CURDIR}/../../sys/ufs/ffs
+
+DEBUG_FLAGS = -g
 CFLAGS+= -D_LIBUFS
 .if defined(LIBUFS_DEBUG)
 CFLAGS+= -D_LIBUFS_DEBUGGING

Modified: projects/suj/7/lib/libufs/cgroup.c
==============================================================================
--- projects/suj/7/lib/libufs/cgroup.c	Wed Jan 20 10:15:55 2010	(r202689)
+++ projects/suj/7/lib/libufs/cgroup.c	Wed Jan 20 10:21:04 2010	(r202690)
@@ -40,11 +40,82 @@ __FBSDID("$FreeBSD$");
 #include <errno.h>
 #include <fcntl.h>
 #include <stdio.h>
+#include <stdlib.h>
 #include <string.h>
 #include <unistd.h>
 
 #include <libufs.h>
 
+ufs2_daddr_t
+cgballoc(struct uufsd *disk)
+{
+	u_int8_t *blksfree;
+	struct cg *cgp;
+	struct fs *fs;
+	long bno;
+
+	fs = &disk->d_fs;
+	cgp = &disk->d_cg;
+	blksfree = cg_blksfree(cgp);
+	for (bno = 0; bno < fs->fs_fpg / fs->fs_frag; bno++)
+		if (ffs_isblock(fs, blksfree, bno))
+			goto gotit;
+	return (0);
+gotit:
+	fs->fs_cs(fs, cgp->cg_cgx).cs_nbfree--;
+	ffs_clrblock(fs, blksfree, (long)bno);
+	ffs_clusteracct(fs, cgp, bno, -1);
+	cgp->cg_cs.cs_nbfree--;
+	fs->fs_cstotal.cs_nbfree--;
+	fs->fs_fmod = 1;
+	return (cgbase(fs, cgp->cg_cgx) + blkstofrags(fs, bno));
+}
+
+ino_t
+cgialloc(struct uufsd *disk)
+{
+	struct ufs2_dinode *dp2;
+	u_int8_t *inosused;
+	struct cg *cgp;
+	struct fs *fs;
+	ino_t ino;
+	int i;
+
+	fs = &disk->d_fs;
+	cgp = &disk->d_cg;
+	inosused = cg_inosused(cgp);
+	for (ino = 0; ino < fs->fs_ipg / NBBY; ino++)
+		if (isclr(inosused, ino))
+			goto gotit;
+	return (0);
+gotit:
+	if (fs->fs_magic == FS_UFS2_MAGIC &&
+	    ino + INOPB(fs) > cgp->cg_initediblk &&
+	    cgp->cg_initediblk < cgp->cg_niblk) {
+		char block[MAXBSIZE];
+		bzero(block, (int)fs->fs_bsize);
+		dp2 = (struct ufs2_dinode *)&block;
+		for (i = 0; i < INOPB(fs); i++) {
+			dp2->di_gen = arc4random() / 2 + 1;
+			dp2++;
+		}
+		if (bwrite(disk, ino_to_fsba(fs,
+		    cgp->cg_cgx * fs->fs_ipg + cgp->cg_initediblk),
+		    block, fs->fs_bsize))
+			return (0);
+		cgp->cg_initediblk += INOPB(fs);
+	}
+
+	setbit(inosused, ino);
+	cgp->cg_irotor = ino;
+	cgp->cg_cs.cs_nifree--;
+	fs->fs_cstotal.cs_nifree--;
+	fs->fs_cs(fs, cgp->cg_cgx).cs_nifree--;
+	fs->fs_fmod = 1;
+
+	return (ino + (cgp->cg_cgx * fs->fs_ipg));
+}
+
 int
 cgread(struct uufsd *disk)
 {
@@ -55,14 +126,12 @@ int
 cgread1(struct uufsd *disk, int c)
 {
 	struct fs *fs;
-	off_t ccg;
 
 	fs = &disk->d_fs;
 
 	if (c >= fs->fs_ncg) {
 		return (0);
 	}
-	ccg = fsbtodb(fs, cgtod(fs, c)) * disk->d_bsize;
 	if (bread(disk, fsbtodb(fs, cgtod(fs, c)), disk->d_cgunion.d_buf,
 	    fs->fs_bsize) == -1) {
 		ERROR(disk, "unable to read cylinder group");
@@ -73,6 +142,12 @@ cgread1(struct uufsd *disk, int c)
 }
 
 int
+cgwrite(struct uufsd *disk)
+{
+	return (cgwrite1(disk, disk->d_lcg));
+}
+
+int
 cgwrite1(struct uufsd *disk, int c)
 {
 	struct fs *fs;

Modified: projects/suj/7/lib/libufs/inode.c
==============================================================================
--- projects/suj/7/lib/libufs/inode.c	Wed Jan 20 10:15:55 2010	(r202689)
+++ projects/suj/7/lib/libufs/inode.c	Wed Jan 20 10:21:04 2010	(r202690)
@@ -93,3 +93,19 @@ gotit:	switch (disk->d_ufs) {
 	ERROR(disk, "unknown UFS filesystem type");
 	return (-1);
 }
+
+int
+putino(struct uufsd *disk)
+{
+	struct fs *fs;
+
+	fs = &disk->d_fs;
+	if (disk->d_inoblock == NULL) {
+		ERROR(disk, "No inode block allocated");
+		return (-1);
+	}
+	if (bwrite(disk, fsbtodb(fs, ino_to_fsba(&disk->d_fs, disk->d_inomin)),
+	    disk->d_inoblock, disk->d_fs.fs_bsize) <= 0)
+		return (-1);
+	return (0);
+}

Modified: projects/suj/7/lib/libufs/libufs.h
==============================================================================
--- projects/suj/7/lib/libufs/libufs.h	Wed Jan 20 10:15:55 2010	(r202689)
+++ projects/suj/7/lib/libufs/libufs.h	Wed Jan 20 10:21:04 2010	(r202690)
@@ -71,6 +71,7 @@ struct uufsd {
 	int d_fd;		/* raw device file descriptor */
 	long d_bsize;		/* device bsize */
 	ufs2_daddr_t d_sblock;	/* superblock location */
+	struct csum *d_sbcsum;	/* Superblock summary info */
 	caddr_t d_inoblock;	/* inode block */
 	ino_t d_inomin;		/* low inode */
 	ino_t d_inomax;		/* high inode */
@@ -108,14 +109,18 @@ ssize_t bwrite(struct uufsd *, ufs2_dadd
 /*
  * cgroup.c
  */
+ufs2_daddr_t cgballoc(struct uufsd *);
+ino_t cgialloc(struct uufsd *);
 int cgread(struct uufsd *);
 int cgread1(struct uufsd *, int);
+int cgwrite(struct uufsd *);
 int cgwrite1(struct uufsd *, int);
 
 /*
  * inode.c
  */
 int getino(struct uufsd *, void **, ino_t, int *);
+int putino(struct uufsd *);
 
 /*
  * sblock.c
@@ -131,6 +136,16 @@ int ufs_disk_fillout(struct uufsd *, con
 int ufs_disk_fillout_blank(struct uufsd *, const char *);
 int ufs_disk_write(struct uufsd *);
 
+/*
+ * ffs_subr.c
+ */
+void	ffs_clrblock(struct fs *, u_char *, ufs1_daddr_t);
+void	ffs_clusteracct(struct fs *, struct cg *, ufs1_daddr_t, int);
+void	ffs_fragacct(struct fs *, int, int32_t [], int);
+int	ffs_isblock(struct fs *, u_char *, ufs1_daddr_t);
+int	ffs_isfreeblock(struct fs *, u_char *, ufs1_daddr_t);
+void	ffs_setblock(struct fs *, u_char *, ufs1_daddr_t);
+
 __END_DECLS
 
 #endif	/* __LIBUFS_H__ */

Modified: projects/suj/7/lib/libufs/sblock.c
==============================================================================
--- projects/suj/7/lib/libufs/sblock.c	Wed Jan 20 10:15:55 2010	(r202689)
+++ projects/suj/7/lib/libufs/sblock.c	Wed Jan 20 10:21:04 2010	(r202690)
@@ -40,6 +40,7 @@ __FBSDID("$FreeBSD$");
 #include <errno.h>
 #include <stdio.h>
 #include <string.h>
+#include <stdlib.h>
 #include <unistd.h>
 
 #include <libufs.h>
@@ -49,8 +50,11 @@ static int superblocks[] = SBLOCKSEARCH;
 int
 sbread(struct uufsd *disk)
 {
+	uint8_t block[MAXBSIZE];
 	struct fs *fs;
 	int sb, superblock;
+	int i, size, blks;
+	uint8_t *space;
 
 	ERROR(disk, NULL);
 
@@ -86,6 +90,34 @@ sbread(struct uufsd *disk)
 	}
 	disk->d_bsize = fs->fs_fsize / fsbtodb(fs, 1);
 	disk->d_sblock = superblock / disk->d_bsize;
+	/*
+	 * Read in the superblock summary information.
+	 */
+	size = fs->fs_cssize;
+	blks = howmany(size, fs->fs_fsize);
+	size += fs->fs_ncg * sizeof(int32_t);
+	space = malloc(size);
+	if (space == NULL) {
+		ERROR(disk, "failed to allocate space for summary information");
+		return (-1);
+	}
+	fs->fs_csp = (struct csum *)space;
+	for (i = 0; i < blks; i += fs->fs_frag) {
+		size = fs->fs_bsize;
+		if (i + fs->fs_frag > blks)
+			size = (blks - i) * fs->fs_fsize;
+		if (bread(disk, fsbtodb(fs, fs->fs_csaddr + i), block, size)
+		    == -1) {
+			ERROR(disk, "Failed to read sb summary information");
+			free(fs->fs_csp);
+			return (-1);
+		}
+		bcopy(block, space, size);
+		space += size;
+	}
+	fs->fs_maxcluster = (uint32_t *)space;
+	disk->d_sbcsum = fs->fs_csp;
+
 	return (0);
 }
 
@@ -93,7 +125,8 @@ int
 sbwrite(struct uufsd *disk, int all)
 {
 	struct fs *fs;
-	int i;
+	int i, blks, size;
+	uint8_t *space;
 
 	ERROR(disk, NULL);
 
@@ -107,6 +140,22 @@ sbwrite(struct uufsd *disk, int all)
 		ERROR(disk, "failed to write superblock");
 		return (-1);
 	}
+	/*
+	 * Write superblock summary information.
+	 */
+	blks = howmany(fs->fs_cssize, fs->fs_fsize);
+	space = (uint8_t *)disk->d_sbcsum;
+	for (i = 0; i < blks; i += fs->fs_frag) {
+		size = fs->fs_bsize;
+		if (i + fs->fs_frag > blks)
+			size = (blks - i) * fs->fs_fsize;
+		if (bwrite(disk, fsbtodb(fs, fs->fs_csaddr + i), space, size)
+		    == -1) {
+			ERROR(disk, "Failed to write sb summary information");
+			return (-1);
+		}
+		space += size;
+	}
 	if (all) {
 		for (i = 0; i < fs->fs_ncg; i++)
 			if (bwrite(disk, fsbtodb(fs, cgsblock(fs, i)),

Modified: projects/suj/7/lib/libufs/type.c
==============================================================================
--- projects/suj/7/lib/libufs/type.c	Wed Jan 20 10:15:55 2010	(r202689)
+++ projects/suj/7/lib/libufs/type.c	Wed Jan 20 10:21:04 2010	(r202690)
@@ -66,6 +66,10 @@ ufs_disk_close(struct uufsd *disk)
 		free((char *)(uintptr_t)disk->d_name);
 		disk->d_name = NULL;
 	}
+	if (disk->d_sbcsum != NULL) {
+		free(disk->d_sbcsum);
+		disk->d_sbcsum = NULL;
+	}
 	return (0);
 }
 
@@ -153,6 +157,7 @@ again:	if ((ret = stat(name, &st)) < 0) 
 	disk->d_mine = 0;
 	disk->d_ufs = 0;
 	disk->d_error = NULL;
+	disk->d_sbcsum = NULL;
 
 	if (oname != name) {
 		name = strdup(name);

Modified: projects/suj/7/sbin/fsck_ffs/Makefile
==============================================================================
--- projects/suj/7/sbin/fsck_ffs/Makefile	Wed Jan 20 10:15:55 2010	(r202689)
+++ projects/suj/7/sbin/fsck_ffs/Makefile	Wed Jan 20 10:21:04 2010	(r202690)
@@ -7,8 +7,7 @@ LINKS+=	${BINDIR}/fsck_ffs ${BINDIR}/fsc
 MAN=	fsck_ffs.8
 MLINKS=	fsck_ffs.8 fsck_ufs.8 fsck_ffs.8 fsck_4.2bsd.8
 SRCS=	dir.c ea.c fsutil.c inode.c main.c pass1.c pass1b.c pass2.c pass3.c \
-	pass4.c pass5.c setup.c utilities.c ffs_subr.c ffs_tables.c gjournal.c \
-	getmntopts.c
+	pass4.c pass5.c setup.c suj.c utilities.c gjournal.c getmntopts.c
 DPADD=	${LIBUFS}
 LDADD=	-lufs
 WARNS?=	2

Modified: projects/suj/7/sbin/fsck_ffs/fsck.h
==============================================================================
--- projects/suj/7/sbin/fsck_ffs/fsck.h	Wed Jan 20 10:15:55 2010	(r202689)
+++ projects/suj/7/sbin/fsck_ffs/fsck.h	Wed Jan 20 10:21:04 2010	(r202690)
@@ -347,10 +347,6 @@ void		direrror(ino_t ino, const char *er
 int		dirscan(struct inodesc *);
 int		dofix(struct inodesc *, const char *msg);
 int		eascan(struct inodesc *, struct ufs2_dinode *dp);
-void		ffs_clrblock(struct fs *, u_char *, ufs1_daddr_t);
-void		ffs_fragacct(struct fs *, int, int32_t [], int);
-int		ffs_isblock(struct fs *, u_char *, ufs1_daddr_t);
-void		ffs_setblock(struct fs *, u_char *, ufs1_daddr_t);
 void		fileerror(ino_t cwd, ino_t ino, const char *errmesg);
 int		findino(struct inodesc *);
 int		findname(struct inodesc *);
@@ -392,3 +388,4 @@ void		sblock_init(void);
 void		setinodebuf(ino_t);
 int		setup(char *dev);
 void		gjournal_check(const char *filesys);
+void		suj_check(const char *filesys);

Modified: projects/suj/7/sbin/fsck_ffs/gjournal.c
==============================================================================
--- projects/suj/7/sbin/fsck_ffs/gjournal.c	Wed Jan 20 10:15:55 2010	(r202689)
+++ projects/suj/7/sbin/fsck_ffs/gjournal.c	Wed Jan 20 10:21:04 2010	(r202690)
@@ -96,27 +96,6 @@ struct ufs2_dinode ufs2_zino;
 static void putcgs(void);
 
 /*
- * Write current block of inodes.
- */
-static int
-putino(struct uufsd *disk, ino_t inode)
-{
-	caddr_t inoblock;
-	struct fs *fs;
-	ssize_t ret;
-
-	fs = &disk->d_fs;
-	inoblock = disk->d_inoblock;
-
-	assert(inoblock != NULL);
-	assert(inode >= disk->d_inomin && inode <= disk->d_inomax);
-	ret = bwrite(disk, fsbtodb(fs, ino_to_fsba(fs, inode)), inoblock,
-	    fs->fs_bsize);
-
-	return (ret == -1 ? -1 : 0);
-}
-
-/*
  * Return cylinder group from the cache or load it if it is not in the
  * cache yet.
  * Don't cache more than MAX_CACHED_CGS cylinder groups.
@@ -242,13 +221,11 @@ cancelcgs(void)
 #endif
 
 /*
- * Open the given provider, load statistics.
+ * Open the given provider, load superblock.
  */
 static void
-getdisk(void)
+opendisk(void)
 {
-	int i;
-
 	if (disk != NULL)
 		return;
 	disk = malloc(sizeof(*disk));
@@ -259,24 +236,6 @@ getdisk(void)
 		    disk->d_error);
 	}
 	fs = &disk->d_fs;
-	fs->fs_csp = malloc((size_t)fs->fs_cssize);
-	if (fs->fs_csp == NULL)
-		err(1, "malloc(%zu)", (size_t)fs->fs_cssize);
-	bzero(fs->fs_csp, (size_t)fs->fs_cssize);
-	for (i = 0; i < fs->fs_cssize; i += fs->fs_bsize) {
-		if (bread(disk, fsbtodb(fs, fs->fs_csaddr + numfrags(fs, i)),
-		    (void *)(((char *)fs->fs_csp) + i),
-		    (size_t)(fs->fs_cssize - i < fs->fs_bsize ? fs->fs_cssize - i : fs->fs_bsize)) == -1) {
-			err(1, "bread: %s", disk->d_error);
-		}
-	}
-	if (fs->fs_contigsumsize > 0) {
-		fs->fs_maxcluster = malloc(fs->fs_ncg * sizeof(int32_t));
-		if (fs->fs_maxcluster == NULL)
-			err(1, "malloc(%zu)", fs->fs_ncg * sizeof(int32_t));
-		for (i = 0; i < fs->fs_ncg; i++)
-			fs->fs_maxcluster[i] = fs->fs_contigsumsize;
-	}
 }
 
 /*
@@ -286,11 +245,6 @@ static void
 closedisk(void)
 {
 
-	free(fs->fs_csp);
-	if (fs->fs_contigsumsize > 0) {
-		free(fs->fs_maxcluster);
-		fs->fs_maxcluster = NULL;
-	}
 	fs->fs_clean = 1;
 	if (sbwrite(disk, 0) == -1)
 		err(1, "sbwrite(%s)", devnam);
@@ -301,227 +255,6 @@ closedisk(void)
 	fs = NULL;
 }
 
-/*
- * Write the statistics back, call closedisk().
- */
-static void
-putdisk(void)
-{
-	int i;
-
-	assert(disk != NULL && fs != NULL);
-	for (i = 0; i < fs->fs_cssize; i += fs->fs_bsize) {
-		if (bwrite(disk, fsbtodb(fs, fs->fs_csaddr + numfrags(fs, i)),
-		    (void *)(((char *)fs->fs_csp) + i),
-		    (size_t)(fs->fs_cssize - i < fs->fs_bsize ? fs->fs_cssize - i : fs->fs_bsize)) == -1) {
-			err(1, "bwrite: %s", disk->d_error);
-		}
-	}
-	closedisk();
-}
-
-#if 0
-/*
- * Free memory, close the disk, but don't write anything back.
- */
-static void
-canceldisk(void)
-{
-	int i;
-
-	assert(disk != NULL && fs != NULL);
-	free(fs->fs_csp);
-	if (fs->fs_contigsumsize > 0)
-		free(fs->fs_maxcluster);
-	if (ufs_disk_close(disk) == -1)
-		err(1, "ufs_disk_close(%s)", devnam);
-	free(disk);
-	disk = NULL;
-	fs = NULL;
-}
-#endif
-
-static int
-isblock(unsigned char *cp, ufs1_daddr_t h)
-{
-	unsigned char mask;
-
-	switch ((int)fs->fs_frag) {
-	case 8:
-		return (cp[h] == 0xff);
-	case 4:
-		mask = 0x0f << ((h & 0x1) << 2);
-		return ((cp[h >> 1] & mask) == mask);
-	case 2:
-		mask = 0x03 << ((h & 0x3) << 1);
-		return ((cp[h >> 2] & mask) == mask);
-	case 1:
-		mask = 0x01 << (h & 0x7);
-		return ((cp[h >> 3] & mask) == mask);
-	default:
-		assert(!"isblock: invalid number of fragments");
-	}
-	return (0);
-}
-
-/*
- * put a block into the map
- */
-static void
-setblock(unsigned char *cp, ufs1_daddr_t h)
-{
-
-	switch ((int)fs->fs_frag) {
-	case 8:
-		cp[h] = 0xff;
-		return;
-	case 4:
-		cp[h >> 1] |= (0x0f << ((h & 0x1) << 2));
-		return;
-	case 2:
-		cp[h >> 2] |= (0x03 << ((h & 0x3) << 1));
-		return;
-	case 1:
-		cp[h >> 3] |= (0x01 << (h & 0x7));
-		return;
-	default:
-		assert(!"setblock: invalid number of fragments");
-	}
-}
-
-/*
- * check if a block is free
- */
-static int
-isfreeblock(u_char *cp, ufs1_daddr_t h)
-{
-
-	switch ((int)fs->fs_frag) {
-	case 8:
-		return (cp[h] == 0);
-	case 4:
-		return ((cp[h >> 1] & (0x0f << ((h & 0x1) << 2))) == 0);
-	case 2:
-		return ((cp[h >> 2] & (0x03 << ((h & 0x3) << 1))) == 0);
-	case 1:
-		return ((cp[h >> 3] & (0x01 << (h & 0x7))) == 0);
-	default:
-		assert(!"isfreeblock: invalid number of fragments");
-	}
-	return (0);
-}
-
-/*
- * Update the frsum fields to reflect addition or deletion
- * of some frags.
- */
-void
-fragacct(int fragmap, int32_t fraglist[], int cnt)
-{
-	int inblk;
-	int field, subfield;
-	int siz, pos;
-
-	inblk = (int)(fragtbl[fs->fs_frag][fragmap]) << 1;
-	fragmap <<= 1;
-	for (siz = 1; siz < fs->fs_frag; siz++) {
-		if ((inblk & (1 << (siz + (fs->fs_frag % NBBY)))) == 0)
-			continue;
-		field = around[siz];
-		subfield = inside[siz];
-		for (pos = siz; pos <= fs->fs_frag; pos++) {
-			if ((fragmap & field) == subfield) {
-				fraglist[siz] += cnt;
-				pos += siz;
-				field <<= siz;
-				subfield <<= siz;
-			}
-			field <<= 1;
-			subfield <<= 1;
-		}
-	}
-}
-
-static void
-clusteracct(struct cg *cgp, ufs1_daddr_t blkno)
-{
-	int32_t *sump;
-	int32_t *lp;
-	u_char *freemapp, *mapp;
-	int i, start, end, forw, back, map, bit;
-
-	if (fs->fs_contigsumsize <= 0)
-		return;
-	freemapp = cg_clustersfree(cgp);
-	sump = cg_clustersum(cgp);
-	/*
-	 * Clear the actual block.
-	 */
-	setbit(freemapp, blkno);
-	/*
-	 * Find the size of the cluster going forward.
-	 */
-	start = blkno + 1;
-	end = start + fs->fs_contigsumsize;
-	if (end >= cgp->cg_nclusterblks)
-		end = cgp->cg_nclusterblks;
-	mapp = &freemapp[start / NBBY];
-	map = *mapp++;
-	bit = 1 << (start % NBBY);
-	for (i = start; i < end; i++) {
-		if ((map & bit) == 0)
-			break;
-		if ((i & (NBBY - 1)) != (NBBY - 1)) {
-			bit <<= 1;
-		} else {
-			map = *mapp++;
-			bit = 1;
-		}
-	}
-	forw = i - start;
-	/*
-	 * Find the size of the cluster going backward.
-	 */
-	start = blkno - 1;
-	end = start - fs->fs_contigsumsize;
-	if (end < 0)
-		end = -1;
-	mapp = &freemapp[start / NBBY];
-	map = *mapp--;
-	bit = 1 << (start % NBBY);
-	for (i = start; i > end; i--) {
-		if ((map & bit) == 0)
-			break;
-		if ((i & (NBBY - 1)) != 0) {
-			bit >>= 1;
-		} else {
-			map = *mapp--;
-			bit = 1 << (NBBY - 1);
-		}
-	}
-	back = start - i;
-	/*
-	 * Account for old cluster and the possibly new forward and
-	 * back clusters.
-	 */
-	i = back + forw + 1;
-	if (i > fs->fs_contigsumsize)
-		i = fs->fs_contigsumsize;
-	sump[i]++;
-	if (back > 0)
-		sump[back]--;
-	if (forw > 0)
-		sump[forw]--;
-	/*
-	 * Update cluster summary information.
-	 */
-	lp = &sump[fs->fs_contigsumsize];
-	for (i = fs->fs_contigsumsize; i > 0; i--)
-		if (*lp-- > 0)
-			break;
-	fs->fs_maxcluster[cgp->cg_cgx] = i;
-}
-
 static void
 blkfree(ufs2_daddr_t bno, long size)
 {
@@ -539,10 +272,10 @@ blkfree(ufs2_daddr_t bno, long size)
 	blksfree = cg_blksfree(cgp);
 	if (size == fs->fs_bsize) {
 		fragno = fragstoblks(fs, cgbno);
-		if (!isfreeblock(blksfree, fragno))
+		if (!ffs_isfreeblock(fs, blksfree, fragno))
 			assert(!"blkfree: freeing free block");
-		setblock(blksfree, fragno);
-		clusteracct(cgp, fragno);
+		ffs_setblock(fs, blksfree, fragno);
+		ffs_clusteracct(fs, cgp, fragno, 1);
 		cgp->cg_cs.cs_nbfree++;
 		fs->fs_cstotal.cs_nbfree++;
 		fs->fs_cs(fs, cg).cs_nbfree++;
@@ -552,7 +285,7 @@ blkfree(ufs2_daddr_t bno, long size)
 		 * decrement the counts associated with the old frags
 		 */
 		blk = blkmap(fs, blksfree, bbase);
-		fragacct(blk, cgp->cg_frsum, -1);
+		ffs_fragacct(fs, blk, cgp->cg_frsum, -1);
 		/*
 		 * deallocate the fragment
 		 */
@@ -569,16 +302,16 @@ blkfree(ufs2_daddr_t bno, long size)
 		 * add back in counts associated with the new frags
 		 */
 		blk = blkmap(fs, blksfree, bbase);
-		fragacct(blk, cgp->cg_frsum, 1);
+		ffs_fragacct(fs, blk, cgp->cg_frsum, 1);
 		/*
 		 * if a complete block has been reassembled, account for it
 		 */
 		fragno = fragstoblks(fs, bbase);
-		if (isblock(blksfree, fragno)) {
+		if (ffs_isblock(fs, blksfree, fragno)) {
 			cgp->cg_cs.cs_nffree -= fs->fs_frag;
 			fs->fs_cstotal.cs_nffree -= fs->fs_frag;
 			fs->fs_cs(fs, cg).cs_nffree -= fs->fs_frag;
-			clusteracct(cgp, fragno);
+			ffs_clusteracct(fs, cgp, fragno, 1);
 			cgp->cg_cs.cs_nbfree++;
 			fs->fs_cstotal.cs_nbfree++;
 			fs->fs_cs(fs, cg).cs_nbfree++;
@@ -599,7 +332,7 @@ freeindir(ufs2_daddr_t blk, int level)
 	if (bread(disk, fsbtodb(fs, blk), (void *)&sblks, (size_t)fs->fs_bsize) == -1)
 		err(1, "bread: %s", disk->d_error);
 	blks = (ufs2_daddr_t *)&sblks;
-	for (i = 0; i < howmany(fs->fs_bsize, sizeof(ufs2_daddr_t)); i++) {
+	for (i = 0; i < NINDIR(fs); i++) {
 		if (blks[i] == 0)
 			break;
 		if (level == 0)
@@ -671,7 +404,7 @@ gjournal_check(const char *filesys)
 	int cg, mode;
 
 	devnam = filesys;
-	getdisk();
+	opendisk();
 	/* Are there any unreferenced inodes in this file system? */
 	if (fs->fs_unrefs == 0) {
 		//printf("No unreferenced inodes.\n");
@@ -747,7 +480,7 @@ gjournal_check(const char *filesys)
 			/* Zero-fill the inode. */
 			*dino = ufs2_zino;
 			/* Write the inode back. */
-			if (putino(disk, ino) == -1)
+			if (putino(disk) == -1)
 				err(1, "putino(cg=%d ino=%d)", cg, ino);
 			if (cgp->cg_unrefs == 0) {
 				//printf("No more unreferenced inodes in cg=%d.\n", cg);
@@ -772,5 +505,5 @@ gjournal_check(const char *filesys)
 	/* Write back modified cylinder groups. */
 	putcgs();
 	/* Write back updated statistics and super-block. */
-	putdisk();
+	closedisk();
 }

Modified: projects/suj/7/sbin/fsck_ffs/main.c
==============================================================================
--- projects/suj/7/sbin/fsck_ffs/main.c	Wed Jan 20 10:15:55 2010	(r202689)
+++ projects/suj/7/sbin/fsck_ffs/main.c	Wed Jan 20 10:21:04 2010	(r202690)
@@ -257,7 +257,7 @@ checkfilesys(char *filesys)
 	}
 	if (ckclean && skipclean) {
 		/*
-		 * If file system is gjournaled, check it here.
+		 * If file system is gjournaled or su+j, check it here.
 		 */
 		if ((fsreadfd = open(filesys, O_RDONLY)) < 0 || readsb(0) == 0)
 			exit(3);	/* Cannot read superblock */
@@ -279,6 +279,18 @@ checkfilesys(char *filesys)
 				    "CANNOT RUN FAST FSCK\n");
 			}
 		}
+#if 0
+		if ((sblock.fs_flags & FS_SUJ) != 0) {
+			if (sblock.fs_clean == 1) {
+				pwarn("FILE SYSTEM CLEAN; SKIPPING CHECKS\n");
+				exit(0);
+			}
+			suj_check(filesys);
+			if (chkdoreload(mntp) == 0)
+				exit(0);
+			exit(4);
+		}
+#endif
 	}
 	/*
 	 * If we are to do a background check:
@@ -300,7 +312,7 @@ checkfilesys(char *filesys)
 			pfatal("MOUNTED READ-ONLY, CANNOT RUN IN BACKGROUND\n");
 		} else if ((fsreadfd = open(filesys, O_RDONLY)) >= 0) {
 			if (readsb(0) != 0) {
-				if (sblock.fs_flags & FS_NEEDSFSCK) {
+				if (sblock.fs_flags & (FS_NEEDSFSCK | FS_SUJ)) {
 					bkgrdflag = 0;
 					pfatal("UNEXPECTED INCONSISTENCY, %s\n",
 					    "CANNOT RUN IN BACKGROUND\n");
@@ -484,6 +496,7 @@ checkfilesys(char *filesys)
 	inocleanup();
 	if (fsmodified) {
 		sblock.fs_time = time(NULL);
+		sblock.fs_mtime = time(NULL);
 		sbdirty();
 	}
 	if (cvtlevel && sblk.b_dirty) {

Modified: projects/suj/7/sbin/fsck_ffs/pass4.c
==============================================================================
--- projects/suj/7/sbin/fsck_ffs/pass4.c	Wed Jan 20 10:15:55 2010	(r202689)
+++ projects/suj/7/sbin/fsck_ffs/pass4.c	Wed Jan 20 10:21:04 2010	(r202690)
@@ -72,6 +72,9 @@ pass4(void)
 		for (i = 0; i < inostathead[cg].il_numalloced; i++, inumber++) {
 			if (inumber < ROOTINO)
 				continue;
+			if (sblock.fs_flags & FS_SUJ &&
+			    inumber == sblock.fs_sujournal)
+				continue;
 			idesc.id_number = inumber;
 			switch (inoinfo(inumber)->ino_state) {
 

Modified: projects/suj/7/sbin/fsck_ffs/pass5.c
==============================================================================
--- projects/suj/7/sbin/fsck_ffs/pass5.c	Wed Jan 20 10:15:55 2010	(r202689)
+++ projects/suj/7/sbin/fsck_ffs/pass5.c	Wed Jan 20 10:21:04 2010	(r202690)
@@ -45,6 +45,7 @@ __FBSDID("$FreeBSD$");
 #include <inttypes.h>
 #include <limits.h>
 #include <string.h>
+#include <libufs.h>
 
 #include "fsck.h"
 

Copied: projects/suj/7/sbin/fsck_ffs/suj.c (from r202688, projects/suj/8/sbin/fsck_ffs/suj.c)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ projects/suj/7/sbin/fsck_ffs/suj.c	Wed Jan 20 10:21:04 2010	(r202690, copy of r202688, projects/suj/8/sbin/fsck_ffs/suj.c)
@@ -0,0 +1,2065 @@
+/*-
+ * Copyright (c) 2009 Jeffrey W. Roberson <jeff@FreeBSD.org>
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHORS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#include <sys/cdefs.h>
+__FBSDID("$FreeBSD$");
+
+#include <sys/param.h>
+#include <sys/disklabel.h>
+#include <sys/mount.h>
+#include <sys/stat.h>
+
+#include <ufs/ufs/ufsmount.h>
+#include <ufs/ufs/dinode.h>
+#include <ufs/ufs/dir.h>
+#include <ufs/ffs/fs.h>
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <stdint.h>
+#include <libufs.h>
+#include <strings.h>
+#include <err.h>
+#include <assert.h>
+
+#include "fsck.h"
+
+static void	ino_decr(ino_t);
+
+#define	SUJ_HASHSIZE	128
+#define	SUJ_HASHMASK	(SUJ_HASHSIZE - 1)
+#define	SUJ_HASH(x)	((x * 2654435761) & SUJ_HASHMASK)
+
+struct suj_seg {
+	TAILQ_ENTRY(suj_seg) ss_next;
+	struct jsegrec	ss_rec;
+	uint8_t		*ss_blk;
+};
+
+struct suj_rec {
+	TAILQ_ENTRY(suj_rec) sr_next;
+	union jrec	*sr_rec;
+};
+TAILQ_HEAD(srechd, suj_rec);
+
+struct suj_ino {
+	LIST_ENTRY(suj_ino)	si_next;
+	struct srechd		si_recs;
+	struct srechd		si_movs;
+	ino_t			si_ino;
+	int			si_nlinkadj;
+	int			si_skipparent;
+	int			si_linkadj;
+	int			si_hasrecs;
+	int			si_blkadj;
+};
+LIST_HEAD(inohd, suj_ino);
+
+struct suj_blk {
+	LIST_ENTRY(suj_blk)	sb_next;
+	struct srechd		sb_recs;
+	ufs2_daddr_t		sb_blk;
+};
+LIST_HEAD(blkhd, suj_blk);
+
+struct data_blk {
+	LIST_ENTRY(data_blk)	db_next;
+	uint8_t			*db_buf;
+	ufs2_daddr_t		db_blk;
+	int			db_size;
+};
+
+struct ino_blk {
+	LIST_ENTRY(ino_blk)	ib_next;
+	uint8_t			*ib_buf;
+	int			ib_dirty;
+	ufs2_daddr_t		ib_blk;
+};
+LIST_HEAD(iblkhd, ino_blk);
+
+struct suj_cg {
+	LIST_ENTRY(suj_cg)	sc_next;
+	struct blkhd		sc_blkhash[SUJ_HASHSIZE];
+	struct inohd		sc_inohash[SUJ_HASHSIZE];
+	struct iblkhd		sc_iblkhash[SUJ_HASHSIZE];
+	struct ino_blk		*sc_lastiblk;
+	uint8_t			*sc_cgbuf;
+	struct cg		*sc_cgp;
+	int			sc_dirty;
+	int			sc_cgx;
+};
+
+LIST_HEAD(cghd, suj_cg) cghash[SUJ_HASHSIZE];
+LIST_HEAD(dblkhd, data_blk) dbhash[SUJ_HASHSIZE];
+
+TAILQ_HEAD(seghd, suj_seg) allsegs;
+uint64_t oldseq;
+static struct uufsd *disk = NULL;
+static struct fs *fs = NULL;
+
+/*
+ * Summary statistics.
+ */
+uint64_t freefrags;
+uint64_t freeblocks;
+uint64_t freeinos;
+uint64_t freedir;
+uint64_t jbytes;
+uint64_t jrecs;
+
+typedef void (*ino_visitor)(ino_t, ufs_lbn_t, ufs2_daddr_t, int);
+
+static void *
+errmalloc(size_t n)
+{
+	void *a;
+
+	a = malloc(n);
+	if (a == NULL)
+		errx(1, "malloc(%zu)", n);
+	return (a);
+}
+
+/*
+ * Open the given provider, load superblock.
+ */
+static void
+opendisk(const char *devnam)
+{
+	if (disk != NULL)
+		return;
+	disk = malloc(sizeof(*disk));
+	if (disk == NULL)
+		errx(1, "malloc(%zu)", sizeof(*disk));
+	if (ufs_disk_fillout(disk, devnam) == -1) {
+		err(1, "ufs_disk_fillout(%s) failed: %s", devnam,
+		    disk->d_error);
+	}
+	fs = &disk->d_fs;
+	/*
+	 * Setup a few things so reply() can work.
+	 */
+	bcopy(fs, &sblock, sizeof(sblock));
+	fsreadfd = disk->d_fd;
+	fswritefd = disk->d_fd;
+}
+
+/*
+ * Mark file system as clean, write the super-block back, close the disk.
+ */
+static void
+closedisk(const char *devnam)
+{
+	struct csum *cgsum;
+	int i;
+
+	/*
+	 * Recompute the fs summary info from correct cs summaries.
+	 */
+	bzero(&fs->fs_cstotal, sizeof(struct csum_total));
+	for (i = 0; i < fs->fs_ncg; i++) {
+		cgsum = &fs->fs_cs(fs, i);
+		fs->fs_cstotal.cs_nffree += cgsum->cs_nffree;
+		fs->fs_cstotal.cs_nbfree += cgsum->cs_nbfree;
+		fs->fs_cstotal.cs_nifree += cgsum->cs_nifree;
+		fs->fs_cstotal.cs_ndir += cgsum->cs_ndir;
+	}
+	/* XXX Don't set clean for now, we don't trust the journal. */
+	/* fs->fs_clean = 1; */
+	fs->fs_time = time(NULL);
+	fs->fs_mtime = time(NULL);
+	if (sbwrite(disk, 0) == -1)
+		err(1, "sbwrite(%s)", devnam);
+	if (ufs_disk_close(disk) == -1)
+		err(1, "ufs_disk_close(%s)", devnam);

*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***

From owner-svn-src-projects@FreeBSD.ORG  Wed Jan 20 10:22:45 2010
Return-Path: <owner-svn-src-projects@FreeBSD.ORG>
Delivered-To: svn-src-projects@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 2C671106566C;
	Wed, 20 Jan 2010 10:22:45 +0000 (UTC)
	(envelope-from jroberson@jroberson.net)
Received: from mail-yx0-f171.google.com (mail-yx0-f171.google.com
	[209.85.210.171])
	by mx1.freebsd.org (Postfix) with ESMTP id B04B98FC14;
	Wed, 20 Jan 2010 10:22:44 +0000 (UTC)
Received: by yxe1 with SMTP id 1so1255966yxe.3
	for <multiple recipients>; Wed, 20 Jan 2010 02:22:44 -0800 (PST)
Received: by 10.91.136.9 with SMTP id o9mr7429253agn.111.1263981243185;
	Wed, 20 Jan 2010 01:54:03 -0800 (PST)
Received: from ?10.0.1.198? (udp022762uds.hawaiiantel.net [72.234.79.107])
	by mx.google.com with ESMTPS id 13sm3749505gxk.9.2010.01.20.01.53.59
	(version=SSLv3 cipher=RC4-MD5); Wed, 20 Jan 2010 01:54:02 -0800 (PST)
Date: Tue, 19 Jan 2010 23:57:48 -1000 (HST)
From: Jeff Roberson <jroberson@jroberson.net>
X-X-Sender: jroberson@desktop
To: Jeff Roberson <jeff@FreeBSD.org>
In-Reply-To: <201001200949.o0K9nsgX076781@svn.freebsd.org>
Message-ID: <alpine.BSF.2.00.1001192357070.1027@desktop>
References: <201001200949.o0K9nsgX076781@svn.freebsd.org>
User-Agent: Alpine 2.00 (BSF 1167 2008-08-23)
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed
Cc: svn-src-projects@freebsd.org, src-committers@freebsd.org
Subject: Re: svn commit: r202688 - in projects/suj/8: . contrib/top
 lib/libufs
 lib/libusb sbin/fsck_ffs sbin/fsdb sbin/mount sbin/tunefs share/man/man4
 sys/kern sys/sys sys/ufs/ffs sys/ufs/ufs tools/regression/...
X-BeenThere: svn-src-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the src &quot; projects&quot;
	tree" <svn-src-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
	<mailto:svn-src-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-projects>
List-Post: <mailto:svn-src-projects@freebsd.org>
List-Help: <mailto:svn-src-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
	<mailto:svn-src-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Wed, 20 Jan 2010 10:22:45 -0000

On Wed, 20 Jan 2010, Jeff Roberson wrote:
> Author: jeff
> Date: Wed Jan 20 09:49:53 2010
> New Revision: 202688
> URL: http://svn.freebsd.org/changeset/base/202688
>
> Log:
>   - Merge SUJ from the private head branch to the private 8 branch.

Can someone tell me what's up with all the property changes?  Is it 
because I didn't do one merge for each top level directory I care about?

Thanks,
Jeff

>
> Added:
>  projects/suj/8/sbin/fsck_ffs/suj.c
>     - copied unchanged from r202685, projects/suj/head/sbin/fsck_ffs/suj.c
> Modified:
>  projects/suj/8/lib/libufs/Makefile
>  projects/suj/8/lib/libufs/cgroup.c
>  projects/suj/8/lib/libufs/inode.c
>  projects/suj/8/lib/libufs/libufs.h
>  projects/suj/8/lib/libufs/sblock.c
>  projects/suj/8/lib/libufs/type.c
>  projects/suj/8/sbin/fsck_ffs/Makefile
>  projects/suj/8/sbin/fsck_ffs/fsck.h
>  projects/suj/8/sbin/fsck_ffs/gjournal.c
>  projects/suj/8/sbin/fsck_ffs/main.c
>  projects/suj/8/sbin/fsck_ffs/pass4.c
>  projects/suj/8/sbin/fsck_ffs/pass5.c
>  projects/suj/8/sbin/fsdb/fsdbutil.c
>  projects/suj/8/sbin/mount/mount.c
>  projects/suj/8/sbin/tunefs/tunefs.c
>  projects/suj/8/sys/kern/vfs_bio.c
>  projects/suj/8/sys/kern/vfs_subr.c
>  projects/suj/8/sys/sys/buf.h
>  projects/suj/8/sys/sys/mount.h
>  projects/suj/8/sys/ufs/ffs/ffs_alloc.c
>  projects/suj/8/sys/ufs/ffs/ffs_balloc.c
>  projects/suj/8/sys/ufs/ffs/ffs_extern.h
>  projects/suj/8/sys/ufs/ffs/ffs_inode.c
>  projects/suj/8/sys/ufs/ffs/ffs_snapshot.c
>  projects/suj/8/sys/ufs/ffs/ffs_softdep.c
>  projects/suj/8/sys/ufs/ffs/ffs_subr.c
>  projects/suj/8/sys/ufs/ffs/ffs_vfsops.c
>  projects/suj/8/sys/ufs/ffs/ffs_vnops.c
>  projects/suj/8/sys/ufs/ffs/fs.h
>  projects/suj/8/sys/ufs/ffs/softdep.h
>  projects/suj/8/sys/ufs/ufs/dinode.h
>  projects/suj/8/sys/ufs/ufs/inode.h
>  projects/suj/8/sys/ufs/ufs/ufs_dirhash.c
>  projects/suj/8/sys/ufs/ufs/ufs_extern.h
>  projects/suj/8/sys/ufs/ufs/ufs_lookup.c
>  projects/suj/8/sys/ufs/ufs/ufs_vnops.c
>  projects/suj/8/sys/ufs/ufs/ufsmount.h
>  projects/suj/8/usr.sbin/makefs/ffs/ffs_bswap.c   (contents, props changed)
> Directory Properties:
>  projects/suj/8/   (props changed)
>  projects/suj/8/ObsoleteFiles.inc   (props changed)
>  projects/suj/8/UPDATING   (props changed)
>  projects/suj/8/bin/   (props changed)
>  projects/suj/8/bin/csh/   (props changed)
>  projects/suj/8/bin/pax/   (props changed)
>  projects/suj/8/bin/ps/   (props changed)
>  projects/suj/8/bin/sh/   (props changed)
>  projects/suj/8/cddl/compat/opensolaris/   (props changed)
>  projects/suj/8/cddl/contrib/opensolaris/   (props changed)
>  projects/suj/8/cddl/contrib/opensolaris/cmd/zdb/   (props changed)
>  projects/suj/8/cddl/contrib/opensolaris/cmd/zfs/   (props changed)
>  projects/suj/8/cddl/contrib/opensolaris/lib/libzfs/   (props changed)
>  projects/suj/8/cddl/lib/libnvpair/   (props changed)
>  projects/suj/8/contrib/bind9/   (props changed)
>  projects/suj/8/contrib/bsnmp/   (props changed)
>  projects/suj/8/contrib/bzip2/   (props changed)
>  projects/suj/8/contrib/cpio/   (props changed)
>  projects/suj/8/contrib/csup/   (props changed)
>  projects/suj/8/contrib/ee/   (props changed)
>  projects/suj/8/contrib/expat/   (props changed)
>  projects/suj/8/contrib/file/   (props changed)
>  projects/suj/8/contrib/gcc/   (props changed)
>  projects/suj/8/contrib/gdb/   (props changed)
>  projects/suj/8/contrib/gdtoa/   (props changed)
>  projects/suj/8/contrib/groff/   (props changed)
>  projects/suj/8/contrib/less/   (props changed)
>  projects/suj/8/contrib/libpcap/   (props changed)
>  projects/suj/8/contrib/ncurses/   (props changed)
>  projects/suj/8/contrib/netcat/   (props changed)
>  projects/suj/8/contrib/ntp/   (props changed)
>  projects/suj/8/contrib/one-true-awk/   (props changed)
>  projects/suj/8/contrib/openbsm/   (props changed)
>  projects/suj/8/contrib/openpam/   (props changed)
>  projects/suj/8/contrib/pf/   (props changed)
>  projects/suj/8/contrib/sendmail/   (props changed)
>  projects/suj/8/contrib/tcpdump/   (props changed)
>  projects/suj/8/contrib/tcsh/   (props changed)
>  projects/suj/8/contrib/top/   (props changed)
>  projects/suj/8/contrib/top/install-sh   (props changed)
>  projects/suj/8/contrib/traceroute/   (props changed)
>  projects/suj/8/contrib/wpa/   (props changed)
>  projects/suj/8/crypto/heimdal/   (props changed)
>  projects/suj/8/crypto/openssh/   (props changed)
>  projects/suj/8/crypto/openssl/   (props changed)
>  projects/suj/8/etc/   (props changed)
>  projects/suj/8/etc/rc.d/   (props changed)
>  projects/suj/8/games/factor/   (props changed)
>  projects/suj/8/games/fortune/   (props changed)
>  projects/suj/8/games/fortune/datfiles/   (props changed)
>  projects/suj/8/gnu/usr.bin/groff/   (props changed)
>  projects/suj/8/gnu/usr.bin/patch/   (props changed)
>  projects/suj/8/include/   (props changed)
>  projects/suj/8/kerberos5/lib/libgssapi_krb5/   (props changed)
>  projects/suj/8/kerberos5/lib/libgssapi_spnego/   (props changed)
>  projects/suj/8/lib/bind/   (props changed)
>  projects/suj/8/lib/csu/   (props changed)
>  projects/suj/8/lib/libarchive/   (props changed)
>  projects/suj/8/lib/libc/   (props changed)
>  projects/suj/8/lib/libc/stdtime/   (props changed)
>  projects/suj/8/lib/libdevinfo/   (props changed)
>  projects/suj/8/lib/libdisk/   (props changed)
>  projects/suj/8/lib/libelf/   (props changed)
>  projects/suj/8/lib/libexpat/   (props changed)
>  projects/suj/8/lib/libfetch/   (props changed)
>  projects/suj/8/lib/libjail/   (props changed)
>  projects/suj/8/lib/libkvm/   (props changed)
>  projects/suj/8/lib/libpmc/   (props changed)
>  projects/suj/8/lib/libradius/   (props changed)
>  projects/suj/8/lib/libstand/   (props changed)
>  projects/suj/8/lib/libtacplus/   (props changed)
>  projects/suj/8/lib/libthr/   (props changed)
>  projects/suj/8/lib/libusb/   (props changed)
>  projects/suj/8/lib/libusb/usb.h   (props changed)
>  projects/suj/8/lib/libutil/   (props changed)
>  projects/suj/8/libexec/rtld-elf/   (props changed)
>  projects/suj/8/release/   (props changed)
>  projects/suj/8/release/doc/   (props changed)
>  projects/suj/8/release/doc/en_US.ISO8859-1/hardware/   (props changed)
>  projects/suj/8/sbin/   (props changed)
>  projects/suj/8/sbin/atacontrol/   (props changed)
>  projects/suj/8/sbin/bsdlabel/   (props changed)
>  projects/suj/8/sbin/camcontrol/   (props changed)
>  projects/suj/8/sbin/ddb/   (props changed)
>  projects/suj/8/sbin/dhclient/   (props changed)
>  projects/suj/8/sbin/fsck/   (props changed)
>  projects/suj/8/sbin/geom/   (props changed)
>  projects/suj/8/sbin/geom/class/stripe/   (props changed)
>  projects/suj/8/sbin/ifconfig/   (props changed)
>  projects/suj/8/sbin/ipfw/   (props changed)
>  projects/suj/8/sbin/mksnap_ffs/   (props changed)
>  projects/suj/8/sbin/mount/   (props changed)
>  projects/suj/8/sbin/mount_cd9660/   (props changed)
>  projects/suj/8/sbin/mount_msdosfs/   (props changed)
>  projects/suj/8/sbin/mount_nfs/   (props changed)
>  projects/suj/8/sbin/umount/   (props changed)
>  projects/suj/8/secure/usr.bin/bdes/   (props changed)
>  projects/suj/8/share/examples/   (props changed)
>  projects/suj/8/share/man/man3/   (props changed)
>  projects/suj/8/share/man/man4/   (props changed)
>  projects/suj/8/share/man/man4/de.4   (props changed)
>  projects/suj/8/share/man/man5/   (props changed)
>  projects/suj/8/share/man/man7/   (props changed)
>  projects/suj/8/share/man/man8/   (props changed)
>  projects/suj/8/share/man/man9/   (props changed)
>  projects/suj/8/share/misc/   (props changed)
>  projects/suj/8/share/timedef/   (props changed)
>  projects/suj/8/share/zoneinfo/   (props changed)
>  projects/suj/8/sys/   (props changed)
>  projects/suj/8/sys/amd64/include/xen/   (props changed)
>  projects/suj/8/sys/cddl/contrib/opensolaris/   (props changed)
>  projects/suj/8/sys/contrib/dev/acpica/   (props changed)
>  projects/suj/8/sys/contrib/pf/   (props changed)
>  projects/suj/8/sys/dev/xen/xenpci/   (props changed)
>  projects/suj/8/tools/kerneldoc/subsys/   (props changed)
>  projects/suj/8/tools/regression/bin/sh/   (props changed)
>  projects/suj/8/tools/regression/lib/libc/   (props changed)
>  projects/suj/8/tools/regression/lib/msun/test-conj.t   (props changed)
>  projects/suj/8/tools/regression/poll/   (props changed)
>  projects/suj/8/tools/regression/priv/   (props changed)
>  projects/suj/8/tools/regression/usr.bin/pkill/pgrep-_g.t   (props changed)
>  projects/suj/8/tools/regression/usr.bin/pkill/pgrep-_s.t   (props changed)
>  projects/suj/8/tools/regression/usr.bin/pkill/pkill-_g.t   (props changed)
>  projects/suj/8/tools/tools/ath/common/dumpregs.h   (props changed)
>  projects/suj/8/tools/tools/ath/common/dumpregs_5210.c   (props changed)
>  projects/suj/8/tools/tools/ath/common/dumpregs_5211.c   (props changed)
>  projects/suj/8/tools/tools/ath/common/dumpregs_5212.c   (props changed)
>  projects/suj/8/tools/tools/ath/common/dumpregs_5416.c   (props changed)
>  projects/suj/8/tools/tools/termcap/termcap.pl   (props changed)
>  projects/suj/8/tools/tools/vimage/   (props changed)
>  projects/suj/8/usr.bin/awk/   (props changed)
>  projects/suj/8/usr.bin/calendar/   (props changed)
>  projects/suj/8/usr.bin/calendar/calendars/calendar.freebsd   (props changed)
>  projects/suj/8/usr.bin/csup/   (props changed)
>  projects/suj/8/usr.bin/fetch/   (props changed)
>  projects/suj/8/usr.bin/find/   (props changed)
>  projects/suj/8/usr.bin/finger/   (props changed)
>  projects/suj/8/usr.bin/fstat/   (props changed)
>  projects/suj/8/usr.bin/gcore/   (props changed)
>  projects/suj/8/usr.bin/gzip/   (props changed)
>  projects/suj/8/usr.bin/kdump/   (props changed)
>  projects/suj/8/usr.bin/locale/   (props changed)
>  projects/suj/8/usr.bin/look/   (props changed)
>  projects/suj/8/usr.bin/netstat/   (props changed)
>  projects/suj/8/usr.bin/perror/   (props changed)
>  projects/suj/8/usr.bin/procstat/   (props changed)
>  projects/suj/8/usr.bin/systat/   (props changed)
>  projects/suj/8/usr.bin/tftp/   (props changed)
>  projects/suj/8/usr.bin/unifdef/   (props changed)
>  projects/suj/8/usr.bin/vmstat/   (props changed)
>  projects/suj/8/usr.bin/w/   (props changed)
>  projects/suj/8/usr.bin/whois/   (props changed)
>  projects/suj/8/usr.sbin/   (props changed)
>  projects/suj/8/usr.sbin/Makefile   (props changed)
>  projects/suj/8/usr.sbin/acpi/   (props changed)
>  projects/suj/8/usr.sbin/arp/   (props changed)
>  projects/suj/8/usr.sbin/bsnmpd/   (props changed)
>  projects/suj/8/usr.sbin/burncd/   (props changed)
>  projects/suj/8/usr.sbin/cdcontrol/   (props changed)
>  projects/suj/8/usr.sbin/crashinfo/   (props changed)
>  projects/suj/8/usr.sbin/cron/   (props changed)
>  projects/suj/8/usr.sbin/diskinfo/   (props changed)
>  projects/suj/8/usr.sbin/dumpcis/cardinfo.h   (props changed)
>  projects/suj/8/usr.sbin/dumpcis/cis.h   (props changed)
>  projects/suj/8/usr.sbin/faithd/   (props changed)
>  projects/suj/8/usr.sbin/freebsd-update/   (props changed)
>  projects/suj/8/usr.sbin/inetd/   (props changed)
>  projects/suj/8/usr.sbin/iostat/   (props changed)
>  projects/suj/8/usr.sbin/jail/   (props changed)
>  projects/suj/8/usr.sbin/jls/   (props changed)
>  projects/suj/8/usr.sbin/lpr/   (props changed)
>  projects/suj/8/usr.sbin/makefs/ffs/ffs_subr.c   (props changed)
>  projects/suj/8/usr.sbin/makefs/ffs/ufs_bswap.h   (props changed)
>  projects/suj/8/usr.sbin/makefs/getid.c   (props changed)
>  projects/suj/8/usr.sbin/mergemaster/   (props changed)
>  projects/suj/8/usr.sbin/mfiutil/mfiutil.8   (props changed)
>  projects/suj/8/usr.sbin/ndp/   (props changed)
>  projects/suj/8/usr.sbin/ntp/   (props changed)
>  projects/suj/8/usr.sbin/powerd/   (props changed)
>  projects/suj/8/usr.sbin/ppp/   (props changed)
>  projects/suj/8/usr.sbin/pstat/   (props changed)
>  projects/suj/8/usr.sbin/rtsold/   (props changed)
>  projects/suj/8/usr.sbin/service/   (props changed)
>  projects/suj/8/usr.sbin/sysinstall/   (props changed)
>  projects/suj/8/usr.sbin/syslogd/   (props changed)
>  projects/suj/8/usr.sbin/traceroute/   (props changed)
>  projects/suj/8/usr.sbin/traceroute6/   (props changed)
>  projects/suj/8/usr.sbin/usbconfig/   (props changed)
>  projects/suj/8/usr.sbin/wpa/   (props changed)
>  projects/suj/8/usr.sbin/ypserv/   (props changed)
>  projects/suj/8/usr.sbin/zic/   (props changed)
>
> Modified: projects/suj/8/lib/libufs/Makefile
> ==============================================================================
> --- projects/suj/8/lib/libufs/Makefile	Wed Jan 20 09:48:46 2010	(r202687)
> +++ projects/suj/8/lib/libufs/Makefile	Wed Jan 20 09:49:53 2010	(r202688)
> @@ -3,7 +3,7 @@
> LIB=	ufs
> SHLIBDIR?= /lib
>
> -SRCS=	block.c cgroup.c inode.c sblock.c type.c
> +SRCS=	block.c cgroup.c inode.c sblock.c type.c ffs_subr.c ffs_tables.c
> INCS=	libufs.h
>
> MAN=	bread.3 cgread.3 libufs.3 sbread.3 ufs_disk_close.3
> @@ -18,6 +18,9 @@ MLINKS+= ufs_disk_close.3 ufs_disk_write
>
> WARNS?=	2
>
> +.PATH:  ${.CURDIR}/../../sys/ufs/ffs
> +
> +DEBUG_FLAGS = -g
> CFLAGS+= -D_LIBUFS
> .if defined(LIBUFS_DEBUG)
> CFLAGS+= -D_LIBUFS_DEBUGGING
>
> Modified: projects/suj/8/lib/libufs/cgroup.c
> ==============================================================================
> --- projects/suj/8/lib/libufs/cgroup.c	Wed Jan 20 09:48:46 2010	(r202687)
> +++ projects/suj/8/lib/libufs/cgroup.c	Wed Jan 20 09:49:53 2010	(r202688)
> @@ -40,11 +40,82 @@ __FBSDID("$FreeBSD$");
> #include <errno.h>
> #include <fcntl.h>
> #include <stdio.h>
> +#include <stdlib.h>
> #include <string.h>
> #include <unistd.h>
>
> #include <libufs.h>
>
> +ufs2_daddr_t
> +cgballoc(struct uufsd *disk)
> +{
> +	u_int8_t *blksfree;
> +	struct cg *cgp;
> +	struct fs *fs;
> +	long bno;
> +
> +	fs = &disk->d_fs;
> +	cgp = &disk->d_cg;
> +	blksfree = cg_blksfree(cgp);
> +	for (bno = 0; bno < fs->fs_fpg / fs->fs_frag; bno++)
> +		if (ffs_isblock(fs, blksfree, bno))
> +			goto gotit;
> +	return (0);
> +gotit:
> +	fs->fs_cs(fs, cgp->cg_cgx).cs_nbfree--;
> +	ffs_clrblock(fs, blksfree, (long)bno);
> +	ffs_clusteracct(fs, cgp, bno, -1);
> +	cgp->cg_cs.cs_nbfree--;
> +	fs->fs_cstotal.cs_nbfree--;
> +	fs->fs_fmod = 1;
> +	return (cgbase(fs, cgp->cg_cgx) + blkstofrags(fs, bno));
> +}
> +
> +ino_t
> +cgialloc(struct uufsd *disk)
> +{
> +	struct ufs2_dinode *dp2;
> +	u_int8_t *inosused;
> +	struct cg *cgp;
> +	struct fs *fs;
> +	ino_t ino;
> +	int i;
> +
> +	fs = &disk->d_fs;
> +	cgp = &disk->d_cg;
> +	inosused = cg_inosused(cgp);
> +	for (ino = 0; ino < fs->fs_ipg / NBBY; ino++)
> +		if (isclr(inosused, ino))
> +			goto gotit;
> +	return (0);
> +gotit:
> +	if (fs->fs_magic == FS_UFS2_MAGIC &&
> +	    ino + INOPB(fs) > cgp->cg_initediblk &&
> +	    cgp->cg_initediblk < cgp->cg_niblk) {
> +		char block[MAXBSIZE];
> +		bzero(block, (int)fs->fs_bsize);
> +		dp2 = (struct ufs2_dinode *)&block;
> +		for (i = 0; i < INOPB(fs); i++) {
> +			dp2->di_gen = arc4random() / 2 + 1;
> +			dp2++;
> +		}
> +		if (bwrite(disk, ino_to_fsba(fs,
> +		    cgp->cg_cgx * fs->fs_ipg + cgp->cg_initediblk),
> +		    block, fs->fs_bsize))
> +			return (0);
> +		cgp->cg_initediblk += INOPB(fs);
> +	}
> +
> +	setbit(inosused, ino);
> +	cgp->cg_irotor = ino;
> +	cgp->cg_cs.cs_nifree--;
> +	fs->fs_cstotal.cs_nifree--;
> +	fs->fs_cs(fs, cgp->cg_cgx).cs_nifree--;
> +	fs->fs_fmod = 1;
> +
> +	return (ino + (cgp->cg_cgx * fs->fs_ipg));
> +}
> +
> int
> cgread(struct uufsd *disk)
> {
> @@ -55,14 +126,12 @@ int
> cgread1(struct uufsd *disk, int c)
> {
> 	struct fs *fs;
> -	off_t ccg;
>
> 	fs = &disk->d_fs;
>
> 	if (c >= fs->fs_ncg) {
> 		return (0);
> 	}
> -	ccg = fsbtodb(fs, cgtod(fs, c)) * disk->d_bsize;
> 	if (bread(disk, fsbtodb(fs, cgtod(fs, c)), disk->d_cgunion.d_buf,
> 	    fs->fs_bsize) == -1) {
> 		ERROR(disk, "unable to read cylinder group");
> @@ -73,6 +142,12 @@ cgread1(struct uufsd *disk, int c)
> }
>
> int
> +cgwrite(struct uufsd *disk)
> +{
> +	return (cgwrite1(disk, disk->d_lcg));
> +}
> +
> +int
> cgwrite1(struct uufsd *disk, int c)
> {
> 	struct fs *fs;
>
> Modified: projects/suj/8/lib/libufs/inode.c
> ==============================================================================
> --- projects/suj/8/lib/libufs/inode.c	Wed Jan 20 09:48:46 2010	(r202687)
> +++ projects/suj/8/lib/libufs/inode.c	Wed Jan 20 09:49:53 2010	(r202688)
> @@ -93,3 +93,19 @@ gotit:	switch (disk->d_ufs) {
> 	ERROR(disk, "unknown UFS filesystem type");
> 	return (-1);
> }
> +
> +int
> +putino(struct uufsd *disk)
> +{
> +	struct fs *fs;
> +
> +	fs = &disk->d_fs;
> +	if (disk->d_inoblock == NULL) {
> +		ERROR(disk, "No inode block allocated");
> +		return (-1);
> +	}
> +	if (bwrite(disk, fsbtodb(fs, ino_to_fsba(&disk->d_fs, disk->d_inomin)),
> +	    disk->d_inoblock, disk->d_fs.fs_bsize) <= 0)
> +		return (-1);
> +	return (0);
> +}
>
> Modified: projects/suj/8/lib/libufs/libufs.h
> ==============================================================================
> --- projects/suj/8/lib/libufs/libufs.h	Wed Jan 20 09:48:46 2010	(r202687)
> +++ projects/suj/8/lib/libufs/libufs.h	Wed Jan 20 09:49:53 2010	(r202688)
> @@ -71,6 +71,7 @@ struct uufsd {
> 	int d_fd;		/* raw device file descriptor */
> 	long d_bsize;		/* device bsize */
> 	ufs2_daddr_t d_sblock;	/* superblock location */
> +	struct csum *d_sbcsum;	/* Superblock summary info */
> 	caddr_t d_inoblock;	/* inode block */
> 	ino_t d_inomin;		/* low inode */
> 	ino_t d_inomax;		/* high inode */
> @@ -109,14 +110,18 @@ int berase(struct uufsd *, ufs2_daddr_t,
> /*
>  * cgroup.c
>  */
> +ufs2_daddr_t cgballoc(struct uufsd *);
> +ino_t cgialloc(struct uufsd *);
> int cgread(struct uufsd *);
> int cgread1(struct uufsd *, int);
> +int cgwrite(struct uufsd *);
> int cgwrite1(struct uufsd *, int);
>
> /*
>  * inode.c
>  */
> int getino(struct uufsd *, void **, ino_t, int *);
> +int putino(struct uufsd *);
>
> /*
>  * sblock.c
> @@ -132,6 +137,16 @@ int ufs_disk_fillout(struct uufsd *, con
> int ufs_disk_fillout_blank(struct uufsd *, const char *);
> int ufs_disk_write(struct uufsd *);
>
> +/*
> + * ffs_subr.c
> + */
> +void	ffs_clrblock(struct fs *, u_char *, ufs1_daddr_t);
> +void	ffs_clusteracct(struct fs *, struct cg *, ufs1_daddr_t, int);
> +void	ffs_fragacct(struct fs *, int, int32_t [], int);
> +int	ffs_isblock(struct fs *, u_char *, ufs1_daddr_t);
> +int	ffs_isfreeblock(struct fs *, u_char *, ufs1_daddr_t);
> +void	ffs_setblock(struct fs *, u_char *, ufs1_daddr_t);
> +
> __END_DECLS
>
> #endif	/* __LIBUFS_H__ */
>
> Modified: projects/suj/8/lib/libufs/sblock.c
> ==============================================================================
> --- projects/suj/8/lib/libufs/sblock.c	Wed Jan 20 09:48:46 2010	(r202687)
> +++ projects/suj/8/lib/libufs/sblock.c	Wed Jan 20 09:49:53 2010	(r202688)
> @@ -40,6 +40,7 @@ __FBSDID("$FreeBSD$");
> #include <errno.h>
> #include <stdio.h>
> #include <string.h>
> +#include <stdlib.h>
> #include <unistd.h>
>
> #include <libufs.h>
> @@ -49,8 +50,11 @@ static int superblocks[] = SBLOCKSEARCH;
> int
> sbread(struct uufsd *disk)
> {
> +	uint8_t block[MAXBSIZE];
> 	struct fs *fs;
> 	int sb, superblock;
> +	int i, size, blks;
> +	uint8_t *space;
>
> 	ERROR(disk, NULL);
>
> @@ -86,6 +90,34 @@ sbread(struct uufsd *disk)
> 	}
> 	disk->d_bsize = fs->fs_fsize / fsbtodb(fs, 1);
> 	disk->d_sblock = superblock / disk->d_bsize;
> +	/*
> +	 * Read in the superblock summary information.
> +	 */
> +	size = fs->fs_cssize;
> +	blks = howmany(size, fs->fs_fsize);
> +	size += fs->fs_ncg * sizeof(int32_t);
> +	space = malloc(size);
> +	if (space == NULL) {
> +		ERROR(disk, "failed to allocate space for summary information");
> +		return (-1);
> +	}
> +	fs->fs_csp = (struct csum *)space;
> +	for (i = 0; i < blks; i += fs->fs_frag) {
> +		size = fs->fs_bsize;
> +		if (i + fs->fs_frag > blks)
> +			size = (blks - i) * fs->fs_fsize;
> +		if (bread(disk, fsbtodb(fs, fs->fs_csaddr + i), block, size)
> +		    == -1) {
> +			ERROR(disk, "Failed to read sb summary information");
> +			free(fs->fs_csp);
> +			return (-1);
> +		}
> +		bcopy(block, space, size);
> +		space += size;
> +	}
> +	fs->fs_maxcluster = (uint32_t *)space;
> +	disk->d_sbcsum = fs->fs_csp;
> +
> 	return (0);
> }
>
> @@ -93,7 +125,8 @@ int
> sbwrite(struct uufsd *disk, int all)
> {
> 	struct fs *fs;
> -	int i;
> +	int i, blks, size;
> +	uint8_t *space;
>
> 	ERROR(disk, NULL);
>
> @@ -107,6 +140,22 @@ sbwrite(struct uufsd *disk, int all)
> 		ERROR(disk, "failed to write superblock");
> 		return (-1);
> 	}
> +	/*
> +	 * Write superblock summary information.
> +	 */
> +	blks = howmany(fs->fs_cssize, fs->fs_fsize);
> +	space = (uint8_t *)disk->d_sbcsum;
> +	for (i = 0; i < blks; i += fs->fs_frag) {
> +		size = fs->fs_bsize;
> +		if (i + fs->fs_frag > blks)
> +			size = (blks - i) * fs->fs_fsize;
> +		if (bwrite(disk, fsbtodb(fs, fs->fs_csaddr + i), space, size)
> +		    == -1) {
> +			ERROR(disk, "Failed to write sb summary information");
> +			return (-1);
> +		}
> +		space += size;
> +	}
> 	if (all) {
> 		for (i = 0; i < fs->fs_ncg; i++)
> 			if (bwrite(disk, fsbtodb(fs, cgsblock(fs, i)),
>
> Modified: projects/suj/8/lib/libufs/type.c
> ==============================================================================
> --- projects/suj/8/lib/libufs/type.c	Wed Jan 20 09:48:46 2010	(r202687)
> +++ projects/suj/8/lib/libufs/type.c	Wed Jan 20 09:49:53 2010	(r202688)
> @@ -66,6 +66,10 @@ ufs_disk_close(struct uufsd *disk)
> 		free((char *)(uintptr_t)disk->d_name);
> 		disk->d_name = NULL;
> 	}
> +	if (disk->d_sbcsum != NULL) {
> +		free(disk->d_sbcsum);
> +		disk->d_sbcsum = NULL;
> +	}
> 	return (0);
> }
>
> @@ -156,6 +160,7 @@ again:	if ((ret = stat(name, &st)) < 0)
> 	disk->d_mine = 0;
> 	disk->d_ufs = 0;
> 	disk->d_error = NULL;
> +	disk->d_sbcsum = NULL;
>
> 	if (oname != name) {
> 		name = strdup(name);
>
> Modified: projects/suj/8/sbin/fsck_ffs/Makefile
> ==============================================================================
> --- projects/suj/8/sbin/fsck_ffs/Makefile	Wed Jan 20 09:48:46 2010	(r202687)
> +++ projects/suj/8/sbin/fsck_ffs/Makefile	Wed Jan 20 09:49:53 2010	(r202688)
> @@ -7,8 +7,7 @@ LINKS+=	${BINDIR}/fsck_ffs ${BINDIR}/fsc
> MAN=	fsck_ffs.8
> MLINKS=	fsck_ffs.8 fsck_ufs.8 fsck_ffs.8 fsck_4.2bsd.8
> SRCS=	dir.c ea.c fsutil.c inode.c main.c pass1.c pass1b.c pass2.c pass3.c \
> -	pass4.c pass5.c setup.c utilities.c ffs_subr.c ffs_tables.c gjournal.c \
> -	getmntopts.c
> +	pass4.c pass5.c setup.c suj.c utilities.c gjournal.c getmntopts.c
> DPADD=	${LIBUFS}
> LDADD=	-lufs
> WARNS?=	2
>
> Modified: projects/suj/8/sbin/fsck_ffs/fsck.h
> ==============================================================================
> --- projects/suj/8/sbin/fsck_ffs/fsck.h	Wed Jan 20 09:48:46 2010	(r202687)
> +++ projects/suj/8/sbin/fsck_ffs/fsck.h	Wed Jan 20 09:49:53 2010	(r202688)
> @@ -347,10 +347,6 @@ void		direrror(ino_t ino, const char *er
> int		dirscan(struct inodesc *);
> int		dofix(struct inodesc *, const char *msg);
> int		eascan(struct inodesc *, struct ufs2_dinode *dp);
> -void		ffs_clrblock(struct fs *, u_char *, ufs1_daddr_t);
> -void		ffs_fragacct(struct fs *, int, int32_t [], int);
> -int		ffs_isblock(struct fs *, u_char *, ufs1_daddr_t);
> -void		ffs_setblock(struct fs *, u_char *, ufs1_daddr_t);
> void		fileerror(ino_t cwd, ino_t ino, const char *errmesg);
> int		findino(struct inodesc *);
> int		findname(struct inodesc *);
> @@ -392,3 +388,4 @@ void		sblock_init(void);
> void		setinodebuf(ino_t);
> int		setup(char *dev);
> void		gjournal_check(const char *filesys);
> +void		suj_check(const char *filesys);
>
> Modified: projects/suj/8/sbin/fsck_ffs/gjournal.c
> ==============================================================================
> --- projects/suj/8/sbin/fsck_ffs/gjournal.c	Wed Jan 20 09:48:46 2010	(r202687)
> +++ projects/suj/8/sbin/fsck_ffs/gjournal.c	Wed Jan 20 09:49:53 2010	(r202688)
> @@ -96,27 +96,6 @@ struct ufs2_dinode ufs2_zino;
> static void putcgs(void);
>
> /*
> - * Write current block of inodes.
> - */
> -static int
> -putino(struct uufsd *disk, ino_t inode)
> -{
> -	caddr_t inoblock;
> -	struct fs *fs;
> -	ssize_t ret;
> -
> -	fs = &disk->d_fs;
> -	inoblock = disk->d_inoblock;
> -
> -	assert(inoblock != NULL);
> -	assert(inode >= disk->d_inomin && inode <= disk->d_inomax);
> -	ret = bwrite(disk, fsbtodb(fs, ino_to_fsba(fs, inode)), inoblock,
> -	    fs->fs_bsize);
> -
> -	return (ret == -1 ? -1 : 0);
> -}
> -
> -/*
>  * Return cylinder group from the cache or load it if it is not in the
>  * cache yet.
>  * Don't cache more than MAX_CACHED_CGS cylinder groups.
> @@ -242,13 +221,11 @@ cancelcgs(void)
> #endif
>
> /*
> - * Open the given provider, load statistics.
> + * Open the given provider, load superblock.
>  */
> static void
> -getdisk(void)
> +opendisk(void)
> {
> -	int i;
> -
> 	if (disk != NULL)
> 		return;
> 	disk = malloc(sizeof(*disk));
> @@ -259,24 +236,6 @@ getdisk(void)
> 		    disk->d_error);
> 	}
> 	fs = &disk->d_fs;
> -	fs->fs_csp = malloc((size_t)fs->fs_cssize);
> -	if (fs->fs_csp == NULL)
> -		err(1, "malloc(%zu)", (size_t)fs->fs_cssize);
> -	bzero(fs->fs_csp, (size_t)fs->fs_cssize);
> -	for (i = 0; i < fs->fs_cssize; i += fs->fs_bsize) {
> -		if (bread(disk, fsbtodb(fs, fs->fs_csaddr + numfrags(fs, i)),
> -		    (void *)(((char *)fs->fs_csp) + i),
> -		    (size_t)(fs->fs_cssize - i < fs->fs_bsize ? fs->fs_cssize - i : fs->fs_bsize)) == -1) {
> -			err(1, "bread: %s", disk->d_error);
> -		}
> -	}
> -	if (fs->fs_contigsumsize > 0) {
> -		fs->fs_maxcluster = malloc(fs->fs_ncg * sizeof(int32_t));
> -		if (fs->fs_maxcluster == NULL)
> -			err(1, "malloc(%zu)", fs->fs_ncg * sizeof(int32_t));
> -		for (i = 0; i < fs->fs_ncg; i++)
> -			fs->fs_maxcluster[i] = fs->fs_contigsumsize;
> -	}
> }
>
> /*
> @@ -286,11 +245,6 @@ static void
> closedisk(void)
> {
>
> -	free(fs->fs_csp);
> -	if (fs->fs_contigsumsize > 0) {
> -		free(fs->fs_maxcluster);
> -		fs->fs_maxcluster = NULL;
> -	}
> 	fs->fs_clean = 1;
> 	if (sbwrite(disk, 0) == -1)
> 		err(1, "sbwrite(%s)", devnam);
> @@ -301,227 +255,6 @@ closedisk(void)
> 	fs = NULL;
> }
>
> -/*
> - * Write the statistics back, call closedisk().
> - */
> -static void
> -putdisk(void)
> -{
> -	int i;
> -
> -	assert(disk != NULL && fs != NULL);
> -	for (i = 0; i < fs->fs_cssize; i += fs->fs_bsize) {
> -		if (bwrite(disk, fsbtodb(fs, fs->fs_csaddr + numfrags(fs, i)),
> -		    (void *)(((char *)fs->fs_csp) + i),
> -		    (size_t)(fs->fs_cssize - i < fs->fs_bsize ? fs->fs_cssize - i : fs->fs_bsize)) == -1) {
> -			err(1, "bwrite: %s", disk->d_error);
> -		}
> -	}
> -	closedisk();
> -}
> -
> -#if 0
> -/*
> - * Free memory, close the disk, but don't write anything back.
> - */
> -static void
> -canceldisk(void)
> -{
> -	int i;
> -
> -	assert(disk != NULL && fs != NULL);
> -	free(fs->fs_csp);
> -	if (fs->fs_contigsumsize > 0)
> -		free(fs->fs_maxcluster);
> -	if (ufs_disk_close(disk) == -1)
> -		err(1, "ufs_disk_close(%s)", devnam);
> -	free(disk);
> -	disk = NULL;
> -	fs = NULL;
> -}
> -#endif
> -
> -static int
> -isblock(unsigned char *cp, ufs1_daddr_t h)
> -{
> -	unsigned char mask;
> -
> -	switch ((int)fs->fs_frag) {
> -	case 8:
> -		return (cp[h] == 0xff);
> -	case 4:
> -		mask = 0x0f << ((h & 0x1) << 2);
> -		return ((cp[h >> 1] & mask) == mask);
> -	case 2:
> -		mask = 0x03 << ((h & 0x3) << 1);
> -		return ((cp[h >> 2] & mask) == mask);
> -	case 1:
> -		mask = 0x01 << (h & 0x7);
> -		return ((cp[h >> 3] & mask) == mask);
> -	default:
> -		assert(!"isblock: invalid number of fragments");
> -	}
> -	return (0);
> -}
> -
> -/*
> - * put a block into the map
> - */
> -static void
> -setblock(unsigned char *cp, ufs1_daddr_t h)
> -{
> -
> -	switch ((int)fs->fs_frag) {
> -	case 8:
> -		cp[h] = 0xff;
> -		return;
> -	case 4:
> -		cp[h >> 1] |= (0x0f << ((h & 0x1) << 2));
> -		return;
> -	case 2:
> -		cp[h >> 2] |= (0x03 << ((h & 0x3) << 1));
> -		return;
> -	case 1:
> -		cp[h >> 3] |= (0x01 << (h & 0x7));
> -		return;
> -	default:
> -		assert(!"setblock: invalid number of fragments");
> -	}
> -}
> -
> -/*
> - * check if a block is free
> - */
> -static int
> -isfreeblock(u_char *cp, ufs1_daddr_t h)
> -{
> -
> -	switch ((int)fs->fs_frag) {
> -	case 8:
> -		return (cp[h] == 0);
> -	case 4:
> -		return ((cp[h >> 1] & (0x0f << ((h & 0x1) << 2))) == 0);
> -	case 2:
> -		return ((cp[h >> 2] & (0x03 << ((h & 0x3) << 1))) == 0);
> -	case 1:
> -		return ((cp[h >> 3] & (0x01 << (h & 0x7))) == 0);
> -	default:
> -		assert(!"isfreeblock: invalid number of fragments");
> -	}
> -	return (0);
> -}
> -
> -/*
> - * Update the frsum fields to reflect addition or deletion
> - * of some frags.
> - */
> -void
> -fragacct(int fragmap, int32_t fraglist[], int cnt)
> -{
> -	int inblk;
> -	int field, subfield;
> -	int siz, pos;
> -
> -	inblk = (int)(fragtbl[fs->fs_frag][fragmap]) << 1;
> -	fragmap <<= 1;
> -	for (siz = 1; siz < fs->fs_frag; siz++) {
> -		if ((inblk & (1 << (siz + (fs->fs_frag % NBBY)))) == 0)
> -			continue;
> -		field = around[siz];
> -		subfield = inside[siz];
> -		for (pos = siz; pos <= fs->fs_frag; pos++) {
> -			if ((fragmap & field) == subfield) {
> -				fraglist[siz] += cnt;
> -				pos += siz;
> -				field <<= siz;
> -				subfield <<= siz;
> -			}
> -			field <<= 1;
> -			subfield <<= 1;
> -		}
> -	}
> -}
> -
> -static void
> -clusteracct(struct cg *cgp, ufs1_daddr_t blkno)
> -{
> -	int32_t *sump;
> -	int32_t *lp;
> -	u_char *freemapp, *mapp;
> -	int i, start, end, forw, back, map, bit;
> -
> -	if (fs->fs_contigsumsize <= 0)
> -		return;
> -	freemapp = cg_clustersfree(cgp);
> -	sump = cg_clustersum(cgp);
> -	/*
> -	 * Clear the actual block.
> -	 */
> -	setbit(freemapp, blkno);
> -	/*
> -	 * Find the size of the cluster going forward.
> -	 */
> -	start = blkno + 1;
> -	end = start + fs->fs_contigsumsize;
> -	if (end >= cgp->cg_nclusterblks)
> -		end = cgp->cg_nclusterblks;
> -	mapp = &freemapp[start / NBBY];
> -	map = *mapp++;
> -	bit = 1 << (start % NBBY);
> -	for (i = start; i < end; i++) {
> -		if ((map & bit) == 0)
> -			break;
> -		if ((i & (NBBY - 1)) != (NBBY - 1)) {
> -			bit <<= 1;
> -		} else {
> -			map = *mapp++;
> -			bit = 1;
> -		}
> -	}
> -	forw = i - start;
> -	/*
> -	 * Find the size of the cluster going backward.
> -	 */
> -	start = blkno - 1;
> -	end = start - fs->fs_contigsumsize;
> -	if (end < 0)
> -		end = -1;
> -	mapp = &freemapp[start / NBBY];
> -	map = *mapp--;
> -	bit = 1 << (start % NBBY);
> -	for (i = start; i > end; i--) {
> -		if ((map & bit) == 0)
> -			break;
> -		if ((i & (NBBY - 1)) != 0) {
> -			bit >>= 1;
> -		} else {
> -			map = *mapp--;
> -			bit = 1 << (NBBY - 1);
> -		}
> -	}
> -	back = start - i;
> -	/*
> -	 * Account for old cluster and the possibly new forward and
> -	 * back clusters.
> -	 */
> -	i = back + forw + 1;
> -	if (i > fs->fs_contigsumsize)
> -		i = fs->fs_contigsumsize;
> -	sump[i]++;
> -	if (back > 0)
> -		sump[back]--;
> -	if (forw > 0)
> -		sump[forw]--;
> -	/*
> -	 * Update cluster summary information.
> -	 */
> -	lp = &sump[fs->fs_contigsumsize];
> -	for (i = fs->fs_contigsumsize; i > 0; i--)
> -		if (*lp-- > 0)
> -			break;
> -	fs->fs_maxcluster[cgp->cg_cgx] = i;
> -}
> -
> static void
> blkfree(ufs2_daddr_t bno, long size)
> {
> @@ -539,10 +272,10 @@ blkfree(ufs2_daddr_t bno, long size)
> 	blksfree = cg_blksfree(cgp);
> 	if (size == fs->fs_bsize) {
> 		fragno = fragstoblks(fs, cgbno);
> -		if (!isfreeblock(blksfree, fragno))
> +		if (!ffs_isfreeblock(fs, blksfree, fragno))
> 			assert(!"blkfree: freeing free block");
> -		setblock(blksfree, fragno);
> -		clusteracct(cgp, fragno);
> +		ffs_setblock(fs, blksfree, fragno);
> +		ffs_clusteracct(fs, cgp, fragno, 1);
> 		cgp->cg_cs.cs_nbfree++;
> 		fs->fs_cstotal.cs_nbfree++;
> 		fs->fs_cs(fs, cg).cs_nbfree++;
> @@ -552,7 +285,7 @@ blkfree(ufs2_daddr_t bno, long size)
> 		 * decrement the counts associated with the old frags
> 		 */
> 		blk = blkmap(fs, blksfree, bbase);
> -		fragacct(blk, cgp->cg_frsum, -1);
> +		ffs_fragacct(fs, blk, cgp->cg_frsum, -1);
> 		/*
> 		 * deallocate the fragment
> 		 */
> @@ -569,16 +302,16 @@ blkfree(ufs2_daddr_t bno, long size)
> 		 * add back in counts associated with the new frags
> 		 */
> 		blk = blkmap(fs, blksfree, bbase);
> -		fragacct(blk, cgp->cg_frsum, 1);
> +		ffs_fragacct(fs, blk, cgp->cg_frsum, 1);
> 		/*
> 		 * if a complete block has been reassembled, account for it
> 		 */
> 		fragno = fragstoblks(fs, bbase);
> -		if (isblock(blksfree, fragno)) {
> +		if (ffs_isblock(fs, blksfree, fragno)) {
> 			cgp->cg_cs.cs_nffree -= fs->fs_frag;
> 			fs->fs_cstotal.cs_nffree -= fs->fs_frag;
> 			fs->fs_cs(fs, cg).cs_nffree -= fs->fs_frag;
> -			clusteracct(cgp, fragno);
> +			ffs_clusteracct(fs, cgp, fragno, 1);
> 			cgp->cg_cs.cs_nbfree++;
> 			fs->fs_cstotal.cs_nbfree++;
> 			fs->fs_cs(fs, cg).cs_nbfree++;
> @@ -599,7 +332,7 @@ freeindir(ufs2_daddr_t blk, int level)
> 	if (bread(disk, fsbtodb(fs, blk), (void *)&sblks, (size_t)fs->fs_bsize) == -1)
> 		err(1, "bread: %s", disk->d_error);
> 	blks = (ufs2_daddr_t *)&sblks;
> -	for (i = 0; i < howmany(fs->fs_bsize, sizeof(ufs2_daddr_t)); i++) {
> +	for (i = 0; i < NINDIR(fs); i++) {
> 		if (blks[i] == 0)
> 			break;
> 		if (level == 0)
> @@ -671,7 +404,7 @@ gjournal_check(const char *filesys)
> 	int cg, mode;
>
> 	devnam = filesys;
> -	getdisk();
> +	opendisk();
> 	/* Are there any unreferenced inodes in this file system? */
> 	if (fs->fs_unrefs == 0) {
> 		//printf("No unreferenced inodes.\n");
> @@ -747,7 +480,7 @@ gjournal_check(const char *filesys)
> 			/* Zero-fill the inode. */
> 			*dino = ufs2_zino;
> 			/* Write the inode back. */
> -			if (putino(disk, ino) == -1)
> +			if (putino(disk) == -1)
> 				err(1, "putino(cg=%d ino=%d)", cg, ino);
> 			if (cgp->cg_unrefs == 0) {
> 				//printf("No more unreferenced inodes in cg=%d.\n", cg);
> @@ -772,5 +505,5 @@ gjournal_check(const char *filesys)
> 	/* Write back modified cylinder groups. */
> 	putcgs();
> 	/* Write back updated statistics and super-block. */
> -	putdisk();
> +	closedisk();
> }
>
> Modified: projects/suj/8/sbin/fsck_ffs/main.c
> ==============================================================================
> --- projects/suj/8/sbin/fsck_ffs/main.c	Wed Jan 20 09:48:46 2010	(r202687)
> +++ projects/suj/8/sbin/fsck_ffs/main.c	Wed Jan 20 09:49:53 2010	(r202688)
> @@ -256,7 +256,7 @@ checkfilesys(char *filesys)
> 	}
> 	if (ckclean && skipclean) {
> 		/*
> -		 * If file system is gjournaled, check it here.
> +		 * If file system is gjournaled or su+j, check it here.
> 		 */
> 		if ((fsreadfd = open(filesys, O_RDONLY)) < 0 || readsb(0) == 0)
> 			exit(3);	/* Cannot read superblock */
> @@ -278,6 +278,18 @@ checkfilesys(char *filesys)
> 				    "CANNOT RUN FAST FSCK\n");
> 			}
> 		}
> +#if 0
> +		if ((sblock.fs_flags & FS_SUJ) != 0) {
> +			if (sblock.fs_clean == 1) {
> +				pwarn("FILE SYSTEM CLEAN; SKIPPING CHECKS\n");
> +				exit(0);
> +			}
> +			suj_check(filesys);
> +			if (chkdoreload(mntp) == 0)
> +				exit(0);
> +			exit(4);
> +		}
> +#endif
> 	}
> 	/*
> 	 * If we are to do a background check:
> @@ -299,7 +311,7 @@ checkfilesys(char *filesys)
> 			pfatal("MOUNTED READ-ONLY, CANNOT RUN IN BACKGROUND\n");
> 		} else if ((fsreadfd = open(filesys, O_RDONLY)) >= 0) {
> 			if (readsb(0) != 0) {
> -				if (sblock.fs_flags & FS_NEEDSFSCK) {
> +				if (sblock.fs_flags & (FS_NEEDSFSCK | FS_SUJ)) {
> 					bkgrdflag = 0;
> 					pfatal("UNEXPECTED INCONSISTENCY, %s\n",
> 					    "CANNOT RUN IN BACKGROUND\n");
> @@ -478,6 +490,7 @@ checkfilesys(char *filesys)
> 	inocleanup();
> 	if (fsmodified) {
> 		sblock.fs_time = time(NULL);
> +		sblock.fs_mtime = time(NULL);
> 		sbdirty();
> 	}
> 	if (cvtlevel && sblk.b_dirty) {
>
> Modified: projects/suj/8/sbin/fsck_ffs/pass4.c
> ==============================================================================
> --- projects/suj/8/sbin/fsck_ffs/pass4.c	Wed Jan 20 09:48:46 2010	(r202687)
> +++ projects/suj/8/sbin/fsck_ffs/pass4.c	Wed Jan 20 09:49:53 2010	(r202688)
> @@ -72,6 +72,9 @@ pass4(void)
> 		for (i = 0; i < inostathead[cg].il_numalloced; i++, inumber++) {
> 			if (inumber < ROOTINO)
> 				continue;
> +			if (sblock.fs_flags & FS_SUJ &&
> +			    inumber == sblock.fs_sujournal)
> +				continue;
> 			idesc.id_number = inumber;
> 			switch (inoinfo(inumber)->ino_state) {
>
>
> Modified: projects/suj/8/sbin/fsck_ffs/pass5.c
> ==============================================================================
> --- projects/suj/8/sbin/fsck_ffs/pass5.c	Wed Jan 20 09:48:46 2010	(r202687)
> +++ projects/suj/8/sbin/fsck_ffs/pass5.c	Wed Jan 20 09:49:53 2010	(r202688)
> @@ -45,6 +45,7 @@ __FBSDID("$FreeBSD$");
> #include <inttypes.h>
> #include <limits.h>
> #include <string.h>
> +#include <libufs.h>
>
> #include "fsck.h"
>
>
> Copied: projects/suj/8/sbin/fsck_ffs/suj.c (from r202685, projects/suj/head/sbin/fsck_ffs/suj.c)
> ==============================================================================
> --- /dev/null	00:00:00 1970	(empty, because file is newly added)
> +++ projects/suj/8/sbin/fsck_ffs/suj.c	Wed Jan 20 09:49:53 2010	(r202688, copy of r202685, projects/suj/head/sbin/fsck_ffs/suj.c)
> @@ -0,0 +1,2065 @@
> +/*-
> + * Copyright (c) 2009 Jeffrey W. Roberson <jeff@FreeBSD.org>
> + * All rights reserved.
> + *
> + * Redistribution and use in source and binary forms, with or without
> + * modification, are permitted provided that the following conditions
> + * are met:
> + * 1. Redistributions of source code must retain the above copyright
> + *    notice, this list of conditions and the following disclaimer.
> + * 2. Redistributions in binary form must reproduce the above copyright
> + *    notice, this list of conditions and the following disclaimer in the
> + *    documentation and/or other materials provided with the distribution.
> + *
> + * THIS SOFTWARE IS PROVIDED BY THE AUTHORS AND CONTRIBUTORS ``AS IS'' AND
> + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
> + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
> + * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE
> + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
> + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
> + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
> + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
> + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
> + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
> + * SUCH DAMAGE.
> + */
> +
> +#include <sys/cdefs.h>
> +__FBSDID("$FreeBSD$");
> +
> +#include <sys/param.h>
> +#include <sys/disklabel.h>
> +#include <sys/mount.h>
> +#include <sys/stat.h>
> +
> +#include <ufs/ufs/ufsmount.h>
> +#include <ufs/ufs/dinode.h>
> +#include <ufs/ufs/dir.h>
> +#include <ufs/ffs/fs.h>
> +
> +#include <stdio.h>
> +#include <stdlib.h>
> +#include <stdint.h>
> +#include <libufs.h>
> +#include <strings.h>
> +#include <err.h>
> +#include <assert.h>
> +
> +#include "fsck.h"
> +
> +static void	ino_decr(ino_t);
> +
> +#define	SUJ_HASHSIZE	128
> +#define	SUJ_HASHMASK	(SUJ_HASHSIZE - 1)
> +#define	SUJ_HASH(x)	((x * 2654435761) & SUJ_HASHMASK)
> +
> +struct suj_seg {
> +	TAILQ_ENTRY(suj_seg) ss_next;
> +	struct jsegrec	ss_rec;
> +	uint8_t		*ss_blk;
> +};
> +
> +struct suj_rec {
> +	TAILQ_ENTRY(suj_rec) sr_next;
> +	union jrec	*sr_rec;
> +};
> +TAILQ_HEAD(srechd, suj_rec);
> +
> +struct suj_ino {
> +	LIST_ENTRY(suj_ino)	si_next;
> +	struct srechd		si_recs;
> +	struct srechd		si_movs;
> +	ino_t			si_ino;
> +	int			si_nlinkadj;
> +	int			si_skipparent;
> +	int			si_linkadj;
> +	int			si_hasrecs;
> +	int			si_blkadj;
> +};
> +LIST_HEAD(inohd, suj_ino);
> +
> +struct suj_blk {
> +	LIST_ENTRY(suj_blk)	sb_next;
> +	struct srechd		sb_recs;
> +	ufs2_daddr_t		sb_blk;
> +};
> +LIST_HEAD(blkhd, suj_blk);
> +
> +struct data_blk {
> +	LIST_ENTRY(data_blk)	db_next;
> +	uint8_t			*db_buf;
> +	ufs2_daddr_t		db_blk;
> +	int			db_size;
> +};
> +
> +struct ino_blk {
> +	LIST_ENTRY(ino_blk)	ib_next;
> +	uint8_t			*ib_buf;
> +	int			ib_dirty;
> +	ufs2_daddr_t		ib_blk;
> +};
> +LIST_HEAD(iblkhd, ino_blk);
> +
> +struct suj_cg {
> +	LIST_ENTRY(suj_cg)	sc_next;
> +	struct blkhd		sc_blkhash[SUJ_HASHSIZE];
> +	struct inohd		sc_inohash[SUJ_HASHSIZE];
> +	struct iblkhd		sc_iblkhash[SUJ_HASHSIZE];
> +	struct ino_blk		*sc_lastiblk;
> +	uint8_t			*sc_cgbuf;
> +	struct cg		*sc_cgp;
> +	int			sc_dirty;
> +	int			sc_cgx;
> +};
> +
> +LIST_HEAD(cghd, suj_cg) cghash[SUJ_HASHSIZE];
> +LIST_HEAD(dblkhd, data_blk) dbhash[SUJ_HASHSIZE];
> +
> +TAILQ_HEAD(seghd, suj_seg) allsegs;
> +uint64_t oldseq;
> +static struct uufsd *disk = NULL;
> +static struct fs *fs = NULL;
> +
> +/*
> + * Summary statistics.
> + */
> +uint64_t freefrags;
> +uint64_t freeblocks;
> +uint64_t freeinos;
> +uint64_t freedir;
> +uint64_t jbytes;
> +uint64_t jrecs;
> +
> +typedef void (*ino_visitor)(ino_t, ufs_lbn_t, ufs2_daddr_t, int);
> +
> +static void *
> +errmalloc(size_t n)
> +{
> +	void *a;
> +
> +	a = malloc(n);
> +	if (a == NULL)
> +		errx(1, "malloc(%zu)", n);
> +	return (a);
> +}
> +
> +/*
> + * Open the given provider, load superblock.
> + */
> +static void
> +opendisk(const char *devnam)
> +{
> +	if (disk != NULL)
> +		return;
> +	disk = malloc(sizeof(*disk));
> +	if (disk == NULL)
> +		errx(1, "malloc(%zu)", sizeof(*disk));
> +	if (ufs_disk_fillout(disk, devnam) == -1) {
> +		err(1, "ufs_disk_fillout(%s) failed: %s", devnam,
> +		    disk->d_error);
> +	}
> +	fs = &disk->d_fs;
> +	/*
> +	 * Setup a few things so reply() can work.
> +	 */
> +	bcopy(fs, &sblock, sizeof(sblock));
> +	fsreadfd = disk->d_fd;
> +	fswritefd = disk->d_fd;
> +}
> +
> +/*
> + * Mark file system as clean, write the super-block back, close the disk.
> + */
> +static void
> +closedisk(const char *devnam)
> +{
> +	struct csum *cgsum;
> +	int i;
> +
> +	/*
> +	 * Recompute the fs summary info from correct cs summaries.
> +	 */
> +	bzero(&fs->fs_cstotal, sizeof(struct csum_total));
> +	for (i = 0; i < fs->fs_ncg; i++) {
> +		cgsum = &fs->fs_cs(fs, i);
> +		fs->fs_cstotal.cs_nffree += cgsum->cs_nffree;
> +		fs->fs_cstotal.cs_nbfree += cgsum->cs_nbfree;
> +		fs->fs_cstotal.cs_nifree += cgsum->cs_nifree;
> +		fs->fs_cstotal.cs_ndir += cgsum->cs_ndir;
> +	}
> +	/* XXX Don't set clean for now, we don't trust the journal. */
> +	/* fs->fs_clean = 1; */
> +	fs->fs_time = time(NULL);
> +	fs->fs_mtime = time(NULL);
> +	if (sbwrite(disk, 0) == -1)
> +		err(1, "sbwrite(%s)", devnam);
> +	if (ufs_disk_close(disk) == -1)
> +		err(1, "ufs_disk_close(%s)", devnam);
>
> *** DIFF OUTPUT TRUNCATED AT 1000 LINES ***
>

From owner-svn-src-projects@FreeBSD.ORG  Wed Jan 20 13:03:49 2010
Return-Path: <owner-svn-src-projects@FreeBSD.ORG>
Delivered-To: svn-src-projects@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 85D9A1065672
	for <svn-src-projects@freebsd.org>;
	Wed, 20 Jan 2010 13:03:49 +0000 (UTC)
	(envelope-from max@love2party.net)
Received: from moutng.kundenserver.de (moutng.kundenserver.de
	[212.227.126.186])
	by mx1.freebsd.org (Postfix) with ESMTP id 17CBA8FC22
	for <svn-src-projects@freebsd.org>;
	Wed, 20 Jan 2010 13:03:49 +0000 (UTC)
Received: from vampire.homelinux.org (dslb-088-064-190-015.pools.arcor-ip.net
	[88.64.190.15])
	by mrelayeu.kundenserver.de (node=mreu1) with ESMTP (Nemesis)
	id 0MW7C9-1NMjBx021p-00XQxN; Wed, 20 Jan 2010 13:51:12 +0100
Received: (qmail 43737 invoked from network); 20 Jan 2010 12:51:11 -0000
Received: from f8x64.laiers.local (192.168.4.188)
	by ns1.laiers.local with SMTP; 20 Jan 2010 12:51:11 -0000
From: Max Laier <max@love2party.net>
Organization: FreeBSD
To: Jeff Roberson <jroberson@jroberson.net>
Date: Wed, 20 Jan 2010 13:51:09 +0100
User-Agent: KMail/1.12.4 (FreeBSD/8.0-RELEASE-p2; KDE/4.3.4; amd64; ; )
References: <201001200949.o0K9nsgX076781@svn.freebsd.org>
	<alpine.BSF.2.00.1001192357070.1027@desktop>
In-Reply-To: <alpine.BSF.2.00.1001192357070.1027@desktop>
MIME-Version: 1.0
Content-Type: Text/Plain;
  charset="iso-8859-1"
Content-Transfer-Encoding: 7bit
Message-Id: <201001201351.10007.max@love2party.net>
X-Provags-ID: V01U2FsdGVkX19Oqyv6Xl/sHbBRCDz/QKgkxwpKJH2dammHOY7
	Ut5AJ4z9cgqWX/oGh1DOEtf3KFxx9BhgY8a42bHjOP+pfvU2U9
	CCScHdMHFtrmdItce7y4Q==
Cc: svn-src-projects@freebsd.org, Jeff Roberson <jeff@freebsd.org>,
	src-committers@freebsd.org
Subject: Re: svn commit: r202688 - in projects/suj/8: . contrib/top
	lib/libufs lib/libusb sbin/fsck_ffs sbin/fsdb sbin/mount
	sbin/tunefs share/man/man4 sys/kern sys/sys sys/ufs/ffs
	sys/ufs/ufs tools/regression/...
X-BeenThere: svn-src-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the src &quot; projects&quot;
	tree" <svn-src-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
	<mailto:svn-src-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-projects>
List-Post: <mailto:svn-src-projects@freebsd.org>
List-Help: <mailto:svn-src-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
	<mailto:svn-src-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Wed, 20 Jan 2010 13:03:49 -0000

On Wednesday 20 January 2010 10:57:48 Jeff Roberson wrote:
> On Wed, 20 Jan 2010, Jeff Roberson wrote:
> > Author: jeff
> > Date: Wed Jan 20 09:49:53 2010
> > New Revision: 202688
> > URL: http://svn.freebsd.org/changeset/base/202688
> >
> > Log:
> >   - Merge SUJ from the private head branch to the private 8 branch.
> 
> Can someone tell me what's up with all the property changes?  Is it
> because I didn't do one merge for each top level directory I care about?

When in doubt, just believe that subversion DTRT.  It does here.  The 
mergeinfo changes you are seeing are just to update already existing mergeinfo 
properties in your branched tree.  Since you merged at root, every place that 
has mergeinfo needs to be updated.

The copied mergeinfo is helpful, too.  This way you can check for merged and 
eligible revisions from head in you project branch.  E.g. to find out if there 
are missing patches to fsck_ffs:

cd $wcbase/projects/suj/8/sbin/fsck_ffs
svn mergeinfo --show-revs eligible $repo/head/sbin/fsck_ffs

now if you merge missing patches in your branch and later merge your branch to 
stable/8, this info will also be propagated.

--
  Max

From owner-svn-src-projects@FreeBSD.ORG  Wed Jan 20 22:18:57 2010
Return-Path: <owner-svn-src-projects@FreeBSD.ORG>
Delivered-To: svn-src-projects@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id C359F106566B;
	Wed, 20 Jan 2010 22:18:57 +0000 (UTC)
	(envelope-from jeff@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id B046E8FC16;
	Wed, 20 Jan 2010 22:18:57 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o0KMIvJW034209;
	Wed, 20 Jan 2010 22:18:57 GMT (envelope-from jeff@svn.freebsd.org)
Received: (from jeff@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id o0KMIv16034191;
	Wed, 20 Jan 2010 22:18:57 GMT (envelope-from jeff@svn.freebsd.org)
Message-Id: <201001202218.o0KMIv16034191@svn.freebsd.org>
From: Jeff Roberson <jeff@FreeBSD.org>
Date: Wed, 20 Jan 2010 22:18:57 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-projects@freebsd.org
X-SVN-Group: projects
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r202720 - in projects/suj/6: . etc games/fortune
	games/fortune/datfiles gnu/usr.bin/groff/tmac lib/libufs
	release/scripts sbin/fsck_ffs sbin/fsdb sbin/mount
	sbin/routed sbin/tunefs shar...
X-BeenThere: svn-src-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the src &quot; projects&quot;
	tree" <svn-src-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
	<mailto:svn-src-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-projects>
List-Post: <mailto:svn-src-projects@freebsd.org>
List-Help: <mailto:svn-src-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
	<mailto:svn-src-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Wed, 20 Jan 2010 22:18:57 -0000

Author: jeff
Date: Wed Jan 20 22:18:57 2010
New Revision: 202720
URL: http://svn.freebsd.org/changeset/base/202720

Log:
   - Merge suj from 7 to 6.

Added:
  projects/suj/6/sbin/fsck_ffs/suj.c
     - copied unchanged from r202690, projects/suj/7/sbin/fsck_ffs/suj.c
Modified:
  projects/suj/6/lib/libufs/Makefile
  projects/suj/6/lib/libufs/cgroup.c
  projects/suj/6/lib/libufs/inode.c
  projects/suj/6/lib/libufs/libufs.h
  projects/suj/6/lib/libufs/sblock.c
  projects/suj/6/lib/libufs/type.c
  projects/suj/6/sbin/fsck_ffs/Makefile
  projects/suj/6/sbin/fsck_ffs/fsck.h
  projects/suj/6/sbin/fsck_ffs/fsck_ffs.8
  projects/suj/6/sbin/fsck_ffs/fsutil.c
  projects/suj/6/sbin/fsck_ffs/inode.c
  projects/suj/6/sbin/fsck_ffs/main.c
  projects/suj/6/sbin/fsck_ffs/pass4.c
  projects/suj/6/sbin/fsck_ffs/pass5.c
  projects/suj/6/sbin/fsck_ffs/setup.c
  projects/suj/6/sbin/fsdb/fsdbutil.c
  projects/suj/6/sbin/mount/mount.c
  projects/suj/6/sbin/tunefs/tunefs.c
  projects/suj/6/sys/kern/vfs_bio.c
  projects/suj/6/sys/sys/buf.h
  projects/suj/6/sys/sys/mount.h
  projects/suj/6/sys/sys/queue.h
  projects/suj/6/sys/ufs/ffs/ffs_alloc.c
  projects/suj/6/sys/ufs/ffs/ffs_balloc.c
  projects/suj/6/sys/ufs/ffs/ffs_extern.h
  projects/suj/6/sys/ufs/ffs/ffs_inode.c
  projects/suj/6/sys/ufs/ffs/ffs_snapshot.c
  projects/suj/6/sys/ufs/ffs/ffs_softdep.c
  projects/suj/6/sys/ufs/ffs/ffs_subr.c
  projects/suj/6/sys/ufs/ffs/ffs_vfsops.c
  projects/suj/6/sys/ufs/ffs/ffs_vnops.c
  projects/suj/6/sys/ufs/ffs/fs.h
  projects/suj/6/sys/ufs/ffs/softdep.h
  projects/suj/6/sys/ufs/ufs/dinode.h
  projects/suj/6/sys/ufs/ufs/inode.h
  projects/suj/6/sys/ufs/ufs/ufs_dirhash.c
  projects/suj/6/sys/ufs/ufs/ufs_extern.h
  projects/suj/6/sys/ufs/ufs/ufs_lookup.c
  projects/suj/6/sys/ufs/ufs/ufs_vnops.c
  projects/suj/6/sys/ufs/ufs/ufsmount.h
Directory Properties:
  projects/suj/6/   (props changed)
  projects/suj/6/COPYRIGHT   (props changed)
  projects/suj/6/Makefile   (props changed)
  projects/suj/6/Makefile.inc1   (props changed)
  projects/suj/6/ObsoleteFiles.inc   (props changed)
  projects/suj/6/UPDATING   (props changed)
  projects/suj/6/bin/   (props changed)
  projects/suj/6/bin/chflags/   (props changed)
  projects/suj/6/bin/chio/   (props changed)
  projects/suj/6/bin/cp/   (props changed)
  projects/suj/6/bin/csh/   (props changed)
  projects/suj/6/bin/dd/   (props changed)
  projects/suj/6/bin/df/   (props changed)
  projects/suj/6/bin/ln/   (props changed)
  projects/suj/6/bin/pax/   (props changed)
  projects/suj/6/bin/ps/   (props changed)
  projects/suj/6/bin/rm/   (props changed)
  projects/suj/6/bin/sh/   (props changed)
  projects/suj/6/contrib/   (props changed)
  projects/suj/6/contrib/bind9/   (props changed)
  projects/suj/6/contrib/bsnmp/   (props changed)
  projects/suj/6/contrib/bzip2/   (props changed)
  projects/suj/6/contrib/cpio/   (props changed)
  projects/suj/6/contrib/csup/   (props changed)
  projects/suj/6/contrib/expat/   (props changed)
  projects/suj/6/contrib/file/   (props changed)
  projects/suj/6/contrib/gcc/   (props changed)
  projects/suj/6/contrib/gdb/   (props changed)
  projects/suj/6/contrib/gdtoa/   (props changed)
  projects/suj/6/contrib/groff/   (props changed)
  projects/suj/6/contrib/ipfilter/   (props changed)
  projects/suj/6/contrib/less/   (props changed)
  projects/suj/6/contrib/libpcap/   (props changed)
  projects/suj/6/contrib/ncurses/   (props changed)
  projects/suj/6/contrib/netcat/   (props changed)
  projects/suj/6/contrib/ntp/   (props changed)
  projects/suj/6/contrib/one-true-awk/   (props changed)
  projects/suj/6/contrib/openbsm/   (props changed)
  projects/suj/6/contrib/openpam/   (props changed)
  projects/suj/6/contrib/pf/   (props changed)
  projects/suj/6/contrib/sendmail/   (props changed)
  projects/suj/6/contrib/smbfs/   (props changed)
  projects/suj/6/contrib/tcpdump/   (props changed)
  projects/suj/6/contrib/tcsh/   (props changed)
  projects/suj/6/contrib/telnet/   (props changed)
  projects/suj/6/contrib/top/   (props changed)
  projects/suj/6/contrib/traceroute/   (props changed)
  projects/suj/6/crypto/openssh/   (props changed)
  projects/suj/6/etc/   (props changed)
  projects/suj/6/etc/Makefile   (props changed)
  projects/suj/6/etc/amd.map   (props changed)
  projects/suj/6/etc/apmd.conf   (props changed)
  projects/suj/6/etc/auth.conf   (props changed)
  projects/suj/6/etc/bluetooth/   (props changed)
  projects/suj/6/etc/crontab   (props changed)
  projects/suj/6/etc/csh.cshrc   (props changed)
  projects/suj/6/etc/csh.login   (props changed)
  projects/suj/6/etc/csh.logout   (props changed)
  projects/suj/6/etc/defaults/   (props changed)
  projects/suj/6/etc/devd.conf   (props changed)
  projects/suj/6/etc/devfs.conf   (props changed)
  projects/suj/6/etc/dhclient.conf   (props changed)
  projects/suj/6/etc/disktab   (props changed)
  projects/suj/6/etc/etc.alpha/   (props changed)
  projects/suj/6/etc/etc.amd64/   (props changed)
  projects/suj/6/etc/etc.arm/   (props changed)
  projects/suj/6/etc/etc.i386/   (props changed)
  projects/suj/6/etc/etc.ia64/   (props changed)
  projects/suj/6/etc/etc.powerpc/   (props changed)
  projects/suj/6/etc/etc.sparc64/   (props changed)
  projects/suj/6/etc/fbtab   (props changed)
  projects/suj/6/etc/freebsd-update.conf   (props changed)
  projects/suj/6/etc/ftpusers   (props changed)
  projects/suj/6/etc/gettytab   (props changed)
  projects/suj/6/etc/group   (props changed)
  projects/suj/6/etc/hosts   (props changed)
  projects/suj/6/etc/hosts.allow   (props changed)
  projects/suj/6/etc/hosts.equiv   (props changed)
  projects/suj/6/etc/hosts.lpd   (props changed)
  projects/suj/6/etc/inetd.conf   (props changed)
  projects/suj/6/etc/isdn/   (props changed)
  projects/suj/6/etc/login.access   (props changed)
  projects/suj/6/etc/login.conf   (props changed)
  projects/suj/6/etc/mac.conf   (props changed)
  projects/suj/6/etc/mail/   (props changed)
  projects/suj/6/etc/man.alias   (props changed)
  projects/suj/6/etc/master.passwd   (props changed)
  projects/suj/6/etc/minfree   (props changed)
  projects/suj/6/etc/motd   (props changed)
  projects/suj/6/etc/mtree/   (props changed)
  projects/suj/6/etc/namedb/   (props changed)
  projects/suj/6/etc/netconfig   (props changed)
  projects/suj/6/etc/netstart   (props changed)
  projects/suj/6/etc/network.subr   (props changed)
  projects/suj/6/etc/networks   (props changed)
  projects/suj/6/etc/newsyslog.conf   (props changed)
  projects/suj/6/etc/nls.alias   (props changed)
  projects/suj/6/etc/nsmb.conf   (props changed)
  projects/suj/6/etc/opieaccess   (props changed)
  projects/suj/6/etc/pam.d/   (props changed)
  projects/suj/6/etc/pccard_ether   (props changed)
  projects/suj/6/etc/periodic/   (props changed)
  projects/suj/6/etc/pf.conf   (props changed)
  projects/suj/6/etc/pf.os   (props changed)
  projects/suj/6/etc/phones   (props changed)
  projects/suj/6/etc/portsnap.conf   (props changed)
  projects/suj/6/etc/ppp/   (props changed)
  projects/suj/6/etc/printcap   (props changed)
  projects/suj/6/etc/profile   (props changed)
  projects/suj/6/etc/protocols   (props changed)
  projects/suj/6/etc/rc   (props changed)
  projects/suj/6/etc/rc.bsdextended   (props changed)
  projects/suj/6/etc/rc.d/   (props changed)
  projects/suj/6/etc/rc.firewall   (props changed)
  projects/suj/6/etc/rc.firewall6   (props changed)
  projects/suj/6/etc/rc.initdiskless   (props changed)
  projects/suj/6/etc/rc.resume   (props changed)
  projects/suj/6/etc/rc.sendmail   (props changed)
  projects/suj/6/etc/rc.shutdown   (props changed)
  projects/suj/6/etc/rc.subr   (props changed)
  projects/suj/6/etc/rc.suspend   (props changed)
  projects/suj/6/etc/remote   (props changed)
  projects/suj/6/etc/root/   (props changed)
  projects/suj/6/etc/rpc   (props changed)
  projects/suj/6/etc/sendmail/   (props changed)
  projects/suj/6/etc/services   (props changed)
  projects/suj/6/etc/shells   (props changed)
  projects/suj/6/etc/snmpd.config   (props changed)
  projects/suj/6/etc/sysctl.conf   (props changed)
  projects/suj/6/etc/syslog.conf   (props changed)
  projects/suj/6/etc/termcap.small   (props changed)
  projects/suj/6/etc/usbd.conf   (props changed)
  projects/suj/6/games/factor/   (props changed)
  projects/suj/6/games/fortune/   (props changed)
  projects/suj/6/games/fortune/Makefile   (props changed)
  projects/suj/6/games/fortune/Makefile.inc   (props changed)
  projects/suj/6/games/fortune/Notes   (props changed)
  projects/suj/6/games/fortune/README   (props changed)
  projects/suj/6/games/fortune/datfiles/   (props changed)
  projects/suj/6/games/fortune/datfiles/freebsd-tips   (props changed)
  projects/suj/6/games/fortune/fortune/   (props changed)
  projects/suj/6/games/fortune/strfile/   (props changed)
  projects/suj/6/games/fortune/tools/   (props changed)
  projects/suj/6/games/fortune/unstr/   (props changed)
  projects/suj/6/gnu/   (props changed)
  projects/suj/6/gnu/usr.bin/cc/   (props changed)
  projects/suj/6/gnu/usr.bin/cvs/   (props changed)
  projects/suj/6/gnu/usr.bin/gdb/kgdb/   (props changed)
  projects/suj/6/gnu/usr.bin/grep/   (props changed)
  projects/suj/6/gnu/usr.bin/groff/   (props changed)
  projects/suj/6/gnu/usr.bin/groff/tmac/mdoc.local   (props changed)
  projects/suj/6/gnu/usr.bin/man/   (props changed)
  projects/suj/6/gnu/usr.bin/patch/   (props changed)
  projects/suj/6/gnu/usr.bin/sort/   (props changed)
  projects/suj/6/include/   (props changed)
  projects/suj/6/kerberos5/   (props changed)
  projects/suj/6/lib/   (props changed)
  projects/suj/6/lib/bind/   (props changed)
  projects/suj/6/lib/csu/   (props changed)
  projects/suj/6/lib/libarchive/   (props changed)
  projects/suj/6/lib/libbluetooth/   (props changed)
  projects/suj/6/lib/libc/   (props changed)
  projects/suj/6/lib/libc/stdtime/   (props changed)
  projects/suj/6/lib/libc_r/   (props changed)
  projects/suj/6/lib/libcam/   (props changed)
  projects/suj/6/lib/libdevinfo/   (props changed)
  projects/suj/6/lib/libdisk/   (props changed)
  projects/suj/6/lib/libexpat/   (props changed)
  projects/suj/6/lib/libfetch/   (props changed)
  projects/suj/6/lib/libftpio/   (props changed)
  projects/suj/6/lib/libgeom/   (props changed)
  projects/suj/6/lib/libkvm/   (props changed)
  projects/suj/6/lib/libmagic/   (props changed)
  projects/suj/6/lib/libmemstat/   (props changed)
  projects/suj/6/lib/libpam/   (props changed)
  projects/suj/6/lib/libpmc/   (props changed)
  projects/suj/6/lib/libradius/   (props changed)
  projects/suj/6/lib/libstand/   (props changed)
  projects/suj/6/lib/libtacplus/   (props changed)
  projects/suj/6/lib/libthr/   (props changed)
  projects/suj/6/lib/libthread_db/   (props changed)
  projects/suj/6/lib/libufs/   (props changed)
  projects/suj/6/lib/libutil/   (props changed)
  projects/suj/6/lib/msun/   (props changed)
  projects/suj/6/libexec/   (props changed)
  projects/suj/6/libexec/rpc.rquotad/   (props changed)
  projects/suj/6/libexec/rpc.rstatd/   (props changed)
  projects/suj/6/libexec/rtld-elf/   (props changed)
  projects/suj/6/release/   (props changed)
  projects/suj/6/release/doc/   (props changed)
  projects/suj/6/release/doc/en_US.ISO8859-1/hardware/   (props changed)
  projects/suj/6/release/scripts/src-install.sh   (props changed)
  projects/suj/6/rescue/   (props changed)
  projects/suj/6/sbin/   (props changed)
  projects/suj/6/sbin/atacontrol/   (props changed)
  projects/suj/6/sbin/bsdlabel/   (props changed)
  projects/suj/6/sbin/camcontrol/   (props changed)
  projects/suj/6/sbin/clri/   (props changed)
  projects/suj/6/sbin/devd/   (props changed)
  projects/suj/6/sbin/devfs/   (props changed)
  projects/suj/6/sbin/dhclient/   (props changed)
  projects/suj/6/sbin/dumpfs/   (props changed)
  projects/suj/6/sbin/fdisk/   (props changed)
  projects/suj/6/sbin/fdisk_pc98/   (props changed)
  projects/suj/6/sbin/fsck/   (props changed)
  projects/suj/6/sbin/fsck_ffs/   (props changed)
  projects/suj/6/sbin/fsck_msdosfs/   (props changed)
  projects/suj/6/sbin/geom/   (props changed)
  projects/suj/6/sbin/geom/class/label/   (props changed)
  projects/suj/6/sbin/geom/class/stripe/   (props changed)
  projects/suj/6/sbin/geom/misc/   (props changed)
  projects/suj/6/sbin/ifconfig/   (props changed)
  projects/suj/6/sbin/init/   (props changed)
  projects/suj/6/sbin/ipf/   (props changed)
  projects/suj/6/sbin/ipfw/   (props changed)
  projects/suj/6/sbin/md5/   (props changed)
  projects/suj/6/sbin/mdconfig/   (props changed)
  projects/suj/6/sbin/mksnap_ffs/   (props changed)
  projects/suj/6/sbin/mount/   (props changed)
  projects/suj/6/sbin/mount_cd9660/   (props changed)
  projects/suj/6/sbin/mount_msdosfs/   (props changed)
  projects/suj/6/sbin/mount_nfs/   (props changed)
  projects/suj/6/sbin/natd/   (props changed)
  projects/suj/6/sbin/newfs_msdos/   (props changed)
  projects/suj/6/sbin/ping6/   (props changed)
  projects/suj/6/sbin/restore/   (props changed)
  projects/suj/6/sbin/route/   (props changed)
  projects/suj/6/sbin/routed/main.c   (props changed)
  projects/suj/6/sbin/savecore/   (props changed)
  projects/suj/6/sbin/sconfig/   (props changed)
  projects/suj/6/sbin/shutdown/   (props changed)
  projects/suj/6/sbin/umount/   (props changed)
  projects/suj/6/secure/lib/libssh/   (props changed)
  projects/suj/6/secure/libexec/sftp-server/   (props changed)
  projects/suj/6/secure/usr.bin/bdes/   (props changed)
  projects/suj/6/secure/usr.bin/ssh/   (props changed)
  projects/suj/6/secure/usr.sbin/sshd/   (props changed)
  projects/suj/6/share/   (props changed)
  projects/suj/6/share/colldef/   (props changed)
  projects/suj/6/share/doc/bind9/   (props changed)
  projects/suj/6/share/examples/   (props changed)
  projects/suj/6/share/man/   (props changed)
  projects/suj/6/share/man/man3/   (props changed)
  projects/suj/6/share/man/man4/   (props changed)
  projects/suj/6/share/man/man5/   (props changed)
  projects/suj/6/share/man/man5/rc.conf.5   (props changed)
  projects/suj/6/share/man/man7/   (props changed)
  projects/suj/6/share/man/man7/ports.7   (props changed)
  projects/suj/6/share/man/man8/   (props changed)
  projects/suj/6/share/man/man9/   (props changed)
  projects/suj/6/share/misc/   (props changed)
  projects/suj/6/share/misc/iso639   (props changed)
  projects/suj/6/share/misc/pci_vendors   (props changed)
  projects/suj/6/share/mk/   (props changed)
  projects/suj/6/share/mklocale/   (props changed)
  projects/suj/6/share/monetdef/   (props changed)
  projects/suj/6/share/msgdef/   (props changed)
  projects/suj/6/share/numericdef/   (props changed)
  projects/suj/6/share/sendmail/   (props changed)
  projects/suj/6/share/syscons/   (props changed)
  projects/suj/6/share/syscons/keymaps/   (props changed)
  projects/suj/6/share/termcap/   (props changed)
  projects/suj/6/share/timedef/   (props changed)
  projects/suj/6/share/zoneinfo/   (props changed)
  projects/suj/6/sys/   (props changed)
  projects/suj/6/sys/contrib/dev/acpica/   (props changed)
  projects/suj/6/sys/contrib/pf/   (props changed)
  projects/suj/6/sys/dev/cxgb/   (props changed)
  projects/suj/6/tools/build/   (props changed)
  projects/suj/6/tools/regression/atm/   (props changed)
  projects/suj/6/tools/regression/file/   (props changed)
  projects/suj/6/tools/regression/file/flock/   (props changed)
  projects/suj/6/tools/regression/usr.bin/   (props changed)
  projects/suj/6/tools/regression/usr.bin/calendar/   (props changed)
  projects/suj/6/tools/regression/usr.bin/jot/   (props changed)
  projects/suj/6/tools/regression/usr.bin/tr/   (props changed)
  projects/suj/6/tools/sched/   (props changed)
  projects/suj/6/tools/tools/crypto/   (props changed)
  projects/suj/6/tools/tools/editing/   (props changed)
  projects/suj/6/tools/tools/nanobsd/   (props changed)
  projects/suj/6/tools/tools/nanobsd/FlashDevice.sub   (props changed)
  projects/suj/6/tools/tools/nanobsd/nanobsd.sh   (props changed)
  projects/suj/6/tools/tools/usb/   (props changed)
  projects/suj/6/usr.bin/   (props changed)
  projects/suj/6/usr.bin/awk/   (props changed)
  projects/suj/6/usr.bin/basename/   (props changed)
  projects/suj/6/usr.bin/bluetooth/rfcomm_sppd/   (props changed)
  projects/suj/6/usr.bin/calendar/   (props changed)
  projects/suj/6/usr.bin/calendar/calendars/   (props changed)
  projects/suj/6/usr.bin/calendar/calendars/calendar.freebsd   (props changed)
  projects/suj/6/usr.bin/catman/   (props changed)
  projects/suj/6/usr.bin/cksum/   (props changed)
  projects/suj/6/usr.bin/comm/   (props changed)
  projects/suj/6/usr.bin/csup/   (props changed)
  projects/suj/6/usr.bin/dirname/   (props changed)
  projects/suj/6/usr.bin/du/   (props changed)
  projects/suj/6/usr.bin/fetch/   (props changed)
  projects/suj/6/usr.bin/file/   (props changed)
  projects/suj/6/usr.bin/find/   (props changed)
  projects/suj/6/usr.bin/finger/   (props changed)
  projects/suj/6/usr.bin/fstat/   (props changed)
  projects/suj/6/usr.bin/gcore/   (props changed)
  projects/suj/6/usr.bin/gprof/   (props changed)
  projects/suj/6/usr.bin/gzip/   (props changed)
  projects/suj/6/usr.bin/id/   (props changed)
  projects/suj/6/usr.bin/ipcrm/   (props changed)
  projects/suj/6/usr.bin/ipcs/   (props changed)
  projects/suj/6/usr.bin/jot/   (props changed)
  projects/suj/6/usr.bin/kdump/   (props changed)
  projects/suj/6/usr.bin/ktrace/   (props changed)
  projects/suj/6/usr.bin/ldd/   (props changed)
  projects/suj/6/usr.bin/locale/   (props changed)
  projects/suj/6/usr.bin/locate/   (props changed)
  projects/suj/6/usr.bin/lockf/   (props changed)
  projects/suj/6/usr.bin/logger/   (props changed)
  projects/suj/6/usr.bin/look/   (props changed)
  projects/suj/6/usr.bin/make/   (props changed)
  projects/suj/6/usr.bin/ncal/   (props changed)
  projects/suj/6/usr.bin/netstat/   (props changed)
  projects/suj/6/usr.bin/newgrp/   (props changed)
  projects/suj/6/usr.bin/nsupdate/   (props changed)
  projects/suj/6/usr.bin/quota/   (props changed)
  projects/suj/6/usr.bin/rpcgen/   (props changed)
  projects/suj/6/usr.bin/sed/   (props changed)
  projects/suj/6/usr.bin/shar/   (props changed)
  projects/suj/6/usr.bin/sockstat/   (props changed)
  projects/suj/6/usr.bin/stat/   (props changed)
  projects/suj/6/usr.bin/su/   (props changed)
  projects/suj/6/usr.bin/systat/   (props changed)
  projects/suj/6/usr.bin/tail/   (props changed)
  projects/suj/6/usr.bin/tar/   (props changed)
  projects/suj/6/usr.bin/tftp/   (props changed)
  projects/suj/6/usr.bin/tip/   (props changed)
  projects/suj/6/usr.bin/top/   (props changed)
  projects/suj/6/usr.bin/truncate/   (props changed)
  projects/suj/6/usr.bin/truss/   (props changed)
  projects/suj/6/usr.bin/unifdef/   (props changed)
  projects/suj/6/usr.bin/units/   (props changed)
  projects/suj/6/usr.bin/vmstat/   (props changed)
  projects/suj/6/usr.bin/w/   (props changed)
  projects/suj/6/usr.bin/wc/   (props changed)
  projects/suj/6/usr.bin/whereis/   (props changed)
  projects/suj/6/usr.bin/whois/   (props changed)
  projects/suj/6/usr.bin/window/   (props changed)
  projects/suj/6/usr.bin/xargs/   (props changed)
  projects/suj/6/usr.bin/ypcat/   (props changed)
  projects/suj/6/usr.bin/ypmatch/   (props changed)
  projects/suj/6/usr.bin/ypwhich/   (props changed)
  projects/suj/6/usr.sbin/   (props changed)
  projects/suj/6/usr.sbin/IPXrouted/   (props changed)
  projects/suj/6/usr.sbin/Makefile   (props changed)
  projects/suj/6/usr.sbin/Makefile.inc   (props changed)
  projects/suj/6/usr.sbin/ac/   (props changed)
  projects/suj/6/usr.sbin/accton/   (props changed)
  projects/suj/6/usr.sbin/acpi/   (props changed)
  projects/suj/6/usr.sbin/adduser/   (props changed)
  projects/suj/6/usr.sbin/amd/   (props changed)
  projects/suj/6/usr.sbin/ancontrol/   (props changed)
  projects/suj/6/usr.sbin/apm/   (props changed)
  projects/suj/6/usr.sbin/apmd/   (props changed)
  projects/suj/6/usr.sbin/arlcontrol/   (props changed)
  projects/suj/6/usr.sbin/arp/   (props changed)
  projects/suj/6/usr.sbin/asf/   (props changed)
  projects/suj/6/usr.sbin/audit/   (props changed)
  projects/suj/6/usr.sbin/auditd/   (props changed)
  projects/suj/6/usr.sbin/auditreduce/   (props changed)
  projects/suj/6/usr.sbin/authpf/   (props changed)
  projects/suj/6/usr.sbin/bluetooth/   (props changed)
  projects/suj/6/usr.sbin/bluetooth/hcsecd/   (props changed)
  projects/suj/6/usr.sbin/bluetooth/hcseriald/   (props changed)
  projects/suj/6/usr.sbin/bluetooth/rfcomm_pppd/   (props changed)
  projects/suj/6/usr.sbin/bluetooth/sdpd/   (props changed)
  projects/suj/6/usr.sbin/boot0cfg/   (props changed)
  projects/suj/6/usr.sbin/boot98cfg/   (props changed)
  projects/suj/6/usr.sbin/bootparamd/   (props changed)
  projects/suj/6/usr.sbin/bsnmpd/   (props changed)
  projects/suj/6/usr.sbin/bsnmpd/modules/snmp_pf/   (props changed)
  projects/suj/6/usr.sbin/btxld/   (props changed)
  projects/suj/6/usr.sbin/burncd/   (props changed)
  projects/suj/6/usr.sbin/cdcontrol/   (props changed)
  projects/suj/6/usr.sbin/chkgrp/   (props changed)
  projects/suj/6/usr.sbin/chown/   (props changed)
  projects/suj/6/usr.sbin/chroot/   (props changed)
  projects/suj/6/usr.sbin/ckdist/   (props changed)
  projects/suj/6/usr.sbin/clear_locks/   (props changed)
  projects/suj/6/usr.sbin/config/   (props changed)
  projects/suj/6/usr.sbin/crashinfo/   (props changed)
  projects/suj/6/usr.sbin/cron/   (props changed)
  projects/suj/6/usr.sbin/cron/cron/   (props changed)
  projects/suj/6/usr.sbin/crunch/   (props changed)
  projects/suj/6/usr.sbin/ctm/   (props changed)
  projects/suj/6/usr.sbin/cxgbtool/   (props changed)
  projects/suj/6/usr.sbin/daemon/   (props changed)
  projects/suj/6/usr.sbin/dconschat/   (props changed)
  projects/suj/6/usr.sbin/devinfo/   (props changed)
  projects/suj/6/usr.sbin/digictl/   (props changed)
  projects/suj/6/usr.sbin/diskinfo/   (props changed)
  projects/suj/6/usr.sbin/dnssec-keygen/   (props changed)
  projects/suj/6/usr.sbin/dnssec-signzone/   (props changed)
  projects/suj/6/usr.sbin/editmap/   (props changed)
  projects/suj/6/usr.sbin/edquota/   (props changed)
  projects/suj/6/usr.sbin/eeprom/   (props changed)
  projects/suj/6/usr.sbin/extattr/   (props changed)
  projects/suj/6/usr.sbin/extattrctl/   (props changed)
  projects/suj/6/usr.sbin/faithd/   (props changed)
  projects/suj/6/usr.sbin/fdcontrol/   (props changed)
  projects/suj/6/usr.sbin/fdformat/   (props changed)
  projects/suj/6/usr.sbin/fdread/   (props changed)
  projects/suj/6/usr.sbin/fdwrite/   (props changed)
  projects/suj/6/usr.sbin/flowctl/   (props changed)
  projects/suj/6/usr.sbin/freebsd-update/   (props changed)
  projects/suj/6/usr.sbin/fwcontrol/   (props changed)
  projects/suj/6/usr.sbin/getfmac/   (props changed)
  projects/suj/6/usr.sbin/getpmac/   (props changed)
  projects/suj/6/usr.sbin/gstat/   (props changed)
  projects/suj/6/usr.sbin/i4b/   (props changed)
  projects/suj/6/usr.sbin/ifmcstat/   (props changed)
  projects/suj/6/usr.sbin/inetd/   (props changed)
  projects/suj/6/usr.sbin/iostat/   (props changed)
  projects/suj/6/usr.sbin/ip6addrctl/   (props changed)
  projects/suj/6/usr.sbin/ipfwpcap/   (props changed)
  projects/suj/6/usr.sbin/jail/   (props changed)
  projects/suj/6/usr.sbin/jexec/   (props changed)
  projects/suj/6/usr.sbin/jls/   (props changed)
  projects/suj/6/usr.sbin/kbdcontrol/   (props changed)
  projects/suj/6/usr.sbin/kbdmap/   (props changed)
  projects/suj/6/usr.sbin/kernbb/   (props changed)
  projects/suj/6/usr.sbin/keyserv/   (props changed)
  projects/suj/6/usr.sbin/kgmon/   (props changed)
  projects/suj/6/usr.sbin/kgzip/   (props changed)
  projects/suj/6/usr.sbin/kldxref/   (props changed)
  projects/suj/6/usr.sbin/lastlogin/   (props changed)
  projects/suj/6/usr.sbin/lpr/   (props changed)
  projects/suj/6/usr.sbin/lptcontrol/   (props changed)
  projects/suj/6/usr.sbin/mailstats/   (props changed)
  projects/suj/6/usr.sbin/mailwrapper/   (props changed)
  projects/suj/6/usr.sbin/makemap/   (props changed)
  projects/suj/6/usr.sbin/manctl/   (props changed)
  projects/suj/6/usr.sbin/memcontrol/   (props changed)
  projects/suj/6/usr.sbin/mergemaster/   (props changed)
  projects/suj/6/usr.sbin/mixer/   (props changed)
  projects/suj/6/usr.sbin/mld6query/   (props changed)
  projects/suj/6/usr.sbin/mlxcontrol/   (props changed)
  projects/suj/6/usr.sbin/mount_nwfs/   (props changed)
  projects/suj/6/usr.sbin/mount_portalfs/   (props changed)
  projects/suj/6/usr.sbin/mount_smbfs/   (props changed)
  projects/suj/6/usr.sbin/mountd/   (props changed)
  projects/suj/6/usr.sbin/moused/   (props changed)
  projects/suj/6/usr.sbin/mptable/   (props changed)
  projects/suj/6/usr.sbin/mtest/   (props changed)
  projects/suj/6/usr.sbin/mtree/   (props changed)
  projects/suj/6/usr.sbin/named/   (props changed)
  projects/suj/6/usr.sbin/named-checkconf/   (props changed)
  projects/suj/6/usr.sbin/named-checkzone/   (props changed)
  projects/suj/6/usr.sbin/named.reload/   (props changed)
  projects/suj/6/usr.sbin/ndiscvt/   (props changed)
  projects/suj/6/usr.sbin/ndp/   (props changed)
  projects/suj/6/usr.sbin/newsyslog/   (props changed)
  projects/suj/6/usr.sbin/newsyslog/newsyslog.conf.5   (props changed)
  projects/suj/6/usr.sbin/nfsd/   (props changed)
  projects/suj/6/usr.sbin/ngctl/   (props changed)
  projects/suj/6/usr.sbin/nghook/   (props changed)
  projects/suj/6/usr.sbin/nologin/   (props changed)
  projects/suj/6/usr.sbin/ntp/   (props changed)
  projects/suj/6/usr.sbin/ntp/doc/   (props changed)
  projects/suj/6/usr.sbin/ofwdump/   (props changed)
  projects/suj/6/usr.sbin/pccard/   (props changed)
  projects/suj/6/usr.sbin/pciconf/   (props changed)
  projects/suj/6/usr.sbin/periodic/   (props changed)
  projects/suj/6/usr.sbin/pkg_install/   (props changed)
  projects/suj/6/usr.sbin/pmccontrol/   (props changed)
  projects/suj/6/usr.sbin/pmcstat/   (props changed)
  projects/suj/6/usr.sbin/pnpinfo/   (props changed)
  projects/suj/6/usr.sbin/portsnap/   (props changed)
  projects/suj/6/usr.sbin/powerd/   (props changed)
  projects/suj/6/usr.sbin/ppp/   (props changed)
  projects/suj/6/usr.sbin/pppctl/   (props changed)
  projects/suj/6/usr.sbin/pppd/   (props changed)
  projects/suj/6/usr.sbin/pppstats/   (props changed)
  projects/suj/6/usr.sbin/praliases/   (props changed)
  projects/suj/6/usr.sbin/praudit/   (props changed)
  projects/suj/6/usr.sbin/procctl/   (props changed)
  projects/suj/6/usr.sbin/pstat/   (props changed)
  projects/suj/6/usr.sbin/pw/   (props changed)
  projects/suj/6/usr.sbin/pwd_mkdb/   (props changed)
  projects/suj/6/usr.sbin/quot/   (props changed)
  projects/suj/6/usr.sbin/quotaon/   (props changed)
  projects/suj/6/usr.sbin/rarpd/   (props changed)
  projects/suj/6/usr.sbin/raycontrol/   (props changed)
  projects/suj/6/usr.sbin/repquota/   (props changed)
  projects/suj/6/usr.sbin/rip6query/   (props changed)
  projects/suj/6/usr.sbin/rmt/   (props changed)
  projects/suj/6/usr.sbin/rndc/   (props changed)
  projects/suj/6/usr.sbin/rndc-confgen/   (props changed)
  projects/suj/6/usr.sbin/route6d/   (props changed)
  projects/suj/6/usr.sbin/rpc.lockd/   (props changed)
  projects/suj/6/usr.sbin/rpc.statd/   (props changed)
  projects/suj/6/usr.sbin/rpc.umntall/   (props changed)
  projects/suj/6/usr.sbin/rpc.yppasswdd/   (props changed)
  projects/suj/6/usr.sbin/rpc.ypupdated/   (props changed)
  projects/suj/6/usr.sbin/rpc.ypxfrd/   (props changed)
  projects/suj/6/usr.sbin/rpcbind/   (props changed)
  projects/suj/6/usr.sbin/rrenumd/   (props changed)
  projects/suj/6/usr.sbin/rtadvd/   (props changed)
  projects/suj/6/usr.sbin/rtprio/   (props changed)
  projects/suj/6/usr.sbin/rtsold/   (props changed)
  projects/suj/6/usr.sbin/rwhod/   (props changed)
  projects/suj/6/usr.sbin/sa/   (props changed)
  projects/suj/6/usr.sbin/sade/   (props changed)
  projects/suj/6/usr.sbin/sendmail/   (props changed)
  projects/suj/6/usr.sbin/setfmac/   (props changed)
  projects/suj/6/usr.sbin/setpmac/   (props changed)
  projects/suj/6/usr.sbin/sicontrol/   (props changed)
  projects/suj/6/usr.sbin/sliplogin/   (props changed)
  projects/suj/6/usr.sbin/slstat/   (props changed)
  projects/suj/6/usr.sbin/smbmsg/   (props changed)
  projects/suj/6/usr.sbin/snapinfo/   (props changed)
  projects/suj/6/usr.sbin/spkrtest/   (props changed)
  projects/suj/6/usr.sbin/spray/   (props changed)
  projects/suj/6/usr.sbin/sysinstall/   (props changed)
  projects/suj/6/usr.sbin/syslogd/   (props changed)
  projects/suj/6/usr.sbin/tcpdchk/   (props changed)
  projects/suj/6/usr.sbin/tcpdmatch/   (props changed)
  projects/suj/6/usr.sbin/tcpdrop/   (props changed)
  projects/suj/6/usr.sbin/tcpdump/   (props changed)
  projects/suj/6/usr.sbin/timed/   (props changed)
  projects/suj/6/usr.sbin/traceroute/   (props changed)
  projects/suj/6/usr.sbin/traceroute6/   (props changed)
  projects/suj/6/usr.sbin/trpt/   (props changed)
  projects/suj/6/usr.sbin/tzsetup/   (props changed)
  projects/suj/6/usr.sbin/ugidfw/   (props changed)
  projects/suj/6/usr.sbin/usbdevs/   (props changed)
  projects/suj/6/usr.sbin/vidcontrol/   (props changed)
  projects/suj/6/usr.sbin/vipw/   (props changed)
  projects/suj/6/usr.sbin/watch/   (props changed)
  projects/suj/6/usr.sbin/watchdogd/   (props changed)
  projects/suj/6/usr.sbin/wlconfig/   (props changed)
  projects/suj/6/usr.sbin/wpa/   (props changed)
  projects/suj/6/usr.sbin/wpa/wpa_supplicant/   (props changed)
  projects/suj/6/usr.sbin/yp_mkdb/   (props changed)
  projects/suj/6/usr.sbin/ypbind/   (props changed)
  projects/suj/6/usr.sbin/yppoll/   (props changed)
  projects/suj/6/usr.sbin/yppush/   (props changed)
  projects/suj/6/usr.sbin/ypserv/   (props changed)
  projects/suj/6/usr.sbin/ypset/   (props changed)
  projects/suj/6/usr.sbin/zic/   (props changed)
  projects/suj/6/usr.sbin/zzz/   (props changed)

Modified: projects/suj/6/lib/libufs/Makefile
==============================================================================
--- projects/suj/6/lib/libufs/Makefile	Wed Jan 20 21:30:52 2010	(r202719)
+++ projects/suj/6/lib/libufs/Makefile	Wed Jan 20 22:18:57 2010	(r202720)
@@ -2,7 +2,7 @@
 
 LIB=	ufs
 SHLIBDIR?= /lib
-SRCS=	block.c cgroup.c inode.c sblock.c type.c
+SRCS=	block.c cgroup.c inode.c sblock.c type.c ffs_subr.c ffs_tables.c
 INCS=	libufs.h
 MAN=	bread.3 cgread.3 libufs.3 sbread.3 ufs_disk_close.3
 MLINKS+= bread.3 bwrite.3
@@ -11,7 +11,13 @@ MLINKS+= sbread.3 sbwrite.3
 MLINKS+= ufs_disk_close.3 ufs_disk_fillout.3
 MLINKS+= ufs_disk_close.3 ufs_disk_fillout_blank.3
 MLINKS+= ufs_disk_close.3 ufs_disk_write.3
-CFLAGS+= -I${.CURDIR} -D_LIBUFS
+
+WARNS?=	2
+
+.PATH:  ${.CURDIR}/../../sys/ufs/ffs
+
+DEBUG_FLAGS = -g
+CFLAGS+= -D_LIBUFS
 .if defined(LIBUFS_DEBUG)
 CFLAGS+= -D_LIBUFS_DEBUGGING
 .endif

Modified: projects/suj/6/lib/libufs/cgroup.c
==============================================================================
--- projects/suj/6/lib/libufs/cgroup.c	Wed Jan 20 21:30:52 2010	(r202719)
+++ projects/suj/6/lib/libufs/cgroup.c	Wed Jan 20 22:18:57 2010	(r202720)
@@ -40,11 +40,82 @@ __FBSDID("$FreeBSD$");
 #include <errno.h>
 #include <fcntl.h>
 #include <stdio.h>
+#include <stdlib.h>
 #include <string.h>
 #include <unistd.h>
 
 #include <libufs.h>
 
+ufs2_daddr_t
+cgballoc(struct uufsd *disk)
+{
+	u_int8_t *blksfree;
+	struct cg *cgp;
+	struct fs *fs;
+	long bno;
+
+	fs = &disk->d_fs;
+	cgp = &disk->d_cg;
+	blksfree = cg_blksfree(cgp);
+	for (bno = 0; bno < fs->fs_fpg / fs->fs_frag; bno++)
+		if (ffs_isblock(fs, blksfree, bno))
+			goto gotit;
+	return (0);
+gotit:
+	fs->fs_cs(fs, cgp->cg_cgx).cs_nbfree--;
+	ffs_clrblock(fs, blksfree, (long)bno);
+	ffs_clusteracct(fs, cgp, bno, -1);
+	cgp->cg_cs.cs_nbfree--;
+	fs->fs_cstotal.cs_nbfree--;
+	fs->fs_fmod = 1;
+	return (cgbase(fs, cgp->cg_cgx) + blkstofrags(fs, bno));
+}
+
+ino_t
+cgialloc(struct uufsd *disk)
+{
+	struct ufs2_dinode *dp2;
+	u_int8_t *inosused;
+	struct cg *cgp;
+	struct fs *fs;
+	ino_t ino;
+	int i;
+
+	fs = &disk->d_fs;
+	cgp = &disk->d_cg;
+	inosused = cg_inosused(cgp);
+	for (ino = 0; ino < fs->fs_ipg / NBBY; ino++)
+		if (isclr(inosused, ino))
+			goto gotit;
+	return (0);
+gotit:
+	if (fs->fs_magic == FS_UFS2_MAGIC &&
+	    ino + INOPB(fs) > cgp->cg_initediblk &&
+	    cgp->cg_initediblk < cgp->cg_niblk) {
+		char block[MAXBSIZE];
+		bzero(block, (int)fs->fs_bsize);
+		dp2 = (struct ufs2_dinode *)&block;
+		for (i = 0; i < INOPB(fs); i++) {
+			dp2->di_gen = arc4random() / 2 + 1;
+			dp2++;
+		}
+		if (bwrite(disk, ino_to_fsba(fs,
+		    cgp->cg_cgx * fs->fs_ipg + cgp->cg_initediblk),
+		    block, fs->fs_bsize))
+			return (0);
+		cgp->cg_initediblk += INOPB(fs);
+	}
+
+	setbit(inosused, ino);
+	cgp->cg_irotor = ino;
+	cgp->cg_cs.cs_nifree--;
+	fs->fs_cstotal.cs_nifree--;
+	fs->fs_cs(fs, cgp->cg_cgx).cs_nifree--;
+	fs->fs_fmod = 1;
+
+	return (ino + (cgp->cg_cgx * fs->fs_ipg));
+}
+
 int
 cgread(struct uufsd *disk)
 {
@@ -55,14 +126,12 @@ int
 cgread1(struct uufsd *disk, int c)
 {
 	struct fs *fs;
-	off_t ccg;
 
 	fs = &disk->d_fs;
 
 	if (c >= fs->fs_ncg) {
 		return (0);
 	}
-	ccg = fsbtodb(fs, cgtod(fs, c)) * disk->d_bsize;
 	if (bread(disk, fsbtodb(fs, cgtod(fs, c)), disk->d_cgunion.d_buf,
 	    fs->fs_bsize) == -1) {
 		ERROR(disk, "unable to read cylinder group");
@@ -71,3 +140,23 @@ cgread1(struct uufsd *disk, int c)
 	disk->d_lcg = c;
 	return (1);
 }
+
+int
+cgwrite(struct uufsd *disk)
+{
+	return (cgwrite1(disk, disk->d_lcg));
+}
+
+int
+cgwrite1(struct uufsd *disk, int c)
+{
+	struct fs *fs;
+
+	fs = &disk->d_fs;
+	if (bwrite(disk, fsbtodb(fs, cgtod(fs, c)),
+	    disk->d_cgunion.d_buf, fs->fs_bsize) == -1) {
+		ERROR(disk, "unable to write cylinder group");
+		return (-1);
+	}
+	return (0);
+}

Modified: projects/suj/6/lib/libufs/inode.c
==============================================================================
--- projects/suj/6/lib/libufs/inode.c	Wed Jan 20 21:30:52 2010	(r202719)
+++ projects/suj/6/lib/libufs/inode.c	Wed Jan 20 22:18:57 2010	(r202720)
@@ -93,3 +93,19 @@ gotit:	switch (disk->d_ufs) {
 	ERROR(disk, "unknown UFS filesystem type");
 	return (-1);
 }
+
+int
+putino(struct uufsd *disk)
+{
+	struct fs *fs;
+
+	fs = &disk->d_fs;
+	if (disk->d_inoblock == NULL) {
+		ERROR(disk, "No inode block allocated");
+		return (-1);
+	}
+	if (bwrite(disk, fsbtodb(fs, ino_to_fsba(&disk->d_fs, disk->d_inomin)),
+	    disk->d_inoblock, disk->d_fs.fs_bsize) <= 0)
+		return (-1);
+	return (0);
+}

Modified: projects/suj/6/lib/libufs/libufs.h
==============================================================================
--- projects/suj/6/lib/libufs/libufs.h	Wed Jan 20 21:30:52 2010	(r202719)
+++ projects/suj/6/lib/libufs/libufs.h	Wed Jan 20 22:18:57 2010	(r202720)
@@ -71,6 +71,7 @@ struct uufsd {
 	int d_fd;		/* raw device file descriptor */
 	long d_bsize;		/* device bsize */
 	ufs2_daddr_t d_sblock;	/* superblock location */
+	struct csum *d_sbcsum;	/* Superblock summary info */
 	caddr_t d_inoblock;	/* inode block */
 	ino_t d_inomin;		/* low inode */
 	ino_t d_inomax;		/* high inode */
@@ -108,13 +109,18 @@ ssize_t bwrite(struct uufsd *, ufs2_dadd
 /*
  * cgroup.c
  */
+ufs2_daddr_t cgballoc(struct uufsd *);
+ino_t cgialloc(struct uufsd *);
 int cgread(struct uufsd *);
 int cgread1(struct uufsd *, int);
+int cgwrite(struct uufsd *);
+int cgwrite1(struct uufsd *, int);
 
 /*
  * inode.c
  */
 int getino(struct uufsd *, void **, ino_t, int *);
+int putino(struct uufsd *);
 
 /*
  * sblock.c
@@ -130,6 +136,16 @@ int ufs_disk_fillout(struct uufsd *, con
 int ufs_disk_fillout_blank(struct uufsd *, const char *);
 int ufs_disk_write(struct uufsd *);
 
+/*
+ * ffs_subr.c
+ */
+void	ffs_clrblock(struct fs *, u_char *, ufs1_daddr_t);
+void	ffs_clusteracct(struct fs *, struct cg *, ufs1_daddr_t, int);
+void	ffs_fragacct(struct fs *, int, int32_t [], int);
+int	ffs_isblock(struct fs *, u_char *, ufs1_daddr_t);
+int	ffs_isfreeblock(struct fs *, u_char *, ufs1_daddr_t);
+void	ffs_setblock(struct fs *, u_char *, ufs1_daddr_t);
+
 __END_DECLS
 
 #endif	/* __LIBUFS_H__ */

Modified: projects/suj/6/lib/libufs/sblock.c
==============================================================================
--- projects/suj/6/lib/libufs/sblock.c	Wed Jan 20 21:30:52 2010	(r202719)
+++ projects/suj/6/lib/libufs/sblock.c	Wed Jan 20 22:18:57 2010	(r202720)
@@ -40,6 +40,7 @@ __FBSDID("$FreeBSD$");
 #include <errno.h>
 #include <stdio.h>
 #include <string.h>
+#include <stdlib.h>
 #include <unistd.h>
 
 #include <libufs.h>
@@ -49,8 +50,11 @@ static int superblocks[] = SBLOCKSEARCH;
 int
 sbread(struct uufsd *disk)
 {
+	uint8_t block[MAXBSIZE];
 	struct fs *fs;
 	int sb, superblock;
+	int i, size, blks;
+	uint8_t *space;
 
 	ERROR(disk, NULL);
 
@@ -86,6 +90,34 @@ sbread(struct uufsd *disk)
 	}
 	disk->d_bsize = fs->fs_fsize / fsbtodb(fs, 1);
 	disk->d_sblock = superblock / disk->d_bsize;
+	/*
+	 * Read in the superblock summary information.
+	 */
+	size = fs->fs_cssize;
+	blks = howmany(size, fs->fs_fsize);
+	size += fs->fs_ncg * sizeof(int32_t);
+	space = malloc(size);
+	if (space == NULL) {
+		ERROR(disk, "failed to allocate space for summary information");
+		return (-1);
+	}
+	fs->fs_csp = (struct csum *)space;
+	for (i = 0; i < blks; i += fs->fs_frag) {
+		size = fs->fs_bsize;
+		if (i + fs->fs_frag > blks)
+			size = (blks - i) * fs->fs_fsize;
+		if (bread(disk, fsbtodb(fs, fs->fs_csaddr + i), block, size)
+		    == -1) {
+			ERROR(disk, "Failed to read sb summary information");
+			free(fs->fs_csp);
+			return (-1);
+		}
+		bcopy(block, space, size);
+		space += size;
+	}
+	fs->fs_maxcluster = (uint32_t *)space;
+	disk->d_sbcsum = fs->fs_csp;
+
 	return (0);
 }
 
@@ -93,7 +125,8 @@ int
 sbwrite(struct uufsd *disk, int all)
 {
 	struct fs *fs;
-	int i;
+	int i, blks, size;
+	uint8_t *space;
 
 	ERROR(disk, NULL);
 
@@ -107,6 +140,22 @@ sbwrite(struct uufsd *disk, int all)
 		ERROR(disk, "failed to write superblock");
 		return (-1);
 	}
+	/*
+	 * Write superblock summary information.
+	 */
+	blks = howmany(fs->fs_cssize, fs->fs_fsize);
+	space = (uint8_t *)disk->d_sbcsum;
+	for (i = 0; i < blks; i += fs->fs_frag) {
+		size = fs->fs_bsize;
+		if (i + fs->fs_frag > blks)
+			size = (blks - i) * fs->fs_fsize;
+		if (bwrite(disk, fsbtodb(fs, fs->fs_csaddr + i), space, size)
+		    == -1) {
+			ERROR(disk, "Failed to write sb summary information");
+			return (-1);
+		}
+		space += size;
+	}
 	if (all) {
 		for (i = 0; i < fs->fs_ncg; i++)
 			if (bwrite(disk, fsbtodb(fs, cgsblock(fs, i)),

Modified: projects/suj/6/lib/libufs/type.c
==============================================================================
--- projects/suj/6/lib/libufs/type.c	Wed Jan 20 21:30:52 2010	(r202719)
+++ projects/suj/6/lib/libufs/type.c	Wed Jan 20 22:18:57 2010	(r202720)
@@ -66,6 +66,10 @@ ufs_disk_close(struct uufsd *disk)
 		free((char *)(uintptr_t)disk->d_name);
 		disk->d_name = NULL;
 	}
+	if (disk->d_sbcsum != NULL) {
+		free(disk->d_sbcsum);
+		disk->d_sbcsum = NULL;
+	}
 	return (0);
 }
 
@@ -124,6 +128,7 @@ again:	if (stat(name, &st) < 0) {
 	disk->d_mine = 0;
 	disk->d_ufs = 0;
 	disk->d_error = NULL;
+	disk->d_sbcsum = NULL;
 
 	if (oname != name) {
 		name = strdup(name);

Modified: projects/suj/6/sbin/fsck_ffs/Makefile
==============================================================================
--- projects/suj/6/sbin/fsck_ffs/Makefile	Wed Jan 20 21:30:52 2010	(r202719)
+++ projects/suj/6/sbin/fsck_ffs/Makefile	Wed Jan 20 22:18:57 2010	(r202720)
@@ -7,7 +7,9 @@ LINKS+=	${BINDIR}/fsck_ffs ${BINDIR}/fsc
 MAN=	fsck_ffs.8
 MLINKS=	fsck_ffs.8 fsck_ufs.8 fsck_ffs.8 fsck_4.2bsd.8
 SRCS=	dir.c ea.c fsutil.c inode.c main.c pass1.c pass1b.c pass2.c pass3.c \
-	pass4.c pass5.c setup.c utilities.c ffs_subr.c ffs_tables.c
+	pass4.c pass5.c setup.c suj.c utilities.c
+DPADD=	${LIBUFS}
+LDADD=	-lufs
 WARNS?=	2
 CFLAGS+= -I${.CURDIR}
 

Modified: projects/suj/6/sbin/fsck_ffs/fsck.h
==============================================================================
--- projects/suj/6/sbin/fsck_ffs/fsck.h	Wed Jan 20 21:30:52 2010	(r202719)
+++ projects/suj/6/sbin/fsck_ffs/fsck.h	Wed Jan 20 22:18:57 2010	(r202720)
@@ -275,6 +275,7 @@ int	bkgrdcheck;		/* determine if backgro
 int	bkgrdsumadj;		/* whether the kernel have ability to adjust superblock summary */
 char	usedsoftdep;		/* just fix soft dependency inconsistencies */
 char	preen;			/* just fix normal inconsistencies */
+char	ckclean;		/* only do work if not cleanly unmounted */
 char	rerun;			/* rerun fsck. Only used in non-preen mode */
 int	returntosingle;		/* 1 => return to single user mode on exit */
 char	resolved;		/* cleared if unresolved changes => not clean */
@@ -328,9 +329,9 @@ ino_t		allocdir(ino_t parent, ino_t requ
 ino_t		allocino(ino_t request, int type);
 void		blkerror(ino_t ino, const char *type, ufs2_daddr_t blk);
 char	       *blockcheck(char *name);
-int		bread(int fd, char *buf, ufs2_daddr_t blk, long size);
+int		blread(int fd, char *buf, ufs2_daddr_t blk, long size);
 void		bufinit(void);
-void		bwrite(int fd, char *buf, ufs2_daddr_t blk, long size);
+void		blwrite(int fd, char *buf, ufs2_daddr_t blk, long size);
 void		cacheino(union dinode *dp, ino_t inumber);
 void		catch(int);
 void		catchquit(int);
@@ -344,10 +345,6 @@ void		direrror(ino_t ino, const char *er
 int		dirscan(struct inodesc *);
 int		dofix(struct inodesc *, const char *msg);
 int		eascan(struct inodesc *, struct ufs2_dinode *dp);
-void		ffs_clrblock(struct fs *, u_char *, ufs1_daddr_t);
-void		ffs_fragacct(struct fs *, int, int32_t [], int);
-int		ffs_isblock(struct fs *, u_char *, ufs1_daddr_t);
-void		ffs_setblock(struct fs *, u_char *, ufs1_daddr_t);
 void		fileerror(ino_t cwd, ino_t ino, const char *errmesg);
 int		findino(struct inodesc *);
 int		findname(struct inodesc *);
@@ -388,3 +385,4 @@ void		rwerror(const char *mesg, ufs2_dad
 void		sblock_init(void);
 void		setinodebuf(ino_t);
 int		setup(char *dev);
+void		suj_check(const char *filesys);

Modified: projects/suj/6/sbin/fsck_ffs/fsck_ffs.8
==============================================================================
--- projects/suj/6/sbin/fsck_ffs/fsck_ffs.8	Wed Jan 20 21:30:52 2010	(r202719)
+++ projects/suj/6/sbin/fsck_ffs/fsck_ffs.8	Wed Jan 20 22:18:57 2010	(r202720)
@@ -46,9 +46,9 @@
 .Ar ...
 .Sh DESCRIPTION
 The specified disk partitions and/or file systems are checked.
-In "preen" mode the clean flag of each file system's superblock is examined
-and only those file systems that
-are not marked clean are checked.
+In "preen" or "check clean" mode the clean flag of each file system's
+superblock is examined and only those file systems that are not marked clean
+are checked.
 File systems are marked clean when they are unmounted,
 when they have been mounted read-only, or when
 .Nm
@@ -175,6 +175,14 @@ Use the block specified immediately afte
 the super block for the file system.
 An alternate super block is usually located at block 32 for UFS1,
 and block 160 for UFS2.
+.It Fl C
+Check if file system was dismouted cleanly.
+If so, skip file system checks (like "preen").
+However, if the file system was not cleanly dismounted, do full checks,
+is if
+.Nm
+was invoked without
+.Fl C .
 .It Fl c
 Convert the file system to the specified level.
 Note that the level of a file system can only be raised.

Modified: projects/suj/6/sbin/fsck_ffs/fsutil.c
==============================================================================
--- projects/suj/6/sbin/fsck_ffs/fsutil.c	Wed Jan 20 21:30:52 2010	(r202719)
+++ projects/suj/6/sbin/fsck_ffs/fsutil.c	Wed Jan 20 22:18:57 2010	(r202720)
@@ -221,7 +221,7 @@ getblk(struct bufarea *bp, ufs2_daddr_t 
 	if (bp->b_bno != dblk) {
 		flush(fswritefd, bp);
 		diskreads++;
-		bp->b_errs = bread(fsreadfd, bp->b_un.b_buf, dblk, size);
+		bp->b_errs = blread(fsreadfd, bp->b_un.b_buf, dblk, size);
 		bp->b_bno = dblk;
 		bp->b_size = size;
 	}
@@ -244,11 +244,11 @@ flush(int fd, struct bufarea *bp)
 		    (bp->b_errs == bp->b_size / dev_bsize) ? "" : "PARTIALLY ",
 		    (long long)bp->b_bno);
 	bp->b_errs = 0;
-	bwrite(fd, bp->b_un.b_buf, bp->b_bno, (long)bp->b_size);
+	blwrite(fd, bp->b_un.b_buf, bp->b_bno, (long)bp->b_size);
 	if (bp != &sblk)
 		return;
 	for (i = 0, j = 0; i < sblock.fs_cssize; i += sblock.fs_bsize, j++) {
-		bwrite(fswritefd, (char *)sblock.fs_csp + i,
+		blwrite(fswritefd, (char *)sblock.fs_csp + i,
 		    fsbtodb(&sblock, sblock.fs_csaddr + j * sblock.fs_frag),
 		    sblock.fs_cssize - i < sblock.fs_bsize ?
 		    sblock.fs_cssize - i : sblock.fs_bsize);
@@ -345,7 +345,7 @@ ckfini(int markclean)
 }
 
 int
-bread(int fd, char *buf, ufs2_daddr_t blk, long size)
+blread(int fd, char *buf, ufs2_daddr_t blk, long size)
 {
 	char *cp;
 	int i, errs;
@@ -387,7 +387,7 @@ bread(int fd, char *buf, ufs2_daddr_t bl
 }
 
 void
-bwrite(int fd, char *buf, ufs2_daddr_t blk, long size)
+blwrite(int fd, char *buf, ufs2_daddr_t blk, long size)
 {
 	int i;
 	char *cp;

Modified: projects/suj/6/sbin/fsck_ffs/inode.c
==============================================================================
--- projects/suj/6/sbin/fsck_ffs/inode.c	Wed Jan 20 21:30:52 2010	(r202719)
+++ projects/suj/6/sbin/fsck_ffs/inode.c	Wed Jan 20 22:18:57 2010	(r202720)
@@ -332,7 +332,7 @@ getnextinode(ino_t inumber)
 		 * If bread returns an error, it will already have zeroed
 		 * out the buffer, so we do not need to do so here.
 		 */
-		(void)bread(fsreadfd, inodebuf, dblk, size);
+		(void)blread(fsreadfd, inodebuf, dblk, size);
 		nextinop = inodebuf;
 	}
 	dp = (union dinode *)nextinop;

Modified: projects/suj/6/sbin/fsck_ffs/main.c
==============================================================================
--- projects/suj/6/sbin/fsck_ffs/main.c	Wed Jan 20 21:30:52 2010	(r202719)
+++ projects/suj/6/sbin/fsck_ffs/main.c	Wed Jan 20 22:18:57 2010	(r202720)
@@ -79,7 +79,7 @@ main(int argc, char *argv[])
 
 	sync();
 	skipclean = 1;
-	while ((ch = getopt(argc, argv, "b:Bc:dfFm:npy")) != -1) {
+	while ((ch = getopt(argc, argv, "b:Bc:CdfFm:npy")) != -1) {
 		switch (ch) {
 		case 'b':
 			skipclean = 0;
@@ -125,6 +125,10 @@ main(int argc, char *argv[])
 
 		case 'p':
 			preen++;
+			/*FALLTHROUGH*/
+
+		case 'C':
+			ckclean++;
 			break;
 
 		case 'y':
@@ -144,7 +148,7 @@ main(int argc, char *argv[])
 
 	if (signal(SIGINT, SIG_IGN) != SIG_IGN)
 		(void)signal(SIGINT, catch);
-	if (preen)
+	if (ckclean)
 		(void)signal(SIGQUIT, catchquit);
 	signal(SIGINFO, infohandler);
 	if (bkgrdflag) {
@@ -202,7 +206,7 @@ checkfilesys(char *filesys)
 	size_t size;
 
 	cdevname = filesys;
-	if (debug && preen)
+	if (debug && ckclean)
 		pwarn("starting\n");
 	/*
 	 * Make best effort to get the disk name. Check first to see
@@ -237,6 +241,26 @@ checkfilesys(char *filesys)
 			exit(7);	/* Filesystem clean, report it now */
 		exit(0);
 	}
+	if (ckclean && skipclean) {
+		/*
+		 * If file system is su+j, check it here.
+		 */
+		if ((fsreadfd = open(filesys, O_RDONLY)) < 0 || readsb(0) == 0)
+			exit(3);	/* Cannot read superblock */
+		close(fsreadfd);
+#if 0
+		if ((sblock.fs_flags & FS_SUJ) != 0) {
+			if (sblock.fs_clean == 1) {
+				pwarn("FILE SYSTEM CLEAN; SKIPPING CHECKS\n");
+				exit(0);
+			}
+			suj_check(filesys);
+			if (chkdoreload(mntp) == 0)
+				exit(0);
+			exit(4);
+		}
+#endif
+	}
 	/*
 	 * If we are to do a background check:
 	 *	Get the mount point information of the file system
@@ -257,13 +281,13 @@ checkfilesys(char *filesys)
 			pfatal("MOUNTED READ-ONLY, CANNOT RUN IN BACKGROUND\n");
 		} else if ((fsreadfd = open(filesys, O_RDONLY)) >= 0) {
 			if (readsb(0) != 0) {
-				if (sblock.fs_flags & FS_NEEDSFSCK) {
+				if (sblock.fs_flags & (FS_NEEDSFSCK | FS_SUJ)) {
 					bkgrdflag = 0;
 					pfatal("UNEXPECTED INCONSISTENCY, %s\n",
 					    "CANNOT RUN IN BACKGROUND\n");
 				}
 				if ((sblock.fs_flags & FS_UNCLEAN) == 0 &&
-				    skipclean && preen) {
+				    skipclean && ckclean) {
 					/*
 					 * file system is clean;
 					 * skip snapshot and report it clean
@@ -430,6 +454,7 @@ checkfilesys(char *filesys)
 	inocleanup();
 	if (fsmodified) {
 		sblock.fs_time = time(NULL);
+		sblock.fs_mtime = time(NULL);
 		sbdirty();
 	}
 	if (cvtlevel && sblk.b_dirty) {
@@ -437,7 +462,7 @@ checkfilesys(char *filesys)
 		 * Write out the duplicate super blocks
 		 */
 		for (cylno = 0; cylno < sblock.fs_ncg; cylno++)
-			bwrite(fswritefd, (char *)&sblock,
+			blwrite(fswritefd, (char *)&sblock,
 			    fsbtodb(&sblock, cgsblock(&sblock, cylno)),
 			    SBLOCKSIZE);
 	}

Modified: projects/suj/6/sbin/fsck_ffs/pass4.c
==============================================================================
--- projects/suj/6/sbin/fsck_ffs/pass4.c	Wed Jan 20 21:30:52 2010	(r202719)
+++ projects/suj/6/sbin/fsck_ffs/pass4.c	Wed Jan 20 22:18:57 2010	(r202720)
@@ -72,6 +72,9 @@ pass4(void)
 		for (i = 0; i < inostathead[cg].il_numalloced; i++, inumber++) {
 			if (inumber < ROOTINO)
 				continue;
+			if (sblock.fs_flags & FS_SUJ &&
+			    inumber == sblock.fs_sujournal)
+				continue;
 			idesc.id_number = inumber;
 			switch (inoinfo(inumber)->ino_state) {
 

Modified: projects/suj/6/sbin/fsck_ffs/pass5.c
==============================================================================
--- projects/suj/6/sbin/fsck_ffs/pass5.c	Wed Jan 20 21:30:52 2010	(r202719)
+++ projects/suj/6/sbin/fsck_ffs/pass5.c	Wed Jan 20 22:18:57 2010	(r202720)
@@ -45,6 +45,7 @@ __FBSDID("$FreeBSD$");
 #include <inttypes.h>
 #include <limits.h>
 #include <string.h>
+#include <libufs.h>
 
 #include "fsck.h"
 

Modified: projects/suj/6/sbin/fsck_ffs/setup.c
==============================================================================
--- projects/suj/6/sbin/fsck_ffs/setup.c	Wed Jan 20 21:30:52 2010	(r202719)
+++ projects/suj/6/sbin/fsck_ffs/setup.c	Wed Jan 20 22:18:57 2010	(r202720)
@@ -65,7 +65,7 @@ static struct disklabel *getdisklabel(ch
 /*
  * Read in a superblock finding an alternate if necessary.
  * Return 1 if successful, 0 if unsuccessful, -1 if file system
- * is already clean (preen mode only).
+ * is already clean (ckclean and preen mode only).
  */
 int
 setup(char *dev)
@@ -201,7 +201,7 @@ setup(char *dev)
 		pwarn("USING ALTERNATE SUPERBLOCK AT %d\n", bflag);
 		bflag = 0;
 	}
-	if (skipclean && preen && sblock.fs_clean) {
+	if (skipclean && ckclean && sblock.fs_clean) {
 		pwarn("FILE SYSTEM CLEAN; SKIPPING CHECKS\n");
 		return (-1);
 	}
@@ -249,7 +249,7 @@ setup(char *dev)
 	for (i = 0, j = 0; i < sblock.fs_cssize; i += sblock.fs_bsize, j++) {
 		size = sblock.fs_cssize - i < sblock.fs_bsize ?
 		    sblock.fs_cssize - i : sblock.fs_bsize;
-		if (bread(fsreadfd, (char *)sblock.fs_csp + i,
+		if (blread(fsreadfd, (char *)sblock.fs_csp + i,
 		    fsbtodb(&sblock, sblock.fs_csaddr + j * sblock.fs_frag),
 		    size) != 0 && !asked) {
 			pfatal("BAD SUMMARY INFORMATION");
@@ -322,7 +322,7 @@ readsb(int listerr)
 
 	if (bflag) {
 		super = bflag;
-		if ((bread(fsreadfd, (char *)&sblock, super, (long)SBLOCKSIZE)))
+		if ((blread(fsreadfd, (char *)&sblock, super, (long)SBLOCKSIZE)))
 			return (0);
 		if (sblock.fs_magic == FS_BAD_MAGIC) {
 			fprintf(stderr, BAD_MAGIC_MSG);
@@ -337,7 +337,7 @@ readsb(int listerr)
 	} else {
 		for (i = 0; sblock_try[i] != -1; i++) {
 			super = sblock_try[i] / dev_bsize;
-			if ((bread(fsreadfd, (char *)&sblock, super,
+			if ((blread(fsreadfd, (char *)&sblock, super,
 			    (long)SBLOCKSIZE)))
 				return (0);
 			if (sblock.fs_magic == FS_BAD_MAGIC) {

Copied: projects/suj/6/sbin/fsck_ffs/suj.c (from r202690, projects/suj/7/sbin/fsck_ffs/suj.c)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ projects/suj/6/sbin/fsck_ffs/suj.c	Wed Jan 20 22:18:57 2010	(r202720, copy of r202690, projects/suj/7/sbin/fsck_ffs/suj.c)
@@ -0,0 +1,2065 @@
+/*-
+ * Copyright (c) 2009 Jeffrey W. Roberson <jeff@FreeBSD.org>
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHORS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#include <sys/cdefs.h>
+__FBSDID("$FreeBSD$");
+
+#include <sys/param.h>
+#include <sys/disklabel.h>
+#include <sys/mount.h>
+#include <sys/stat.h>
+
+#include <ufs/ufs/ufsmount.h>
+#include <ufs/ufs/dinode.h>
+#include <ufs/ufs/dir.h>
+#include <ufs/ffs/fs.h>
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <stdint.h>
+#include <libufs.h>
+#include <strings.h>
+#include <err.h>
+#include <assert.h>
+
+#include "fsck.h"
+
+static void	ino_decr(ino_t);
+
+#define	SUJ_HASHSIZE	128
+#define	SUJ_HASHMASK	(SUJ_HASHSIZE - 1)
+#define	SUJ_HASH(x)	((x * 2654435761) & SUJ_HASHMASK)
+
+struct suj_seg {
+	TAILQ_ENTRY(suj_seg) ss_next;
+	struct jsegrec	ss_rec;
+	uint8_t		*ss_blk;
+};
+
+struct suj_rec {
+	TAILQ_ENTRY(suj_rec) sr_next;
+	union jrec	*sr_rec;
+};
+TAILQ_HEAD(srechd, suj_rec);
+
+struct suj_ino {
+	LIST_ENTRY(suj_ino)	si_next;
+	struct srechd		si_recs;
+	struct srechd		si_movs;
+	ino_t			si_ino;
+	int			si_nlinkadj;
+	int			si_skipparent;
+	int			si_linkadj;
+	int			si_hasrecs;
+	int			si_blkadj;
+};
+LIST_HEAD(inohd, suj_ino);
+
+struct suj_blk {
+	LIST_ENTRY(suj_blk)	sb_next;
+	struct srechd		sb_recs;
+	ufs2_daddr_t		sb_blk;
+};
+LIST_HEAD(blkhd, suj_blk);
+
+struct data_blk {
+	LIST_ENTRY(data_blk)	db_next;
+	uint8_t			*db_buf;
+	ufs2_daddr_t		db_blk;
+	int			db_size;
+};
+
+struct ino_blk {
+	LIST_ENTRY(ino_blk)	ib_next;
+	uint8_t			*ib_buf;
+	int			ib_dirty;
+	ufs2_daddr_t		ib_blk;
+};
+LIST_HEAD(iblkhd, ino_blk);
+
+struct suj_cg {
+	LIST_ENTRY(suj_cg)	sc_next;
+	struct blkhd		sc_blkhash[SUJ_HASHSIZE];
+	struct inohd		sc_inohash[SUJ_HASHSIZE];
+	struct iblkhd		sc_iblkhash[SUJ_HASHSIZE];
+	struct ino_blk		*sc_lastiblk;
+	uint8_t			*sc_cgbuf;
+	struct cg		*sc_cgp;
+	int			sc_dirty;
+	int			sc_cgx;
+};
+
+LIST_HEAD(cghd, suj_cg) cghash[SUJ_HASHSIZE];
+LIST_HEAD(dblkhd, data_blk) dbhash[SUJ_HASHSIZE];
+
+TAILQ_HEAD(seghd, suj_seg) allsegs;
+uint64_t oldseq;
+static struct uufsd *disk = NULL;
+static struct fs *fs = NULL;
+
+/*
+ * Summary statistics.
+ */
+uint64_t freefrags;
+uint64_t freeblocks;
+uint64_t freeinos;
+uint64_t freedir;
+uint64_t jbytes;
+uint64_t jrecs;
+
+typedef void (*ino_visitor)(ino_t, ufs_lbn_t, ufs2_daddr_t, int);
+
+static void *
+errmalloc(size_t n)
+{
+	void *a;
+
+	a = malloc(n);
+	if (a == NULL)
+		errx(1, "malloc(%zu)", n);
+	return (a);
+}
+
+/*
+ * Open the given provider, load superblock.
+ */
+static void
+opendisk(const char *devnam)
+{
+	if (disk != NULL)
+		return;
+	disk = malloc(sizeof(*disk));
+	if (disk == NULL)
+		errx(1, "malloc(%zu)", sizeof(*disk));
+	if (ufs_disk_fillout(disk, devnam) == -1) {
+		err(1, "ufs_disk_fillout(%s) failed: %s", devnam,
+		    disk->d_error);
+	}
+	fs = &disk->d_fs;
+	/*
+	 * Setup a few things so reply() can work.
+	 */
+	bcopy(fs, &sblock, sizeof(sblock));
+	fsreadfd = disk->d_fd;
+	fswritefd = disk->d_fd;
+}
+
+/*
+ * Mark file system as clean, write the super-block back, close the disk.
+ */
+static void
+closedisk(const char *devnam)
+{
+	struct csum *cgsum;
+	int i;
+
+	/*
+	 * Recompute the fs summary info from correct cs summaries.
+	 */
+	bzero(&fs->fs_cstotal, sizeof(struct csum_total));
+	for (i = 0; i < fs->fs_ncg; i++) {
+		cgsum = &fs->fs_cs(fs, i);
+		fs->fs_cstotal.cs_nffree += cgsum->cs_nffree;
+		fs->fs_cstotal.cs_nbfree += cgsum->cs_nbfree;
+		fs->fs_cstotal.cs_nifree += cgsum->cs_nifree;
+		fs->fs_cstotal.cs_ndir += cgsum->cs_ndir;
+	}
+	/* XXX Don't set clean for now, we don't trust the journal. */
+	/* fs->fs_clean = 1; */
+	fs->fs_time = time(NULL);
+	fs->fs_mtime = time(NULL);
+	if (sbwrite(disk, 0) == -1)
+		err(1, "sbwrite(%s)", devnam);
+	if (ufs_disk_close(disk) == -1)
+		err(1, "ufs_disk_close(%s)", devnam);
+	free(disk);
+	disk = NULL;
+	fs = NULL;
+	fsreadfd = -1;
+	fswritefd = -1;
+}
+
+/*
+ * Lookup a cg by number in the hash so we can keep track of which cgs
+ * need stats rebuilt.
+ */
+static struct suj_cg *
+cg_lookup(int cgx)
+{
+	struct cghd *hd;
+	struct suj_cg *sc;
+
+	if (cgx < 0 || cgx >= fs->fs_ncg) {
+		abort();
+		errx(1, "Bad cg number %d", cgx);
+	}
+	hd = &cghash[SUJ_HASH(cgx)];
+	LIST_FOREACH(sc, hd, sc_next)
+		if (sc->sc_cgx == cgx)
+			return (sc);
+	sc = errmalloc(sizeof(*sc));
+	bzero(sc, sizeof(*sc));
+	sc->sc_cgbuf = errmalloc(fs->fs_bsize);
+	sc->sc_cgp = (struct cg *)sc->sc_cgbuf;
+	sc->sc_cgx = cgx;
+	LIST_INSERT_HEAD(hd, sc, sc_next);
+	if (bread(disk, fsbtodb(fs, cgtod(fs, sc->sc_cgx)), sc->sc_cgbuf,
+	    fs->fs_bsize) == -1)
+		err(1, "Unable to read cylinder group %d", sc->sc_cgx);
+
+	return (sc);
+}
+
+/*
+ * Lookup an inode number in the hash and allocate a suj_ino if it does
+ * not exist.
+ */
+static struct suj_ino *
+ino_lookup(ino_t ino, int creat)
+{
+	struct suj_ino *sino;
+	struct inohd *hd;
+	struct suj_cg *sc;
+
+	sc = cg_lookup(ino_to_cg(fs, ino));
+	hd = &sc->sc_inohash[SUJ_HASH(ino)];
+	LIST_FOREACH(sino, hd, si_next)
+		if (sino->si_ino == ino)
+			return (sino);
+	if (creat == 0)
+		return (NULL);
+	sino = errmalloc(sizeof(*sino));
+	bzero(sino, sizeof(*sino));
+	sino->si_ino = ino;
+	sino->si_nlinkadj = 0;
+	TAILQ_INIT(&sino->si_recs);
+	TAILQ_INIT(&sino->si_movs);
+	LIST_INSERT_HEAD(hd, sino, si_next);
+
+	return (sino);
+}
+
+/*
+ * Lookup a block number in the hash and allocate a suj_blk if it does
+ * not exist.
+ */
+static struct suj_blk *
+blk_lookup(ufs2_daddr_t blk, int creat)
+{
+	struct suj_blk *sblk;
+	struct suj_cg *sc;
+	struct blkhd *hd;
+
+	sc = cg_lookup(dtog(fs, blk));
+	hd = &sc->sc_blkhash[SUJ_HASH(blk)];
+	LIST_FOREACH(sblk, hd, sb_next)
+		if (sblk->sb_blk == blk)
+			return (sblk);
+	if (creat == 0)
+		return (NULL);
+	sblk = errmalloc(sizeof(*sblk));
+	bzero(sblk, sizeof(*sblk));
+	sblk->sb_blk = blk;
+	TAILQ_INIT(&sblk->sb_recs);
+	LIST_INSERT_HEAD(hd, sblk, sb_next);
+
+	return (sblk);
+}
+
+static uint8_t *
+dblk_read(ufs2_daddr_t blk, int size)
+{
+	struct data_blk *dblk;
+	struct dblkhd *hd;
+
+	hd = &dbhash[SUJ_HASH(blk)];
+	LIST_FOREACH(dblk, hd, db_next)
+		if (dblk->db_blk == blk)
+			goto found;
+	/*
+	 * The inode block wasn't located, allocate a new one.
+	 */
+	dblk = errmalloc(sizeof(*dblk));
+	bzero(dblk, sizeof(*dblk));
+	LIST_INSERT_HEAD(hd, dblk, db_next);
+	dblk->db_blk = blk;
+found:
+	/*
+	 * I doubt size mismatches can happen in practice but it is trivial
+	 * to handle.
+	 */
+	if (size != dblk->db_size) {
+		if (dblk->db_buf)
+			free(dblk->db_buf);
+		dblk->db_buf = errmalloc(size);
+		dblk->db_size = size;
+		if (bread(disk, fsbtodb(fs, blk), dblk->db_buf, size) == -1)
+			err(1, "Failed to read data block %jd", blk);
+	}
+	return (dblk->db_buf);
+}
+
+static union dinode *
+ino_read(ino_t ino)
+{
+	struct ino_blk *iblk;
+	struct iblkhd *hd;
+	struct suj_cg *sc;
+	ufs2_daddr_t blk;
+	int off;
+
+	blk = ino_to_fsba(fs, ino);
+	sc = cg_lookup(ino_to_cg(fs, ino));
+	hd = &sc->sc_iblkhash[SUJ_HASH(blk)];
+	LIST_FOREACH(iblk, hd, ib_next)
+		if (iblk->ib_blk == blk)
+			goto found;
+	/*
+	 * The inode block wasn't located, allocate a new one.
+	 */
+	iblk = errmalloc(sizeof(*iblk));
+	bzero(iblk, sizeof(*iblk));
+	iblk->ib_buf = errmalloc(fs->fs_bsize);
+	iblk->ib_blk = blk;
+	LIST_INSERT_HEAD(hd, iblk, ib_next);
+	if (bread(disk, fsbtodb(fs, blk), iblk->ib_buf, fs->fs_bsize) == -1)
+		err(1, "Failed to read inode block %jd", blk);
+found:
+	sc->sc_lastiblk = iblk;
+	off = ino_to_fsbo(fs, ino);
+	if (fs->fs_magic == FS_UFS1_MAGIC)
+		return (union dinode *)&((struct ufs1_dinode *)iblk->ib_buf)[off];
+	else
+		return (union dinode *)&((struct ufs2_dinode *)iblk->ib_buf)[off];
+}
+
+static void
+ino_dirty(ino_t ino)
+{
+	struct ino_blk *iblk;
+	struct iblkhd *hd;
+	struct suj_cg *sc;

*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***

From owner-svn-src-projects@FreeBSD.ORG  Sat Jan 23 21:47:07 2010
Return-Path: <owner-svn-src-projects@FreeBSD.ORG>
Delivered-To: svn-src-projects@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id D6C2010656A6;
	Sat, 23 Jan 2010 21:47:07 +0000 (UTC)
	(envelope-from rdivacky@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id C54338FC1B;
	Sat, 23 Jan 2010 21:47:07 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o0NLl7Cf028422;
	Sat, 23 Jan 2010 21:47:07 GMT
	(envelope-from rdivacky@svn.freebsd.org)
Received: (from rdivacky@localhost)
	by svn.freebsd.org (8.14.3/8.14.3/Submit) id o0NLl787028420;
	Sat, 23 Jan 2010 21:47:07 GMT
	(envelope-from rdivacky@svn.freebsd.org)
Message-Id: <201001232147.o0NLl787028420@svn.freebsd.org>
From: Roman Divacky <rdivacky@FreeBSD.org>
Date: Sat, 23 Jan 2010 21:47:07 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-projects@freebsd.org
X-SVN-Group: projects
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r202899 - in
	projects/clangbsd/usr.bin/clang/include/llvm: Support System
X-BeenThere: svn-src-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the src &quot; projects&quot;
	tree" <svn-src-projects.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
	<mailto:svn-src-projects-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-projects>
List-Post: <mailto:svn-src-projects@freebsd.org>
List-Help: <mailto:svn-src-projects-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-projects>, 
	<mailto:svn-src-projects-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Sat, 23 Jan 2010 21:47:07 -0000

Author: rdivacky
Date: Sat Jan 23 21:47:07 2010
New Revision: 202899
URL: http://svn.freebsd.org/changeset/base/202899

Log:
  DataTypes.h was moved from Support to System
  
  Found out by: bz

Added:
  projects/clangbsd/usr.bin/clang/include/llvm/System/
  projects/clangbsd/usr.bin/clang/include/llvm/System/DataTypes.h
Deleted:
  projects/clangbsd/usr.bin/clang/include/llvm/Support/

Added: projects/clangbsd/usr.bin/clang/include/llvm/System/DataTypes.h
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ projects/clangbsd/usr.bin/clang/include/llvm/System/DataTypes.h	Sat Jan 23 21:47:07 2010	(r202899)
@@ -0,0 +1,113 @@
+/* $FreeBSD$ */
+/* include/llvm/System/DataTypes.h.  Generated from DataTypes.h.in by configure.  */
+/*===-- include/System/DataTypes.h - Define fixed size types -----*- C -*-===*\
+|*                                                                            *|
+|*                     The LLVM Compiler Infrastructure                       *|
+|*                                                                            *|
+|* This file is distributed under the University of Illinois Open Source      *|
+|* License. See LICENSE.TXT for details.                                      *|
+|*                                                                            *|
+|*===----------------------------------------------------------------------===*|
+|*                                                                            *|
+|* This file contains definitions to figure out the size of _HOST_ data types.*|
+|* This file is important because different host OS's define different macros,*|
+|* which makes portability tough.  This file exports the following            *|
+|* definitions:                                                               *|
+|*                                                                            *|
+|*   [u]int(32|64)_t : typedefs for signed and unsigned 32/64 bit system types*|
+|*   [U]INT(8|16|32|64)_(MIN|MAX) : Constants for the min and max values.     *|
+|*                                                                            *|
+|* No library is required when using these functinons.                        *|
+|*                                                                            *|
+|*===----------------------------------------------------------------------===*/
+
+/* Please leave this file C-compatible. */
+
+#ifndef SUPPORT_DATATYPES_H
+#define SUPPORT_DATATYPES_H
+
+#define HAVE_SYS_TYPES_H 1
+#define HAVE_INTTYPES_H 1
+#define HAVE_STDINT_H 1
+#define HAVE_UINT64_T 1
+/* #undef HAVE_U_INT64_T */
+
+#ifdef __cplusplus
+#include <cmath>
+#else
+#include <math.h>
+#endif
+
+/* Note that this header's correct operation depends on __STDC_LIMIT_MACROS
+   being defined.  We would define it here, but in order to prevent Bad Things
+   happening when system headers or C++ STL headers include stdint.h before we
+   define it here, we define it on the g++ command line (in Makefile.rules). */
+#if !defined(__STDC_LIMIT_MACROS)
+# error "Must #define __STDC_LIMIT_MACROS before #including System/DataTypes.h"
+#endif
+
+#if !defined(__STDC_CONSTANT_MACROS)
+# error "Must #define __STDC_CONSTANT_MACROS before " \
+        "#including System/DataTypes.h"
+#endif
+
+/* Note that <inttypes.h> includes <stdint.h>, if this is a C99 system. */
+#ifdef HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+
+#ifdef HAVE_INTTYPES_H
+#include <inttypes.h>
+#endif
+
+#ifdef HAVE_STDINT_H
+#include <stdint.h>
+#endif
+
+#ifdef _AIX
+#include "llvm/System/AIXDataTypesFix.h"
+#endif
+
+/* Handle incorrect definition of uint64_t as u_int64_t */
+#ifndef HAVE_UINT64_T
+#ifdef HAVE_U_INT64_T
+typedef u_int64_t uint64_t;
+#else
+# error "Don't have a definition for uint64_t on this platform"
+#endif
+#endif
+
+#ifdef _OpenBSD_
+#define INT8_MAX 127
+#define INT8_MIN -128
+#define UINT8_MAX 255
+#define INT16_MAX 32767
+#define INT16_MIN -32768
+#define UINT16_MAX 65535
+#define INT32_MAX 2147483647
+#define INT32_MIN -2147483648
+#define UINT32_MAX 4294967295U
+#endif
+
+/* Set defaults for constants which we cannot find. */
+#if !defined(INT64_MAX)
+# define INT64_MAX 9223372036854775807LL
+#endif
+#if !defined(INT64_MIN)
+# define INT64_MIN ((-INT64_MAX)-1)
+#endif
+#if !defined(UINT64_MAX)
+# define UINT64_MAX 0xffffffffffffffffULL
+#endif
+
+#if __GNUC__ > 3
+#define END_WITH_NULL __attribute__((sentinel))
+#else
+#define END_WITH_NULL
+#endif
+
+#ifndef HUGE_VALF
+#define HUGE_VALF (float)HUGE_VAL
+#endif
+
+#endif  /* SUPPORT_DATATYPES_H */