PERFORCE change 140595 for review

John Birrell jb at FreeBSD.org
Fri Apr 25 09:54:49 UTC 2008


http://perforce.freebsd.org/chv.cgi?CH=140595

Change 140595 by jb at freebsd3 on 2008/04/25 09:54:46

	IFC.
	
	This will break the build of the DTrace libraries because these sources are
	from the vendor branch in CVS.

Affected files ...

.. //depot/projects/dtrace/src/cddl/contrib/opensolaris/lib/libctf/common/ctf_lib.c#3 integrate
.. //depot/projects/dtrace/src/cddl/contrib/opensolaris/lib/libctf/common/ctf_subr.c#3 integrate
.. //depot/projects/dtrace/src/cddl/contrib/opensolaris/lib/libctf/common/libctf.h#2 integrate
.. //depot/projects/dtrace/src/cddl/contrib/opensolaris/lib/libdtrace/common/drti.c#3 integrate
.. //depot/projects/dtrace/src/cddl/contrib/opensolaris/lib/libdtrace/common/dt_aggregate.c#3 integrate
.. //depot/projects/dtrace/src/cddl/contrib/opensolaris/lib/libdtrace/common/dt_as.c#2 integrate
.. //depot/projects/dtrace/src/cddl/contrib/opensolaris/lib/libdtrace/common/dt_as.h#2 integrate
.. //depot/projects/dtrace/src/cddl/contrib/opensolaris/lib/libdtrace/common/dt_buf.c#2 integrate
.. //depot/projects/dtrace/src/cddl/contrib/opensolaris/lib/libdtrace/common/dt_buf.h#2 integrate
.. //depot/projects/dtrace/src/cddl/contrib/opensolaris/lib/libdtrace/common/dt_cc.c#4 integrate
.. //depot/projects/dtrace/src/cddl/contrib/opensolaris/lib/libdtrace/common/dt_cg.c#3 integrate
.. //depot/projects/dtrace/src/cddl/contrib/opensolaris/lib/libdtrace/common/dt_consume.c#3 integrate
.. //depot/projects/dtrace/src/cddl/contrib/opensolaris/lib/libdtrace/common/dt_decl.c#2 integrate
.. //depot/projects/dtrace/src/cddl/contrib/opensolaris/lib/libdtrace/common/dt_decl.h#2 integrate
.. //depot/projects/dtrace/src/cddl/contrib/opensolaris/lib/libdtrace/common/dt_dis.c#2 integrate
.. //depot/projects/dtrace/src/cddl/contrib/opensolaris/lib/libdtrace/common/dt_dof.c#3 integrate
.. //depot/projects/dtrace/src/cddl/contrib/opensolaris/lib/libdtrace/common/dt_dof.h#2 integrate
.. //depot/projects/dtrace/src/cddl/contrib/opensolaris/lib/libdtrace/common/dt_error.c#3 integrate
.. //depot/projects/dtrace/src/cddl/contrib/opensolaris/lib/libdtrace/common/dt_errtags.h#3 integrate
.. //depot/projects/dtrace/src/cddl/contrib/opensolaris/lib/libdtrace/common/dt_grammar.y#2 integrate
.. //depot/projects/dtrace/src/cddl/contrib/opensolaris/lib/libdtrace/common/dt_handle.c#3 integrate
.. //depot/projects/dtrace/src/cddl/contrib/opensolaris/lib/libdtrace/common/dt_ident.c#3 integrate
.. //depot/projects/dtrace/src/cddl/contrib/opensolaris/lib/libdtrace/common/dt_ident.h#2 integrate
.. //depot/projects/dtrace/src/cddl/contrib/opensolaris/lib/libdtrace/common/dt_impl.h#4 integrate
.. //depot/projects/dtrace/src/cddl/contrib/opensolaris/lib/libdtrace/common/dt_inttab.c#2 integrate
.. //depot/projects/dtrace/src/cddl/contrib/opensolaris/lib/libdtrace/common/dt_inttab.h#2 integrate
.. //depot/projects/dtrace/src/cddl/contrib/opensolaris/lib/libdtrace/common/dt_lex.l#3 integrate
.. //depot/projects/dtrace/src/cddl/contrib/opensolaris/lib/libdtrace/common/dt_link.c#4 integrate
.. //depot/projects/dtrace/src/cddl/contrib/opensolaris/lib/libdtrace/common/dt_list.c#2 integrate
.. //depot/projects/dtrace/src/cddl/contrib/opensolaris/lib/libdtrace/common/dt_list.h#2 integrate
.. //depot/projects/dtrace/src/cddl/contrib/opensolaris/lib/libdtrace/common/dt_map.c#3 integrate
.. //depot/projects/dtrace/src/cddl/contrib/opensolaris/lib/libdtrace/common/dt_module.c#3 integrate
.. //depot/projects/dtrace/src/cddl/contrib/opensolaris/lib/libdtrace/common/dt_module.h#2 integrate
.. //depot/projects/dtrace/src/cddl/contrib/opensolaris/lib/libdtrace/common/dt_open.c#4 integrate
.. //depot/projects/dtrace/src/cddl/contrib/opensolaris/lib/libdtrace/common/dt_options.c#3 integrate
.. //depot/projects/dtrace/src/cddl/contrib/opensolaris/lib/libdtrace/common/dt_parser.c#3 integrate
.. //depot/projects/dtrace/src/cddl/contrib/opensolaris/lib/libdtrace/common/dt_parser.h#2 integrate
.. //depot/projects/dtrace/src/cddl/contrib/opensolaris/lib/libdtrace/common/dt_pcb.c#2 integrate
.. //depot/projects/dtrace/src/cddl/contrib/opensolaris/lib/libdtrace/common/dt_pcb.h#2 integrate
.. //depot/projects/dtrace/src/cddl/contrib/opensolaris/lib/libdtrace/common/dt_pid.c#4 integrate
.. //depot/projects/dtrace/src/cddl/contrib/opensolaris/lib/libdtrace/common/dt_pid.h#2 integrate
.. //depot/projects/dtrace/src/cddl/contrib/opensolaris/lib/libdtrace/common/dt_pragma.c#4 integrate
.. //depot/projects/dtrace/src/cddl/contrib/opensolaris/lib/libdtrace/common/dt_printf.c#3 integrate
.. //depot/projects/dtrace/src/cddl/contrib/opensolaris/lib/libdtrace/common/dt_printf.h#2 integrate
.. //depot/projects/dtrace/src/cddl/contrib/opensolaris/lib/libdtrace/common/dt_proc.c#3 integrate
.. //depot/projects/dtrace/src/cddl/contrib/opensolaris/lib/libdtrace/common/dt_proc.h#3 integrate
.. //depot/projects/dtrace/src/cddl/contrib/opensolaris/lib/libdtrace/common/dt_program.c#3 integrate
.. //depot/projects/dtrace/src/cddl/contrib/opensolaris/lib/libdtrace/common/dt_program.h#2 integrate
.. //depot/projects/dtrace/src/cddl/contrib/opensolaris/lib/libdtrace/common/dt_provider.c#3 integrate
.. //depot/projects/dtrace/src/cddl/contrib/opensolaris/lib/libdtrace/common/dt_provider.h#2 integrate
.. //depot/projects/dtrace/src/cddl/contrib/opensolaris/lib/libdtrace/common/dt_regset.c#2 integrate
.. //depot/projects/dtrace/src/cddl/contrib/opensolaris/lib/libdtrace/common/dt_regset.h#2 integrate
.. //depot/projects/dtrace/src/cddl/contrib/opensolaris/lib/libdtrace/common/dt_string.c#2 integrate
.. //depot/projects/dtrace/src/cddl/contrib/opensolaris/lib/libdtrace/common/dt_string.h#2 integrate
.. //depot/projects/dtrace/src/cddl/contrib/opensolaris/lib/libdtrace/common/dt_strtab.c#2 integrate
.. //depot/projects/dtrace/src/cddl/contrib/opensolaris/lib/libdtrace/common/dt_strtab.h#2 integrate
.. //depot/projects/dtrace/src/cddl/contrib/opensolaris/lib/libdtrace/common/dt_subr.c#3 integrate
.. //depot/projects/dtrace/src/cddl/contrib/opensolaris/lib/libdtrace/common/dt_work.c#3 integrate
.. //depot/projects/dtrace/src/cddl/contrib/opensolaris/lib/libdtrace/common/dt_xlator.c#2 integrate
.. //depot/projects/dtrace/src/cddl/contrib/opensolaris/lib/libdtrace/common/dt_xlator.h#2 integrate
.. //depot/projects/dtrace/src/cddl/contrib/opensolaris/lib/libdtrace/common/dtrace.h#3 integrate
.. //depot/projects/dtrace/src/cddl/contrib/opensolaris/lib/libdtrace/common/mkerrtags.sh#3 integrate
.. //depot/projects/dtrace/src/cddl/contrib/opensolaris/lib/libdtrace/common/mknames.sh#3 integrate
.. //depot/projects/dtrace/src/cddl/contrib/opensolaris/lib/libgen/common/gmatch.c#3 integrate
.. //depot/projects/dtrace/src/cddl/contrib/opensolaris/tools/ctf/common/ctf_headers.h#2 integrate
.. //depot/projects/dtrace/src/cddl/contrib/opensolaris/tools/ctf/common/list.c#3 integrate
.. //depot/projects/dtrace/src/cddl/contrib/opensolaris/tools/ctf/common/list.h#2 integrate
.. //depot/projects/dtrace/src/cddl/contrib/opensolaris/tools/ctf/common/memory.c#3 integrate
.. //depot/projects/dtrace/src/cddl/contrib/opensolaris/tools/ctf/common/memory.h#2 integrate
.. //depot/projects/dtrace/src/cddl/contrib/opensolaris/tools/ctf/common/symbol.c#2 integrate
.. //depot/projects/dtrace/src/cddl/contrib/opensolaris/tools/ctf/common/symbol.h#2 integrate
.. //depot/projects/dtrace/src/cddl/contrib/opensolaris/tools/ctf/common/utils.c#2 integrate
.. //depot/projects/dtrace/src/cddl/contrib/opensolaris/tools/ctf/common/utils.h#2 integrate
.. //depot/projects/dtrace/src/cddl/contrib/opensolaris/tools/ctf/cvt/alist.c#3 integrate
.. //depot/projects/dtrace/src/cddl/contrib/opensolaris/tools/ctf/cvt/alist.h#3 integrate
.. //depot/projects/dtrace/src/cddl/contrib/opensolaris/tools/ctf/cvt/barrier.c#3 integrate
.. //depot/projects/dtrace/src/cddl/contrib/opensolaris/tools/ctf/cvt/barrier.h#3 integrate
.. //depot/projects/dtrace/src/cddl/contrib/opensolaris/tools/ctf/cvt/compare.c#2 integrate
.. //depot/projects/dtrace/src/cddl/contrib/opensolaris/tools/ctf/cvt/ctf.c#3 integrate
.. //depot/projects/dtrace/src/cddl/contrib/opensolaris/tools/ctf/cvt/ctfconvert.c#3 integrate
.. //depot/projects/dtrace/src/cddl/contrib/opensolaris/tools/ctf/cvt/ctfmerge.c#3 integrate
.. //depot/projects/dtrace/src/cddl/contrib/opensolaris/tools/ctf/cvt/ctfmerge.h#2 integrate
.. //depot/projects/dtrace/src/cddl/contrib/opensolaris/tools/ctf/cvt/ctftools.h#3 integrate
.. //depot/projects/dtrace/src/cddl/contrib/opensolaris/tools/ctf/cvt/dwarf.c#3 integrate
.. //depot/projects/dtrace/src/cddl/contrib/opensolaris/tools/ctf/cvt/fifo.c#2 integrate
.. //depot/projects/dtrace/src/cddl/contrib/opensolaris/tools/ctf/cvt/fifo.h#2 integrate
.. //depot/projects/dtrace/src/cddl/contrib/opensolaris/tools/ctf/cvt/fixup_tdescs.c#3 integrate
.. //depot/projects/dtrace/src/cddl/contrib/opensolaris/tools/ctf/cvt/hash.c#3 integrate
.. //depot/projects/dtrace/src/cddl/contrib/opensolaris/tools/ctf/cvt/hash.h#2 integrate
.. //depot/projects/dtrace/src/cddl/contrib/opensolaris/tools/ctf/cvt/iidesc.c#3 integrate
.. //depot/projects/dtrace/src/cddl/contrib/opensolaris/tools/ctf/cvt/input.c#3 integrate
.. //depot/projects/dtrace/src/cddl/contrib/opensolaris/tools/ctf/cvt/merge.c#3 integrate
.. //depot/projects/dtrace/src/cddl/contrib/opensolaris/tools/ctf/cvt/output.c#3 integrate
.. //depot/projects/dtrace/src/cddl/contrib/opensolaris/tools/ctf/cvt/st_parse.c#3 integrate
.. //depot/projects/dtrace/src/cddl/contrib/opensolaris/tools/ctf/cvt/stabs.c#3 integrate
.. //depot/projects/dtrace/src/cddl/contrib/opensolaris/tools/ctf/cvt/stack.c#2 integrate
.. //depot/projects/dtrace/src/cddl/contrib/opensolaris/tools/ctf/cvt/stack.h#2 integrate
.. //depot/projects/dtrace/src/cddl/contrib/opensolaris/tools/ctf/cvt/strtab.c#3 integrate
.. //depot/projects/dtrace/src/cddl/contrib/opensolaris/tools/ctf/cvt/strtab.h#3 integrate
.. //depot/projects/dtrace/src/cddl/contrib/opensolaris/tools/ctf/cvt/tdata.c#3 integrate
.. //depot/projects/dtrace/src/cddl/contrib/opensolaris/tools/ctf/cvt/traverse.c#3 integrate
.. //depot/projects/dtrace/src/cddl/contrib/opensolaris/tools/ctf/cvt/traverse.h#3 integrate
.. //depot/projects/dtrace/src/cddl/contrib/opensolaris/tools/ctf/cvt/util.c#3 integrate
.. //depot/projects/dtrace/src/cddl/contrib/opensolaris/tools/ctf/dump/dump.c#3 integrate
.. //depot/projects/dtrace/src/sys/fs/unionfs/union.h#7 integrate
.. //depot/projects/dtrace/src/sys/fs/unionfs/union_subr.c#15 integrate
.. //depot/projects/dtrace/src/sys/fs/unionfs/union_vnops.c#15 integrate

