Date: Fri, 25 Apr 2008 09:54:48 GMT From: John Birrell <jb@FreeBSD.org> To: Perforce Change Reviews <perforce@freebsd.org> Subject: PERFORCE change 140595 for review Message-ID: <200804250954.m3P9smKH011763@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=140595 Change 140595 by jb@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);
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200804250954.m3P9smKH011763>