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 " projects" 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 " projects" 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 " projects" 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 " projects" 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 " projects" 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 " projects" 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 " projects" 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 " projects" 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 " projects" 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 " projects" 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 " projects" 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 *)█ + 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 " projects" 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 *)█ + 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 " projects" 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 " projects" 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 *)█ + 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 " projects" 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 *)█ > + 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 " projects" 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 " projects" 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 *)█ + 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 " projects" 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 */