Differences ...

==== //depot/projects/dtrace/src/cddl/contrib/opensolaris/lib/libctf/common/ctf_lib.c#3 (text) ====


==== //depot/projects/dtrace/src/cddl/contrib/opensolaris/lib/libctf/common/ctf_subr.c#3 (text) ====


==== //depot/projects/dtrace/src/cddl/contrib/opensolaris/lib/libctf/common/libctf.h#2 (text) ====


==== //depot/projects/dtrace/src/cddl/contrib/opensolaris/lib/libdtrace/common/drti.c#3 (text) ====


==== //depot/projects/dtrace/src/cddl/contrib/opensolaris/lib/libdtrace/common/dt_aggregate.c#3 (text) ====


==== //depot/projects/dtrace/src/cddl/contrib/opensolaris/lib/libdtrace/common/dt_as.c#2 (text) ====


==== //depot/projects/dtrace/src/cddl/contrib/opensolaris/lib/libdtrace/common/dt_as.h#2 (text) ====


==== //depot/projects/dtrace/src/cddl/contrib/opensolaris/lib/libdtrace/common/dt_buf.c#2 (text) ====


==== //depot/projects/dtrace/src/cddl/contrib/opensolaris/lib/libdtrace/common/dt_buf.h#2 (text) ====


==== //depot/projects/dtrace/src/cddl/contrib/opensolaris/lib/libdtrace/common/dt_cc.c#4 (text) ====


