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