==== //depot/projects/dtrace/src/cddl/contrib/opensolaris/lib/libdtrace/common/dt_cg.c#3 (text) ====


==== //depot/projects/dtrace/src/cddl/contrib/opensolaris/lib/libdtrace/common/dt_consume.c#3 (text) ====


==== //depot/projects/dtrace/src/cddl/contrib/opensolaris/lib/libdtrace/common/dt_decl.c#2 (text) ====


==== //depot/projects/dtrace/src/cddl/contrib/opensolaris/lib/libdtrace/common/dt_decl.h#2 (text) ====


==== //depot/projects/dtrace/src/cddl/contrib/opensolaris/lib/libdtrace/common/dt_dis.c#2 (text) ====


==== //depot/projects/dtrace/src/cddl/contrib/opensolaris/lib/libdtrace/common/dt_dof.c#3 (text) ====


==== //depot/projects/dtrace/src/cddl/contrib/opensolaris/lib/libdtrace/common/dt_dof.h#2 (text) ====


==== //depot/projects/dtrace/src/cddl/contrib/opensolaris/lib/libdtrace/common/dt_error.c#3 (text) ====


==== //depot/projects/dtrace/src/cddl/contrib/opensolaris/lib/libdtrace/common/dt_errtags.h#3 (text) ====


==== //depot/projects/dtrace/src/cddl/contrib/opensolaris/lib/libdtrace/common/dt_grammar.y#2 (text) ====


==== //depot/projects/dtrace/src/cddl/contrib/opensolaris/lib/libdtrace/common/dt_handle.c#3 (text) ====


==== //depot/projects/dtrace/src/cddl/contrib/opensolaris/lib/libdtrace/common/dt_ident.c#3 (text) ====


==== //depot/projects/dtrace/src/cddl/contrib/opensolaris/lib/libdtrace/common/dt_ident.h#2 (text) ====


==== //depot/projects/dtrace/src/cddl/contrib/opensolaris/lib/libdtrace/common/dt_impl.h#4 (text) ====


==== //depot/projects/dtrace/src/cddl/contrib/opensolaris/lib/libdtrace/common/dt_inttab.c#2 (text) ====


==== //depot/projects/dtrace/src/cddl/contrib/opensolaris/lib/libdtrace/common/dt_inttab.h#2 (text) ====


==== //depot/projects/dtrace/src/cddl/contrib/opensolaris/lib/libdtrace/common/dt_lex.l#3 (text) ====


==== //depot/projects/dtrace/src/cddl/contrib/opensolaris/lib/libdtrace/common/dt_link.c#4 (text) ====


==== //depot/projects/dtrace/src/cddl/contrib/opensolaris/lib/libdtrace/common/dt_list.c#2 (text) ====


==== //depot/projects/dtrace/src/cddl/contrib/opensolaris/lib/libdtrace/common/dt_list.h#2 (text) ====


==== //depot/projects/dtrace/src/cddl/contrib/opensolaris/lib/libdtrace/common/dt_map.c#3 (text) ====


==== //depot/projects/dtrace/src/cddl/contrib/opensolaris/lib/libdtrace/common/dt_module.c#3 (text) ====


==== //depot/projects/dtrace/src/cddl/contrib/opensolaris/lib/libdtrace/common/dt_module.h#2 (text) ====


==== //depot/projects/dtrace/src/cddl/contrib/opensolaris/lib/libdtrace/common/dt_open.c#4 (text) ====


==== //depot/projects/dtrace/src/cddl/contrib/opensolaris/lib/libdtrace/common/dt_options.c#3 (text) ====


==== //depot/projects/dtrace/src/cddl/contrib/opensolaris/lib/libdtrace/common/dt_parser.c#3 (text) ====


==== //depot/projects/dtrace/src/cddl/contrib/opensolaris/lib/libdtrace/common/dt_parser.h#2 (text) ====


==== //depot/projects/dtrace/src/cddl/contrib/opensolaris/lib/libdtrace/common/dt_pcb.c#2 (text) ====


==== //depot/projects/dtrace/src/cddl/contrib/opensolaris/lib/libdtrace/common/dt_pcb.h#2 (text) ====


==== //depot/projects/dtrace/src/cddl/contrib/opensolaris/lib/libdtrace/common/dt_pid.c#4 (text) ====


==== //depot/projects/dtrace/src/cddl/contrib/opensolaris/lib/libdtrace/common/dt_pid.h#2 (text) ====


==== //depot/projects/dtrace/src/cddl/contrib/opensolaris/lib/libdtrace/common/dt_pragma.c#4 (text) ====


==== //depot/projects/dtrace/src/cddl/contrib/opensolaris/lib/libdtrace/common/dt_printf.c#3 (text) ====


==== //depot/projects/dtrace/src/cddl/contrib/opensolaris/lib/libdtrace/common/dt_printf.h#2 (text) ====


==== //depot/projects/dtrace/src/cddl/contrib/opensolaris/lib/libdtrace/common/dt_proc.c#3 (text) ====


==== //depot/projects/dtrace/src/cddl/contrib/opensolaris/lib/libdtrace/common/dt_proc.h#3 (text) ====


==== //depot/projects/dtrace/src/cddl/contrib/opensolaris/lib/libdtrace/common/dt_program.c#3 (text) ====


==== //depot/projects/dtrace/src/cddl/contrib/opensolaris/lib/libdtrace/common/dt_program.h#2 (text) ====


==== //depot/projects/dtrace/src/cddl/contrib/opensolaris/lib/libdtrace/common/dt_provider.c#3 (text) ====


==== //depot/projects/dtrace/src/cddl/contrib/opensolaris/lib/libdtrace/common/dt_provider.h#2 (text) ====


==== //depot/projects/dtrace/src/cddl/contrib/opensolaris/lib/libdtrace/common/dt_regset.c#2 (text) ====


==== //depot/projects/dtrace/src/cddl/contrib/opensolaris/lib/libdtrace/common/dt_regset.h#2 (text) ====


==== //depot/projects/dtrace/src/cddl/contrib/opensolaris/lib/libdtrace/common/dt_string.c#2 (text) ====


==== //depot/projects/dtrace/src/cddl/contrib/opensolaris/lib/libdtrace/common/dt_string.h#2 (text) ====


==== //depot/projects/dtrace/src/cddl/contrib/opensolaris/lib/libdtrace/common/dt_strtab.c#2 (text) ====


==== //depot/projects/dtrace/src/cddl/contrib/opensolaris/lib/libdtrace/common/dt_strtab.h#2 (text) ====


==== //depot/projects/dtrace/src/cddl/contrib/opensolaris/lib/libdtrace/common/dt_subr.c#3 (text) ====


==== //depot/projects/dtrace/src/cddl/contrib/opensolaris/lib/libdtrace/common/dt_work.c#3 (text) ====


==== //depot/projects/dtrace/src/cddl/contrib/opensolaris/lib/libdtrace/common/dt_xlator.c#2 (text) ====


==== //depot/projects/dtrace/src/cddl/contrib/opensolaris/lib/libdtrace/common/dt_xlator.h#2 (text) ====


==== //depot/projects/dtrace/src/cddl/contrib/opensolaris/lib/libdtrace/common/dtrace.h#3 (text) ====


==== //depot/projects/dtrace/src/cddl/contrib/opensolaris/lib/libdtrace/common/mkerrtags.sh#3 (text) ====


==== //depot/projects/dtrace/src/cddl/contrib/opensolaris/lib/libdtrace/common/mknames.sh#3 (text) ====


==== //depot/projects/dtrace/src/cddl/contrib/opensolaris/lib/libgen/common/gmatch.c#3 (text) ====


==== //depot/projects/dtrace/src/cddl/contrib/opensolaris/tools/ctf/common/ctf_headers.h#2 (text) ====


==== //depot/projects/dtrace/src/cddl/contrib/opensolaris/tools/ctf/common/list.c#3 (text) ====


==== //depot/projects/dtrace/src/cddl/contrib/opensolaris/tools/ctf/common/list.h#2 (text) ====


==== //depot/projects/dtrace/src/cddl/contrib/opensolaris/tools/ctf/common/memory.c#3 (text) ====


==== //depot/projects/dtrace/src/cddl/contrib/opensolaris/tools/ctf/common/memory.h#2 (text) ====


==== //depot/projects/dtrace/src/cddl/contrib/opensolaris/tools/ctf/common/symbol.c#2 (text) ====


==== //depot/projects/dtrace/src/cddl/contrib/opensolaris/tools/ctf/common/symbol.h#2 (text) ====


==== //depot/projects/dtrace/src/cddl/contrib/opensolaris/tools/ctf/common/utils.c#2 (text) ====


==== //depot/projects/dtrace/src/cddl/contrib/opensolaris/tools/ctf/common/utils.h#2 (text) ====


==== //depot/projects/dtrace/src/cddl/contrib/opensolaris/tools/ctf/cvt/alist.c#3 (text) ====


==== //depot/projects/dtrace/src/cddl/contrib/opensolaris/tools/ctf/cvt/alist.h#3 (text) ====


==== //depot/projects/dtrace/src/cddl/contrib/opensolaris/tools/ctf/cvt/barrier.c#3 (text) ====


==== //depot/projects/dtrace/src/cddl/contrib/opensolaris/tools/ctf/cvt/barrier.h#3 (text) ====


==== //depot/projects/dtrace/src/cddl/contrib/opensolaris/tools/ctf/cvt/compare.c#2 (text) ====


==== //depot/projects/dtrace/src/cddl/contrib/opensolaris/tools/ctf/cvt/ctf.c#3 (text) ====


==== //depot/projects/dtrace/src/cddl/contrib/opensolaris/tools/ctf/cvt/ctfconvert.c#3 (text) ====


==== //depot/projects/dtrace/src/cddl/contrib/opensolaris/tools/ctf/cvt/ctfmerge.c#3 (text) ====


==== //depot/projects/dtrace/src/cddl/contrib/opensolaris/tools/ctf/cvt/ctfmerge.h#2 (text) ====


==== //depot/projects/dtrace/src/cddl/contrib/opensolaris/tools/ctf/cvt/ctftools.h#3 (text) ====


==== //depot/projects/dtrace/src/cddl/contrib/opensolaris/tools/ctf/cvt/dwarf.c#3 (text) ====


==== //depot/projects/dtrace/src/cddl/contrib/opensolaris/tools/ctf/cvt/fifo.c#2 (text) ====


==== //depot/projects/dtrace/src/cddl/contrib/opensolaris/tools/ctf/cvt/fifo.h#2 (text) ====


==== //depot/projects/dtrace/src/cddl/contrib/opensolaris/tools/ctf/cvt/fixup_tdescs.c#3 (text+ko) ====


==== //depot/projects/dtrace/src/cddl/contrib/opensolaris/tools/ctf/cvt/hash.c#3 (text) ====


==== //depot/projects/dtrace/src/cddl/contrib/opensolaris/tools/ctf/cvt/hash.h#2 (text) ====


==== //depot/projects/dtrace/src/cddl/contrib/opensolaris/tools/ctf/cvt/iidesc.c#3 (text) ====


==== //depot/projects/dtrace/src/cddl/contrib/opensolaris/tools/ctf/cvt/input.c#3 (text) ====


==== //depot/projects/dtrace/src/cddl/contrib/opensolaris/tools/ctf/cvt/merge.c#3 (text) ====


==== //depot/projects/dtrace/src/cddl/contrib/opensolaris/tools/ctf/cvt/output.c#3 (text) ====


==== //depot/projects/dtrace/src/cddl/contrib/opensolaris/tools/ctf/cvt/st_parse.c#3 (text) ====


==== //depot/projects/dtrace/src/cddl/contrib/opensolaris/tools/ctf/cvt/stabs.c#3 (text) ====


==== //depot/projects/dtrace/src/cddl/contrib/opensolaris/tools/ctf/cvt/stack.c#2 (text) ====


==== //depot/projects/dtrace/src/cddl/contrib/opensolaris/tools/ctf/cvt/stack.h#2 (text) ====


==== //depot/projects/dtrace/src/cddl/contrib/opensolaris/tools/ctf/cvt/strtab.c#3 (text) ====


==== //depot/projects/dtrace/src/cddl/contrib/opensolaris/tools/ctf/cvt/strtab.h#3 (text) ====


==== //depot/projects/dtrace/src/cddl/contrib/opensolaris/tools/ctf/cvt/tdata.c#3 (text) ====


==== //depot/projects/dtrace/src/cddl/contrib/opensolaris/tools/ctf/cvt/traverse.c#3 (text) ====


==== //depot/projects/dtrace/src/cddl/contrib/opensolaris/tools/ctf/cvt/traverse.h#3 (text) ====


==== //depot/projects/dtrace/src/cddl/contrib/opensolaris/tools/ctf/cvt/util.c#3 (text) ====


==== //depot/projects/dtrace/src/cddl/contrib/opensolaris/tools/ctf/dump/dump.c#3 (text) ====


==== //depot/projects/dtrace/src/sys/fs/unionfs/union.h#7 (text+ko) ====

@@ -33,7 +33,7 @@
  * SUCH DAMAGE.
  *
  *	@(#)union.h	8.9 (Berkeley) 12/10/94
- * $FreeBSD: src/sys/fs/unionfs/union.h,v 1.36 2007/10/14 13:55:38 daichi Exp $
+ * $FreeBSD: src/sys/fs/unionfs/union.h,v 1.37 2008/04/25 09:38:48 daichi Exp $
  */
 
 #ifdef _KERNEL
@@ -83,7 +83,12 @@
 	struct vnode   *un_uppervp;		/* upper side vnode */
 	struct vnode   *un_dvp;			/* parent unionfs vnode */
 	struct vnode   *un_vnode;		/* Back pointer */
-	LIST_HEAD(, unionfs_node_status) un_unshead;  /* unionfs status head */
+	LIST_HEAD(, unionfs_node_status) un_unshead;
+						/* unionfs status head */
+	LIST_HEAD(unionfs_node_hashhead, unionfs_node) *un_hashtbl;
+						/* dir vnode hash table */
+	LIST_ENTRY(unionfs_node)   un_hash;	/* hash list entry */
+	u_long		un_hashmask;		/* bit mask */
 	char           *un_path;		/* path */
 	int		un_flag;		/* unionfs node flag */
 };

==== //depot/projects/dtrace/src/sys/fs/unionfs/union_subr.c#15 (text+ko) ====

@@ -33,7 +33,7 @@
  * SUCH DAMAGE.
  *
  *	@(#)union_subr.c	8.20 (Berkeley) 5/20/95
- * $FreeBSD: src/sys/fs/unionfs/union_subr.c,v 1.100 2008/04/06 20:08:50 attilio Exp $
+ * $FreeBSD: src/sys/fs/unionfs/union_subr.c,v 1.102 2008/04/25 09:38:48 daichi Exp $
  */
 
 #include <sys/param.h>
@@ -60,6 +60,9 @@
 
 #include <fs/unionfs/union.h>
 
+#define NUNIONFSNODECACHE 16
+
+static MALLOC_DEFINE(M_UNIONFSHASH, "UNIONFS hash", "UNIONFS hash table");
 MALLOC_DEFINE(M_UNIONFSNODE, "UNIONFS node", "UNIONFS vnode private part");
 MALLOC_DEFINE(M_UNIONFSPATH, "UNIONFS path", "UNIONFS path private part");
 
@@ -82,7 +85,118 @@
 	return (0);
 }
 
+static struct unionfs_node_hashhead *
+unionfs_get_hashhead(struct vnode *dvp, char *path)
+{
+	int		count;
+	char		hash;
+	struct unionfs_node *unp;
+
+	hash = 0;
+	unp = VTOUNIONFS(dvp);
+	if (path != NULL) {
+		for (count = 0; path[count]; count++)
+			hash += path[count];
+	}
+
+	return (&(unp->un_hashtbl[hash & (unp->un_hashmask)]));
+}
+
+/*
+ * Get the cached vnode. (only VDIR)
+ */
+static struct vnode *
+unionfs_get_cached_vdir(struct vnode *uvp, struct vnode *lvp,
+			struct vnode *dvp, char *path)
+{
+	struct unionfs_node_hashhead *hd;
+	struct unionfs_node *unp;
+	struct vnode   *vp;
+
+	KASSERT((uvp == NULLVP || uvp->v_type == VDIR),
+	        ("unionfs_get_cached_vdir: v_type != VDIR"));
+	KASSERT((lvp == NULLVP || lvp->v_type == VDIR),
+	        ("unionfs_get_cached_vdir: v_type != VDIR"));
+
+	VI_LOCK(dvp);
+	hd = unionfs_get_hashhead(dvp, path);
+	LIST_FOREACH(unp, hd, un_hash) {
+		if (!strcmp(unp->un_path, path)) {
+			vp = UNIONFSTOV(unp);
+			VI_LOCK_FLAGS(vp, MTX_DUPOK);
+			VI_UNLOCK(dvp);
+			vp->v_iflag &= ~VI_OWEINACT;
+			if ((vp->v_iflag & (VI_DOOMED | VI_DOINGINACT)) != 0) {
+				VI_UNLOCK(vp);
+				vp = NULLVP;
+			} else
+				VI_UNLOCK(vp);
+			return (vp);
+		}
+	}
+	VI_UNLOCK(dvp);
+
+	return (NULLVP);
+}
+
+/*
+ * Add the new vnode into cache. (only VDIR)
+ */
+static struct vnode *
+unionfs_ins_cached_vdir(struct unionfs_node *uncp,
+			struct vnode *dvp, char *path)
+{
+	struct unionfs_node_hashhead *hd;
+	struct unionfs_node *unp;
+	struct vnode   *vp;
+
+	KASSERT((uncp->un_uppervp==NULLVP || uncp->un_uppervp->v_type==VDIR),
+	        ("unionfs_ins_cached_vdir: v_type != VDIR"));
+	KASSERT((uncp->un_lowervp==NULLVP || uncp->un_lowervp->v_type==VDIR),
+	        ("unionfs_ins_cached_vdir: v_type != VDIR"));
+
+	VI_LOCK(dvp);
+	hd = unionfs_get_hashhead(dvp, path);
+	LIST_FOREACH(unp, hd, un_hash) {
+		if (!strcmp(unp->un_path, path)) {
+			vp = UNIONFSTOV(unp);
+			VI_LOCK_FLAGS(vp, MTX_DUPOK);
+			vp->v_iflag &= ~VI_OWEINACT;
+			if ((vp->v_iflag & (VI_DOOMED | VI_DOINGINACT)) != 0) {
+				LIST_INSERT_HEAD(hd, uncp, un_hash);
+				VI_UNLOCK(vp);
+				vp = NULLVP;
+			} else
+				VI_UNLOCK(vp);
+			VI_UNLOCK(dvp);
+			return (vp);
+		}
+	}
+
+	LIST_INSERT_HEAD(hd, uncp, un_hash);
+	VI_UNLOCK(dvp);
+
+	return (NULLVP);
+}
+
 /*
+ * Remove the vnode. (only VDIR)
+ */
+static void
+unionfs_rem_cached_vdir(struct unionfs_node *unp, struct vnode *dvp)
+{
+	KASSERT((unp != NULL), ("unionfs_rem_cached_vdir: null node"));
+	KASSERT((dvp != NULLVP),
+	    ("unionfs_rem_cached_vdir: null parent vnode"));
+	KASSERT((unp->un_hash.le_prev != NULL),
+	    ("unionfs_rem_cached_vdir: null hash"));
+
+	VI_LOCK(dvp);
+	LIST_REMOVE(unp, un_hash);
+	VI_UNLOCK(dvp);
+}
+
+/*
  * Make a new or get existing unionfs node.
  * 
  * uppervp and lowervp should be unlocked. Because if new unionfs vnode is
@@ -100,21 +214,36 @@
 	struct vnode   *vp;
 	int		error;
 	int		lkflags;
+	enum vtype	vt;
 	char	       *path;
 
 	ump = MOUNTTOUNIONFSMOUNT(mp);
 	lkflags = (cnp ? cnp->cn_lkflags : 0);
 	path = (cnp ? cnp->cn_nameptr : NULL);
+	*vpp = NULLVP;
 
 	if (uppervp == NULLVP && lowervp == NULLVP)
 		panic("unionfs_nodeget: upper and lower is null");
 
+	vt = (uppervp != NULLVP ? uppervp->v_type : lowervp->v_type);
+
 	/* If it has no ISLASTCN flag, path check is skipped. */
 	if (cnp && !(cnp->cn_flags & ISLASTCN))
 		path = NULL;
 
+	/* check the vdir cache */
+	if (path != NULL && dvp != NULLVP && vt == VDIR) {
+		vp = unionfs_get_cached_vdir(uppervp, lowervp, dvp, path);
+		if (vp != NULLVP) {
+			vref(vp);
+			*vpp = vp;
+			goto unionfs_nodeget_out;
+		}
+	}
+
 	if ((uppervp == NULLVP || ump->um_uppervp != uppervp) ||
 	    (lowervp == NULLVP || ump->um_lowervp != lowervp)) {
+		/* dvp will be NULLVP only in case of root vnode. */
 		if (dvp == NULLVP)
 			return (EINVAL);
 	}
@@ -144,6 +273,10 @@
 	if (lowervp != NULLVP)
 		vref(lowervp);
 
+	if (vt == VDIR)
+		unp->un_hashtbl = hashinit(NUNIONFSNODECACHE, M_UNIONFSHASH,
+		    &(unp->un_hashmask));
+
 	unp->un_vnode = vp;
 	unp->un_uppervp = uppervp;
 	unp->un_lowervp = lowervp;
@@ -159,18 +292,36 @@
 		bcopy(cnp->cn_nameptr, unp->un_path, cnp->cn_namelen);
 		unp->un_path[cnp->cn_namelen] = '\0';
 	}
-	vp->v_type = (uppervp != NULLVP ? uppervp->v_type : lowervp->v_type);
+	vp->v_type = vt;
 	vp->v_data = unp;
 
 	if ((uppervp != NULLVP && ump->um_uppervp == uppervp) &&
 	    (lowervp != NULLVP && ump->um_lowervp == lowervp))
 		vp->v_vflag |= VV_ROOT;
 
+	if (path != NULL && dvp != NULLVP && vt == VDIR)
+		*vpp = unionfs_ins_cached_vdir(unp, dvp, path);
+	if ((*vpp) != NULLVP) {
+		if (dvp != NULLVP)
+			vrele(dvp);
+		if (uppervp != NULLVP)
+			vrele(uppervp);
+		if (lowervp != NULLVP)
+			vrele(lowervp);
+
+		unp->un_uppervp = NULLVP;
+		unp->un_lowervp = NULLVP;
+		unp->un_dvp = NULLVP;
+		vrele(vp);
+		vp = *vpp;
+		vref(vp);
+	} else
+		*vpp = vp;
+
+unionfs_nodeget_out:
 	if (lkflags & LK_TYPE_MASK)
 		vn_lock(vp, lkflags | LK_RETRY);
 
-	*vpp = vp;
-
 	return (0);
 }
 
@@ -185,6 +336,7 @@
 	struct unionfs_node_status *unsp, *unsp_tmp;
 	struct vnode   *lvp;
 	struct vnode   *uvp;
+	struct vnode   *dvp;
 
 	/*
 	 * Use the interlock to protect the clearing of v_data to
@@ -194,6 +346,7 @@
 	unp = VTOUNIONFS(vp);
 	lvp = unp->un_lowervp;
 	uvp = unp->un_uppervp;
+	dvp = unp->un_dvp;
 	unp->un_lowervp = unp->un_uppervp = NULLVP;
 
 	vp->v_vnlock = &(vp->v_lock);
@@ -205,6 +358,9 @@
 		VOP_UNLOCK(uvp, 0);
 	vp->v_object = NULL;
 
+	if (unp->un_path != NULL && dvp != NULLVP && vp->v_type == VDIR)
+		unionfs_rem_cached_vdir(unp, dvp);
+
 	if (lvp != NULLVP) {
 		vfslocked = VFS_LOCK_GIANT(lvp->v_mount);
 		vrele(lvp);
@@ -215,17 +371,20 @@
 		vrele(uvp);
 		VFS_UNLOCK_GIANT(vfslocked);
 	}
-	if (unp->un_dvp != NULLVP) {
-		vfslocked = VFS_LOCK_GIANT(unp->un_dvp->v_mount);
-		vrele(unp->un_dvp);
+	if (dvp != NULLVP) {
+		vfslocked = VFS_LOCK_GIANT(dvp->v_mount);
+		vrele(dvp);
 		VFS_UNLOCK_GIANT(vfslocked);
 		unp->un_dvp = NULLVP;
 	}
-	if (unp->un_path) {
+	if (unp->un_path != NULL) {
 		free(unp->un_path, M_UNIONFSPATH);
 		unp->un_path = NULL;
 	}
 
+	if (unp->un_hashtbl != NULL)
+		hashdestroy(unp->un_hashtbl, M_UNIONFSHASH, unp->un_hashmask);
+
 	LIST_FOREACH_SAFE(unsp, &(unp->un_unshead), uns_list, unsp_tmp) {
 		LIST_REMOVE(unsp, uns_list);
 		free(unsp, M_TEMP);
@@ -541,10 +700,12 @@
 	unsigned	count, lockrec;
 	struct vnode   *vp;
 	struct vnode   *lvp;
+	struct vnode   *dvp;
 
 	vp = UNIONFSTOV(unp);
 	lvp = unp->un_lowervp;
 	ASSERT_VOP_ELOCKED(lvp, "unionfs_node_update");
+	dvp = unp->un_dvp;
 
 	/*
 	 * lock update
@@ -556,6 +717,19 @@
 	lockrec = lvp->v_vnlock->lk_recurse;
 	for (count = 0; count < lockrec; count++)
 		vn_lock(uvp, LK_EXCLUSIVE | LK_CANRECURSE | LK_RETRY);
+
+	/*
+	 * cache update
+	 */
+	if (unp->un_path != NULL && dvp != NULLVP && vp->v_type == VDIR) {
+		static struct unionfs_node_hashhead *hd;
+
+		VI_LOCK(dvp);
+		hd = unionfs_get_hashhead(dvp, unp->un_path);
+		LIST_REMOVE(unp, un_hash);
+		LIST_INSERT_HEAD(hd, unp, un_hash);
+		VI_UNLOCK(dvp);
+	}
 }
 
 /*
@@ -989,8 +1163,14 @@
 		uio.uio_resid = iov.iov_len;
 
 		error = VOP_READDIR(lvp, &uio, cred, &eofflag, NULL, NULL);
-		if (error)
+		if (error != 0)
+			break;
+		if (eofflag == 0 && uio.uio_resid == sizeof(buf)) {
+#ifdef DIAGNOSTIC
+			panic("bad readdir response from lower FS.");
+#endif
 			break;
+		}
 
 		edp = (struct dirent*)&buf[sizeof(buf) - uio.uio_resid];
 		for (dp = (struct dirent*)buf; !error && dp < edp;

==== //depot/projects/dtrace/src/sys/fs/unionfs/union_vnops.c#15 (text+ko) ====

@@ -34,7 +34,7 @@
  * SUCH DAMAGE.
  *
  *	@(#)union_vnops.c	8.32 (Berkeley) 6/23/95
- * $FreeBSD: src/sys/fs/unionfs/union_vnops.c,v 1.153 2008/02/25 18:45:56 attilio Exp $
+ * $FreeBSD: src/sys/fs/unionfs/union_vnops.c,v 1.154 2008/04/25 09:44:47 daichi Exp $
  *
  */
 
@@ -1165,6 +1165,9 @@
 		}
 	}
 
+	if (rfvp == rtvp)
+		goto unionfs_rename_abort;
+
 	if (needrelookup != 0) {
 		if ((error = vn_lock(fdvp, LK_EXCLUSIVE)) != 0)
 			goto unionfs_rename_abort;
@@ -1192,10 +1195,6 @@
 			cache_purge(fdvp);
 	}
 
-	if (fdvp != rfdvp)
-		vrele(fdvp);
-	if (fvp != rfvp)
-		vrele(fvp);
 	if (ltdvp != NULLVP)
 		VOP_UNLOCK(ltdvp, 0);
 	if (tdvp != rtdvp)
@@ -1208,27 +1207,31 @@
 		else
 			vrele(tvp);
 	}
+	if (fdvp != rfdvp)
+		vrele(fdvp);
+	if (fvp != rfvp)
+		vrele(fvp);
 
 	UNIONFS_INTERNAL_DEBUG("unionfs_rename: leave (%d)\n", error);
 
 	return (error);
 
 unionfs_rename_abort:
-	if (fdvp != rfdvp)
-		vrele(rfdvp);
-	if (fvp != rfvp)
-		vrele(rfvp);
+	vput(tdvp);
 	if (tdvp != rtdvp)
 		vrele(rtdvp);
-	vput(tdvp);
-	if (tvp != rtvp && rtvp != NULLVP)
-		vrele(rtvp);
 	if (tvp != NULLVP) {
 		if (tdvp != tvp)
 			vput(tvp);
 		else
 			vrele(tvp);
 	}
+	if (tvp != rtvp && rtvp != NULLVP)
+		vrele(rtvp);
+	if (fdvp != rfdvp)
+		vrele(rfdvp);
+	if (fvp != rfvp)
+		vrele(rfvp);
 	vrele(fdvp);
 	vrele(fvp);
 


More information about the p4-projects mailing list