From owner-p4-projects@FreeBSD.ORG Thu May 24 16:47:27 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id E4FE916A469; Thu, 24 May 2007 16:47:26 +0000 (UTC) X-Original-To: perforce@FreeBSD.org Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id B0F6D16A400 for ; Thu, 24 May 2007 16:47:26 +0000 (UTC) (envelope-from lulf@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 9E25E13C45A for ; Thu, 24 May 2007 16:47:26 +0000 (UTC) (envelope-from lulf@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.8/8.13.8) with ESMTP id l4OGlQVw038846 for ; Thu, 24 May 2007 16:47:26 GMT (envelope-from lulf@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.8/8.13.8/Submit) id l4OGlPZ2038819 for perforce@freebsd.org; Thu, 24 May 2007 16:47:25 GMT (envelope-from lulf@FreeBSD.org) Date: Thu, 24 May 2007 16:47:25 GMT Message-Id: <200705241647.l4OGlPZ2038819@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to lulf@FreeBSD.org using -f From: Ulf Lilleengen To: Perforce Change Reviews Cc: Subject: PERFORCE change 120322 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 24 May 2007 16:47:27 -0000 http://perforce.freebsd.org/chv.cgi?CH=120322 Change 120322 by lulf@lulf_vimes on 2007/05/24 16:47:07 - Integrate from Lukas. - RAID5 Rebuild now works in the new event system. - Beeing able to check parity comes in next commit. - Also fixes small issues i got with gcc 4.2 Affected files ... .. //depot/projects/soc2007/lulf/gvinum_fixup/Makefile#2 integrate .. //depot/projects/soc2007/lulf/gvinum_fixup/Makefile.inc1#3 integrate .. //depot/projects/soc2007/lulf/gvinum_fixup/sbin/gvinum/gvinum.c#3 edit .. //depot/projects/soc2007/lulf/gvinum_fixup/sys/conf/Makefile.amd64#2 integrate .. //depot/projects/soc2007/lulf/gvinum_fixup/sys/conf/Makefile.arm#2 integrate .. //depot/projects/soc2007/lulf/gvinum_fixup/sys/conf/Makefile.i386#2 integrate .. //depot/projects/soc2007/lulf/gvinum_fixup/sys/conf/Makefile.ia64#2 integrate .. //depot/projects/soc2007/lulf/gvinum_fixup/sys/conf/Makefile.pc98#2 integrate .. //depot/projects/soc2007/lulf/gvinum_fixup/sys/conf/Makefile.powerpc#2 integrate .. //depot/projects/soc2007/lulf/gvinum_fixup/sys/conf/Makefile.sparc64#2 integrate .. //depot/projects/soc2007/lulf/gvinum_fixup/sys/conf/Makefile.sun4v#2 integrate .. //depot/projects/soc2007/lulf/gvinum_fixup/sys/conf/NOTES#4 integrate .. //depot/projects/soc2007/lulf/gvinum_fixup/sys/conf/files#5 integrate .. //depot/projects/soc2007/lulf/gvinum_fixup/sys/conf/kern.mk#2 integrate .. //depot/projects/soc2007/lulf/gvinum_fixup/sys/conf/kern.pre.mk#3 integrate .. //depot/projects/soc2007/lulf/gvinum_fixup/sys/conf/kmod.mk#2 integrate .. //depot/projects/soc2007/lulf/gvinum_fixup/sys/conf/options#3 integrate .. //depot/projects/soc2007/lulf/gvinum_fixup/sys/geom/part/g_part.c#4 integrate .. //depot/projects/soc2007/lulf/gvinum_fixup/sys/geom/vinum/geom_vinum.c#9 edit .. //depot/projects/soc2007/lulf/gvinum_fixup/sys/geom/vinum/geom_vinum.h#7 edit .. //depot/projects/soc2007/lulf/gvinum_fixup/sys/geom/vinum/geom_vinum_init.c#3 edit .. //depot/projects/soc2007/lulf/gvinum_fixup/sys/geom/vinum/geom_vinum_plex.c#4 edit .. //depot/projects/soc2007/lulf/gvinum_fixup/sys/geom/vinum/geom_vinum_raid5.c#3 edit .. //depot/projects/soc2007/lulf/gvinum_fixup/sys/geom/vinum/geom_vinum_subr.c#5 edit .. //depot/projects/soc2007/lulf/gvinum_fixup/sys/geom/vinum/geom_vinum_var.h#8 edit .. //depot/projects/soc2007/lulf/gvinum_fixup/sys/i386/Makefile#2 integrate .. //depot/projects/soc2007/lulf/gvinum_fixup/sys/i386/i386/busdma_machdep.c#3 integrate .. //depot/projects/soc2007/lulf/gvinum_fixup/sys/i386/i386/elf_machdep.c#2 integrate .. //depot/projects/soc2007/lulf/gvinum_fixup/sys/i386/i386/machdep.c#2 integrate .. //depot/projects/soc2007/lulf/gvinum_fixup/sys/i386/i386/mp_machdep.c#3 integrate .. //depot/projects/soc2007/lulf/gvinum_fixup/sys/i386/i386/pmap.c#3 integrate .. //depot/projects/soc2007/lulf/gvinum_fixup/sys/i386/i386/sys_machdep.c#3 integrate .. //depot/projects/soc2007/lulf/gvinum_fixup/sys/i386/i386/vm_machdep.c#3 integrate .. //depot/projects/soc2007/lulf/gvinum_fixup/sys/i386/include/proc.h#2 integrate .. //depot/projects/soc2007/lulf/gvinum_fixup/sys/i386/include/smp.h#2 integrate .. //depot/projects/soc2007/lulf/gvinum_fixup/sys/i386/linux/linux_machdep.c#2 integrate .. //depot/projects/soc2007/lulf/gvinum_fixup/sys/kern/Make.tags.inc#2 integrate .. //depot/projects/soc2007/lulf/gvinum_fixup/sys/kern/imgact_elf.c#2 integrate .. //depot/projects/soc2007/lulf/gvinum_fixup/sys/kern/init_main.c#2 integrate .. //depot/projects/soc2007/lulf/gvinum_fixup/sys/kern/kern_acct.c#2 integrate .. //depot/projects/soc2007/lulf/gvinum_fixup/sys/kern/kern_clock.c#2 integrate .. //depot/projects/soc2007/lulf/gvinum_fixup/sys/kern/kern_exec.c#2 integrate .. //depot/projects/soc2007/lulf/gvinum_fixup/sys/kern/kern_exit.c#2 integrate .. //depot/projects/soc2007/lulf/gvinum_fixup/sys/kern/kern_fork.c#2 integrate .. //depot/projects/soc2007/lulf/gvinum_fixup/sys/kern/kern_lock.c#2 integrate .. //depot/projects/soc2007/lulf/gvinum_fixup/sys/kern/kern_malloc.c#3 integrate .. //depot/projects/soc2007/lulf/gvinum_fixup/sys/kern/kern_mib.c#2 integrate .. //depot/projects/soc2007/lulf/gvinum_fixup/sys/kern/kern_mutex.c#3 integrate .. //depot/projects/soc2007/lulf/gvinum_fixup/sys/kern/kern_resource.c#2 integrate .. //depot/projects/soc2007/lulf/gvinum_fixup/sys/kern/kern_rwlock.c#3 integrate .. //depot/projects/soc2007/lulf/gvinum_fixup/sys/kern/kern_sx.c#3 integrate .. //depot/projects/soc2007/lulf/gvinum_fixup/sys/kern/kern_synch.c#3 integrate .. //depot/projects/soc2007/lulf/gvinum_fixup/sys/kern/kern_thread.c#2 integrate .. //depot/projects/soc2007/lulf/gvinum_fixup/sys/kern/kern_timeout.c#2 integrate .. //depot/projects/soc2007/lulf/gvinum_fixup/sys/kern/subr_lock.c#2 integrate .. //depot/projects/soc2007/lulf/gvinum_fixup/sys/kern/subr_prof.c#2 integrate .. //depot/projects/soc2007/lulf/gvinum_fixup/sys/kern/subr_sleepqueue.c#2 integrate .. //depot/projects/soc2007/lulf/gvinum_fixup/sys/kern/subr_trap.c#2 integrate .. //depot/projects/soc2007/lulf/gvinum_fixup/sys/kern/subr_turnstile.c#2 integrate .. //depot/projects/soc2007/lulf/gvinum_fixup/sys/kern/subr_witness.c#3 integrate .. //depot/projects/soc2007/lulf/gvinum_fixup/sys/kern/uipc_domain.c#2 integrate .. //depot/projects/soc2007/lulf/gvinum_fixup/sys/kern/uipc_mbuf.c#2 integrate .. //depot/projects/soc2007/lulf/gvinum_fixup/sys/kern/uipc_sockbuf.c#3 integrate .. //depot/projects/soc2007/lulf/gvinum_fixup/sys/kern/uipc_socket.c#3 integrate .. //depot/projects/soc2007/lulf/gvinum_fixup/sys/kern/uipc_syscalls.c#4 integrate .. //depot/projects/soc2007/lulf/gvinum_fixup/sys/kern/uipc_usrreq.c#3 integrate .. //depot/projects/soc2007/lulf/gvinum_fixup/sys/kern/vfs_bio.c#3 integrate .. //depot/projects/soc2007/lulf/gvinum_fixup/sys/kern/vfs_default.c#2 integrate .. //depot/projects/soc2007/lulf/gvinum_fixup/sys/kern/vfs_subr.c#2 integrate .. //depot/projects/soc2007/lulf/gvinum_fixup/sys/kern/vfs_vnops.c#2 integrate .. //depot/projects/soc2007/lulf/gvinum_fixup/sys/kern/vnode_if.src#2 integrate .. //depot/projects/soc2007/lulf/gvinum_fixup/sys/sys/acct.h#2 integrate .. //depot/projects/soc2007/lulf/gvinum_fixup/sys/sys/callout.h#2 integrate .. //depot/projects/soc2007/lulf/gvinum_fixup/sys/sys/lockf.h#2 integrate .. //depot/projects/soc2007/lulf/gvinum_fixup/sys/sys/param.h#3 integrate .. //depot/projects/soc2007/lulf/gvinum_fixup/sys/sys/sx.h#3 integrate .. //depot/projects/soc2007/lulf/gvinum_fixup/sys/sys/sysctl.h#2 integrate .. //depot/projects/soc2007/lulf/gvinum_fixup/sys/sys/sysent.h#2 integrate .. //depot/projects/soc2007/lulf/gvinum_fixup/sys/sys/systm.h#2 integrate .. //depot/projects/soc2007/lulf/gvinum_fixup/sys/sys/vmmeter.h#2 integrate .. //depot/projects/soc2007/lulf/gvinum_fixup/sys/sys/vnode.h#2 integrate .. //depot/projects/soc2007/lulf/gvinum_fixup/sys/vm/swap_pager.c#3 integrate .. //depot/projects/soc2007/lulf/gvinum_fixup/sys/vm/uma_core.c#2 integrate .. //depot/projects/soc2007/lulf/gvinum_fixup/sys/vm/uma_int.h#2 integrate .. //depot/projects/soc2007/lulf/gvinum_fixup/sys/vm/vm_contig.c#3 integrate .. //depot/projects/soc2007/lulf/gvinum_fixup/sys/vm/vm_fault.c#2 integrate .. //depot/projects/soc2007/lulf/gvinum_fixup/sys/vm/vm_glue.c#2 integrate .. //depot/projects/soc2007/lulf/gvinum_fixup/sys/vm/vm_map.c#3 integrate .. //depot/projects/soc2007/lulf/gvinum_fixup/sys/vm/vm_meter.c#2 integrate .. //depot/projects/soc2007/lulf/gvinum_fixup/sys/vm/vm_mmap.c#2 integrate .. //depot/projects/soc2007/lulf/gvinum_fixup/sys/vm/vm_object.c#2 integrate .. //depot/projects/soc2007/lulf/gvinum_fixup/sys/vm/vm_page.c#3 integrate .. //depot/projects/soc2007/lulf/gvinum_fixup/sys/vm/vm_pageout.c#2 integrate .. //depot/projects/soc2007/lulf/gvinum_fixup/sys/vm/vm_pageq.c#2 integrate .. //depot/projects/soc2007/lulf/gvinum_fixup/sys/vm/vm_zeroidle.c#2 integrate .. //depot/projects/soc2007/lulf/gvinum_fixup/sys/vm/vnode_pager.c#2 integrate Differences ... ==== //depot/projects/soc2007/lulf/gvinum_fixup/Makefile#2 (text+ko) ==== @@ -1,5 +1,5 @@ # -# $FreeBSD: src/Makefile,v 1.340 2007/04/02 21:32:44 marcel Exp $ +# $FreeBSD: src/Makefile,v 1.341 2007/05/16 08:46:35 des Exp $ # # The user-driven targets are: # @@ -17,9 +17,14 @@ # kernel - buildkernel + installkernel. # doxygen - Build API documentation of the kernel, needs doxygen. # update - Convenient way to update your source tree (cvs). -# check-old - Print a list of old files/directories in the system. -# delete-old - Delete obsolete files and directories interactively. -# delete-old-libs - Delete obsolete libraries interactively. +# check-old - List obsolete directories/files/libraries. +# check-old-dirs - List obsolete directories. +# check-old-files - List obsolete files. +# check-old-libs - List obsolete libraries. +# delete-old - Delete obsolete directories/files/libraries. +# delete-old-dirs - Delete obsolete directories. +# delete-old-files - Delete obsolete files. +# delete-old-libs - Delete obsolete libraries. # # This makefile is simple by design. The FreeBSD make automatically reads # the /usr/share/mk/sys.mk unless the -m argument is specified on the @@ -70,8 +75,10 @@ # developer convenience only. They are intentionally not documented and # completely subject to change without notice. # -TGTS= all all-man buildenv buildenvvars buildkernel buildworld check-old \ - checkdpadd clean cleandepend cleandir delete-old delete-old-libs \ +TGTS= all all-man buildenv buildenvvars buildkernel buildworld \ + check-old check-old-dirs check-old-files check-old-libs \ + checkdpadd clean cleandepend cleandir \ + delete-old delete-old-dirs delete-old-files delete-old-libs \ depend distribute distributeworld distrib-dirs distribution doxygen \ everything hierarchy install installcheck installkernel \ installkernel.debug reinstallkernel reinstallkernel.debug \ ==== //depot/projects/soc2007/lulf/gvinum_fixup/Makefile.inc1#3 (text+ko) ==== @@ -1,5 +1,5 @@ # -# $FreeBSD: src/Makefile.inc1,v 1.572 2007/04/17 15:52:36 pjd Exp $ +# $FreeBSD: src/Makefile.inc1,v 1.581 2007/05/19 20:34:29 des Exp $ # # Make command line options: # -DNO_CLEANDIR run ${MAKE} clean, instead of ${MAKE} cleandir @@ -994,21 +994,31 @@ # libraries: cd ${.CURDIR}; \ + ${MAKE} -f Makefile.inc1 _prereq_libs; \ ${MAKE} -f Makefile.inc1 _startup_libs; \ ${MAKE} -f Makefile.inc1 _prebuild_libs; \ ${MAKE} -f Makefile.inc1 _generic_libs; +# +# static libgcc.a prerequisite for shared libc +# +_prereq_libs= gnu/lib/libgcc + # These dependencies are not automatically generated: # -# gnu/lib/csu, gnu/lib/libgcc and lib/csu must be built before all -# shared libraries for ELF. +# gnu/lib/csu, gnu/lib/libgcc, lib/csu and lib/libc must be built before +# all shared libraries for ELF. # -_startup_libs= gnu/lib/csu gnu/lib/libgcc +_startup_libs= gnu/lib/csu .if exists(${.CURDIR}/lib/csu/${MACHINE_ARCH}-elf) _startup_libs+= lib/csu/${MACHINE_ARCH}-elf .else _startup_libs+= lib/csu/${MACHINE_ARCH} .endif +_startup_libs+= gnu/lib/libgcc +_startup_libs+= lib/libc + +gnu/lib/libgcc__L: lib/libc__L _prebuild_libs= ${_kerberos5_lib_libasn1} ${_kerberos5_lib_libkrb5} \ ${_kerberos5_lib_libroken} \ @@ -1016,7 +1026,7 @@ ${_lib_libgssapi} ${_lib_libipx} \ lib/libkiconv lib/libkvm lib/libmd \ lib/ncurses/ncurses lib/ncurses/ncursesw \ - lib/libopie lib/libpam lib/libpthread \ + lib/libopie lib/libpam lib/${DEFAULT_THREAD_LIB} \ lib/libradius lib/libsbuf lib/libtacplus lib/libutil \ ${_lib_libypclnt} lib/libz lib/msun \ ${_secure_lib_libcrypto} ${_secure_lib_libssh} \ @@ -1068,6 +1078,18 @@ lib/libradius__L: lib/libmd__L .endif +.for _lib in ${_prereq_libs} +${_lib}__PL: .PHONY +.if exists(${.CURDIR}/${_lib}) + ${_+_}@${ECHODIR} "===> ${_lib} (obj,depend,all,install)"; \ + cd ${.CURDIR}/${_lib}; \ + ${MAKE} DIRPRFX=${_lib}/ obj; \ + ${MAKE} DIRPRFX=${_lib}/ depend; \ + ${MAKE} -DWITHOUT_PROFILE -DNO_PIC DIRPRFX=${_lib}/ all; \ + ${MAKE} -DWITHOUT_PROFILE -DNO_PIC DIRPRFX=${_lib}/ install +.endif +.endfor + .for _lib in ${_startup_libs} ${_prebuild_libs:Nlib/libpam} ${_generic_libs} ${_lib}__L: .PHONY .if exists(${.CURDIR}/${_lib}) @@ -1091,6 +1113,7 @@ ${MAKE} DIRPRFX=lib/libpam/ -D_NO_LIBPAM_SO_YET all; \ ${MAKE} DIRPRFX=lib/libpam/ -D_NO_LIBPAM_SO_YET install +_prereq_libs: ${_prereq_libs:S/$/__PL/} _startup_libs: ${_startup_libs:S/$/__L/} _prebuild_libs: ${_prebuild_libs:S/$/__L/} _generic_libs: ${_generic_libs:S/$/__L/} @@ -1114,7 +1137,10 @@ .include -.if make(delete-old) || make(delete-old-libs) || make(check-old) +.if make(check-old) || make(check-old-dirs) || \ + make(check-old-files) || make(check-old-libs) || \ + make(delete-old) || make(delete-old-dirs) || \ + make(delete-old-files) || make(delete-old-libs) # # check for / delete old files section @@ -1135,18 +1161,14 @@ delete-old-files: @echo ">>> Removing old files (only deletes safe to delete libs)" -.for file in ${OLD_FILES} # Ask for every old file if the user really wants to remove it. # It's annoying, but better safe than sorry. - @if [ -f "${DESTDIR}/${file}" -o -L "${DESTDIR}/${file}" ]; then \ - rm ${RM_I} "${DESTDIR}/${file}" || true; \ - if [ -f "${DESTDIR}/${file}" -o -L "${DESTDIR}/${file}" ]; then\ - echo "Removing schg flag on ${DESTDIR}/${file}"; \ - chflags noschg "${DESTDIR}/${file}"; \ - rm ${RM_I} "${DESTDIR}/${file}"; \ + @for file in ${OLD_FILES}; do \ + if [ -f "${DESTDIR}/$${file}" -o -L "${DESTDIR}/$${file}" ]; then \ + chflags noschg "${DESTDIR}/$${file}" 2>/dev/null || true; \ + rm ${RM_I} "${DESTDIR}/$${file}"; \ fi; \ - fi -.endfor + done # Remove catpages without corresponding manpages. @3<&0; \ find ${DESTDIR}/usr/share/man/cat* ! -type d | \ @@ -1161,11 +1183,11 @@ check-old-files: @echo ">>> Checking for old files" -.for file in ${OLD_FILES} - @if [ -f "${DESTDIR}/${file}" -o -L "${DESTDIR}/${file}" ]; then \ - echo "${DESTDIR}/${file}"; \ - fi -.endfor + @for file in ${OLD_FILES}; do \ + if [ -f "${DESTDIR}/$${file}" -o -L "${DESTDIR}/$${file}" ]; then \ + echo "${DESTDIR}/$${file}"; \ + fi; \ + done # Check for catpages without corresponding manpages. @find ${DESTDIR}/usr/share/man/cat* ! -type d | \ sed -ep -e's:${DESTDIR}/usr/share/man/cat:${DESTDIR}/usr/share/man/man:' | \ @@ -1179,51 +1201,42 @@ delete-old-libs: @echo ">>> Removing old libraries" @echo "${OLD_LIBS_MESSAGE}" | fmt -.for file in ${OLD_LIBS} - @if [ -f "${DESTDIR}/${file}" -o -L "${DESTDIR}/${file}" ]; then \ - rm ${RM_I} "${DESTDIR}/${file}" || true; \ - if [ -f "${DESTDIR}/${file}" -o -L "${DESTDIR}/${file}" ]; then\ - echo "Removing schg flag on ${DESTDIR}/${file}"; \ - chflags noschg "${DESTDIR}/${file}"; \ - rm ${RM_I} "${DESTDIR}/${file}"; \ + @for file in ${OLD_LIBS}; do \ + if [ -f "${DESTDIR}/$${file}" -o -L "${DESTDIR}/$${file}" ]; then \ + chflags noschg "${DESTDIR}/$${file}" 2>/dev/null || true; \ + rm ${RM_I} "${DESTDIR}/$${file}"; \ fi; \ - fi -.endfor + done @echo ">>> Old libraries removed" check-old-libs: @echo ">>> Checking for old libraries" -.for file in ${OLD_LIBS} - @if [ -f "${DESTDIR}/${file}" -o -L "${DESTDIR}/${file}" ]; then \ - echo "${DESTDIR}/${file}"; \ - fi -.endfor + @for file in ${OLD_LIBS}; do \ + if [ -f "${DESTDIR}/$${file}" -o -L "${DESTDIR}/$${file}" ]; then \ + echo "${DESTDIR}/$${file}"; \ + fi; \ + done delete-old-dirs: @echo ">>> Removing old directories" -.for dir in ${OLD_DIRS} -# Don't fail if an old directory isn't empty. - @if [ -d "${DESTDIR}/${dir}" ]; then \ - rmdir -v "${DESTDIR}/${dir}" || true; \ - else \ - if [ -L "${DESTDIR}/${dir}" ]; then \ - echo "${DESTDIR}/${dir} is a link, please remove everything manually."; \ + @for dir in ${OLD_DIRS}; do \ + if [ -d "${DESTDIR}/$${dir}" ]; then \ + rmdir -v "${DESTDIR}/$${dir}" || true; \ + elif [ -L "${DESTDIR}/$${dir}" ]; then \ + echo "${DESTDIR}/$${dir} is a link, please remove everything manually."; \ fi; \ - fi -.endfor + done @echo ">>> Old directories removed" check-old-dirs: @echo ">>> Checking for old directories" -.for dir in ${OLD_DIRS} - @if [ -d "${DESTDIR}/${dir}" ]; then \ - echo "${DESTDIR}/${dir}"; \ - else \ - if [ -L "${DESTDIR}/${dir}" ]; then \ - echo "${DESTDIR}/${dir} is a link, please remove everything manually."; \ + @for dir in ${OLD_DIRS}; do \ + if [ -d "${DESTDIR}/$${dir}" ]; then \ + echo "${DESTDIR}/$${dir}"; \ + elif [ -L "${DESTDIR}/$${dir}" ]; then \ + echo "${DESTDIR}/$${dir} is a link, please remove everything manually."; \ fi; \ - fi -.endfor + done delete-old: delete-old-files delete-old-dirs @echo "To remove old libraries run '${MAKE} delete-old-libs'." ==== //depot/projects/soc2007/lulf/gvinum_fixup/sbin/gvinum/gvinum.c#3 (text+ko) ==== @@ -554,8 +554,7 @@ gvinum_parityop(int argc, char **argv, int rebuild) { struct gctl_req *req; - int flags, i, rv; - off_t offset; + int flags, i; const char *errstr; char *op, *msg; @@ -592,7 +591,17 @@ return; } - do { + req = gctl_get_handle(); + gctl_ro_param(req, "class", -1, "VINUM"); + gctl_ro_param(req, "verb", -1, op); + gctl_ro_param(req, "flags", sizeof(int), &flags); + gctl_ro_param(req, "plex", -1, argv[0]); + + errstr = gctl_issue(req); + if (errstr) + warnx("%s\n", errstr); + gctl_free(req); +/* do { rv = 0; req = gctl_get_handle(); gctl_ro_param(req, "class", -1, "VINUM"); @@ -621,16 +630,16 @@ } fflush(stdout); - /* Clear the -f flag. */ + Clear the -f flag. flags &= ~GV_FLAG_F; - } while (rv >= 0); + } while (rv >= 0);*/ - if ((rv == 2) && (flags & GV_FLAG_V)) { +/* if ((rv == 2) && (flags & GV_FLAG_V)) { if (rebuild) printf("Rebuilt parity on %s\n", argv[0]); else printf("%s has correct parity\n", argv[0]); - } + }*/ } void ==== //depot/projects/soc2007/lulf/gvinum_fixup/sys/conf/Makefile.amd64#2 (text+ko) ==== @@ -2,7 +2,7 @@ # Copyright 1990 W. Jolitz # from: @(#)Makefile.i386 7.1 5/10/91 # from FreeBSD: src/sys/conf/Makefile.i386,v 1.255 2002/02/20 23:35:49 -# $FreeBSD: src/sys/conf/Makefile.amd64,v 1.22 2005/11/28 17:51:30 imp Exp $ +# $FreeBSD: src/sys/conf/Makefile.amd64,v 1.24 2007/05/16 17:23:53 wkoszek Exp $ # # Makefile for FreeBSD # ==== //depot/projects/soc2007/lulf/gvinum_fixup/sys/conf/Makefile.arm#2 (text+ko) ==== @@ -1,7 +1,7 @@ # Makefile.arm -- with config changes. # Copyright 1990 W. Jolitz # from: @(#)Makefile.i386 7.1 5/10/91 -# $FreeBSD: src/sys/conf/Makefile.arm,v 1.31 2006/07/24 22:09:47 cognet Exp $ +# $FreeBSD: src/sys/conf/Makefile.arm,v 1.33 2007/05/16 17:23:53 wkoszek Exp $ # # Makefile for FreeBSD # ==== //depot/projects/soc2007/lulf/gvinum_fixup/sys/conf/Makefile.i386#2 (text+ko) ==== @@ -1,7 +1,7 @@ # Makefile.i386 -- with config changes. # Copyright 1990 W. Jolitz # from: @(#)Makefile.i386 7.1 5/10/91 -# $FreeBSD: src/sys/conf/Makefile.i386,v 1.271 2006/01/29 03:32:19 nyan Exp $ +# $FreeBSD: src/sys/conf/Makefile.i386,v 1.273 2007/05/16 17:23:53 wkoszek Exp $ # # Makefile for FreeBSD # ==== //depot/projects/soc2007/lulf/gvinum_fixup/sys/conf/Makefile.ia64#2 (text+ko) ==== @@ -1,7 +1,7 @@ # Makefile.ia64 -- with config changes. # Copyright 1990 W. Jolitz # from: src/sys/conf/Makefile.alpha,v 1.76 -# $FreeBSD: src/sys/conf/Makefile.ia64,v 1.67 2005/11/28 17:51:31 imp Exp $ +# $FreeBSD: src/sys/conf/Makefile.ia64,v 1.69 2007/05/16 17:23:53 wkoszek Exp $ # # Makefile for FreeBSD # ==== //depot/projects/soc2007/lulf/gvinum_fixup/sys/conf/Makefile.pc98#2 (text+ko) ==== @@ -3,7 +3,7 @@ # Makefile.i386 -- with config changes. # Copyright 1990 W. Jolitz # from: @(#)Makefile.i386 7.1 5/10/91 -# $FreeBSD: src/sys/conf/Makefile.pc98,v 1.173 2006/01/29 03:32:19 nyan Exp $ +# $FreeBSD: src/sys/conf/Makefile.pc98,v 1.175 2007/05/16 17:23:53 wkoszek Exp $ # # Makefile for FreeBSD # ==== //depot/projects/soc2007/lulf/gvinum_fixup/sys/conf/Makefile.powerpc#2 (text+ko) ==== @@ -1,7 +1,7 @@ # Makefile.powerpc -- with config changes. # Copyright 1990 W. Jolitz # from: @(#)Makefile.i386 7.1 5/10/91 -# $FreeBSD: src/sys/conf/Makefile.powerpc,v 1.283 2005/11/28 17:51:31 imp Exp $ +# $FreeBSD: src/sys/conf/Makefile.powerpc,v 1.285 2007/05/16 17:23:54 wkoszek Exp $ # # Makefile for FreeBSD # ==== //depot/projects/soc2007/lulf/gvinum_fixup/sys/conf/Makefile.sparc64#2 (text+ko) ==== @@ -1,7 +1,7 @@ # Makefile.sparc64 -- with config changes. # Copyright 1990 W. Jolitz # from: @(#)Makefile.i386 7.1 5/10/91 -# $FreeBSD: src/sys/conf/Makefile.sparc64,v 1.38 2005/11/28 17:51:31 imp Exp $ +# $FreeBSD: src/sys/conf/Makefile.sparc64,v 1.40 2007/05/16 17:23:54 wkoszek Exp $ # # Makefile for FreeBSD # ==== //depot/projects/soc2007/lulf/gvinum_fixup/sys/conf/Makefile.sun4v#2 (text+ko) ==== @@ -1,7 +1,7 @@ # Makefile.sparc64 -- with config changes. # Copyright 1990 W. Jolitz # from: @(#)Makefile.i386 7.1 5/10/91 -# $FreeBSD: src/sys/conf/Makefile.sun4v,v 1.1 2006/10/05 06:14:24 kmacy Exp $ +# $FreeBSD: src/sys/conf/Makefile.sun4v,v 1.3 2007/05/16 17:23:54 wkoszek Exp $ # # Makefile for FreeBSD # ==== //depot/projects/soc2007/lulf/gvinum_fixup/sys/conf/NOTES#4 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/conf/NOTES,v 1.1424 2007/05/09 15:55:45 scottl Exp $ +# $FreeBSD: src/sys/conf/NOTES,v 1.1427 2007/05/16 17:19:47 scottl Exp $ # # NOTES -- Lines that can be cut/pasted into kernel and hints configs. # @@ -669,6 +669,7 @@ options NETGRAPH_BLUETOOTH_UBTBCMFW # ubtbcmfw(4) options NETGRAPH_BPF options NETGRAPH_BRIDGE +options NETGRAPH_CAR options NETGRAPH_CISCO options NETGRAPH_DEFLATE options NETGRAPH_DEVICE @@ -790,6 +791,7 @@ device wlan_tkip #802.11 TKIP support device wlan_xauth #802.11 external authenticator support device wlan_acl #802.11 MAC ACL support +device wlan_amrr #AMRR transmit rate control algorithm device token #Generic TokenRing device fddi #Generic FDDI device arcnet #Generic Arcnet @@ -1627,6 +1629,7 @@ device mlx # Mylex DAC960 device amr # AMI MegaRAID device mfi # LSI MegaRAID SAS +device mfip # LSI MegaRAID SAS passthrough, requires CAM options MFI_DEBUG # ==== //depot/projects/soc2007/lulf/gvinum_fixup/sys/conf/files#5 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/conf/files,v 1.1204 2007/05/09 07:07:24 scottl Exp $ +# $FreeBSD: src/sys/conf/files,v 1.1210 2007/05/22 12:00:31 mav Exp $ # # The long compile-with and dependency lines are required because of # limitations in config: backslash-newline doesn't work in strings, and @@ -340,6 +340,8 @@ contrib/pf/netinet/in4_cksum.c optional pf inet crypto/blowfish/bf_ecb.c optional ipsec ipsec_esp crypto/blowfish/bf_skey.c optional crypto | ipsec ipsec_esp +crypto/camellia/camellia.c optional crypto | ipsec ipsec_esp +crypto/camellia/camellia-api.c optional crypto | ipsec ipsec_esp crypto/des/des_ecb.c optional crypto | ipsec ipsec_esp | netsmb crypto/des/des_setkey.c optional crypto | ipsec ipsec_esp | netsmb crypto/rc4/rc4.c optional netgraph_mppc_encryption @@ -754,6 +756,7 @@ dev/mfi/mfi_pci.c optional mfi pci dev/mfi/mfi_disk.c optional mfi dev/mfi/mfi_linux.c optional mfi compat_linux +dev/mfi/mfi_cam.c optional mfip scbus dev/mii/acphy.c optional miibus | acphy dev/mii/amphy.c optional miibus | amphy dev/mii/bmtphy.c optional miibus | bmtphy @@ -1423,7 +1426,7 @@ kern/sched_4bsd.c optional sched_4bsd kern/sched_core.c optional sched_core kern/sched_ule.c optional sched_ule -kern/serdev_if.m optional puc | scc +kern/serdev_if.m standard kern/subr_acl_posix1e.c standard kern/subr_autoconf.c standard kern/subr_blist.c standard @@ -1582,6 +1585,8 @@ net/if_tun.c optional tun net/if_tap.c optional tap net/if_vlan.c optional vlan +net/mppcc.c optional netgraph_mppc_compression +net/mppcd.c optional netgraph_mppc_compression net/netisr.c standard net/ppp_deflate.c optional ppp_deflate net/ppp_tty.c optional ppp @@ -1740,6 +1745,7 @@ netgraph/ng_base.c optional netgraph netgraph/ng_bpf.c optional netgraph_bpf netgraph/ng_bridge.c optional netgraph_bridge +netgraph/ng_car.c optional netgraph_car netgraph/ng_cisco.c optional netgraph_cisco netgraph/ng_deflate.c optional netgraph_deflate netgraph/ng_device.c optional netgraph_device @@ -1821,10 +1827,12 @@ netinet/tcp_hostcache.c optional inet netinet/tcp_input.c optional inet netinet/tcp_output.c optional inet +netinet/tcp_reass.c optional inet netinet/tcp_sack.c optional inet netinet/tcp_subr.c optional inet netinet/tcp_syncache.c optional inet netinet/tcp_timer.c optional inet +netinet/tcp_timewait.c optional inet netinet/tcp_usrreq.c optional inet netinet/udp_usrreq.c optional inet netinet/libalias/alias.c optional libalias | netgraph_nat @@ -1842,6 +1850,7 @@ netinet6/esp_input.c optional ipsec ipsec_esp netinet6/esp_output.c optional ipsec ipsec_esp netinet6/esp_rijndael.c optional ipsec ipsec_esp +netinet6/esp_camellia.c optional ipsec ipsec_esp netinet6/frag6.c optional inet6 netinet6/icmp6.c optional inet6 netinet6/in6.c optional inet6 ==== //depot/projects/soc2007/lulf/gvinum_fixup/sys/conf/kern.mk#2 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/conf/kern.mk,v 1.50 2006/11/26 23:16:46 kmacy Exp $ +# $FreeBSD: src/sys/conf/kern.mk,v 1.51 2007/05/19 04:45:54 kan Exp $ # # Warning flags for compiling the kernel and components of the kernel. @@ -12,7 +12,7 @@ .else CWARNFLAGS?= -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes \ -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual \ - ${_wundef} -fformat-extensions + ${_wundef} -Wno-pointer-sign -fformat-extensions .if !defined(NO_UNDEF) _wundef= -Wundef .endif @@ -46,7 +46,7 @@ # a very small subset of float registers for integer divides. # .if ${MACHINE_ARCH} == "ia64" -CFLAGS+= -ffixed-r13 -mfixed-range=f32-f127 -mno-sdata +CFLAGS+= -ffixed-r13 -mfixed-range=f32-f127 -fpic #-mno-sdata INLINE_LIMIT?= 15000 .endif ==== //depot/projects/soc2007/lulf/gvinum_fixup/sys/conf/kern.pre.mk#3 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/conf/kern.pre.mk,v 1.82 2007/05/04 00:00:10 jfv Exp $ +# $FreeBSD: src/sys/conf/kern.pre.mk,v 1.83 2007/05/19 04:48:07 kan Exp $ # Part of a unified Makefile for building kernels. This part contains all # of the definitions that need to be before %BEFORE_DEPEND. @@ -53,7 +53,7 @@ NOSTDINC= -nostdinc .endif -INCLUDES= ${NOSTDINC} -I- ${INCLMAGIC} -I. -I$S +INCLUDES= ${NOSTDINC} ${INCLMAGIC} -I. -I$S # This hack lets us use the OpenBSD altq code without spamming a new # include path into contrib'ed source files. @@ -90,7 +90,7 @@ CFLAGS+= -fno-common -finline-limit=${INLINE_LIMIT} CFLAGS+= --param inline-unit-growth=100 CFLAGS+= --param large-function-growth=1000 -WERROR?= -Werror +#WERROR?= -Werror .endif # XXX LOCORE means "don't declare C stuff" not "for locore.s". ==== //depot/projects/soc2007/lulf/gvinum_fixup/sys/conf/kmod.mk#2 (text+ko) ==== @@ -1,5 +1,5 @@ # From: @(#)bsd.prog.mk 5.26 (Berkeley) 6/25/91 -# $FreeBSD: src/sys/conf/kmod.mk,v 1.217 2007/03/21 03:42:49 sam Exp $ +# $FreeBSD: src/sys/conf/kmod.mk,v 1.218 2007/05/19 04:48:08 kan Exp $ # # The include file handles building and installing loadable # kernel modules. @@ -79,7 +79,7 @@ . if !empty(CFLAGS:M-O[23s]) && empty(CFLAGS:M-fno-strict-aliasing) CFLAGS+= -fno-strict-aliasing . endif -WERROR?= -Werror +#WERROR?= -Werror .endif CFLAGS+= ${WERROR} CFLAGS+= -D_KERNEL @@ -93,7 +93,7 @@ NOSTDINC= -nostdinc .endif CFLAGS+= ${C_DIALECT} -CFLAGS:= ${CFLAGS:N-I*} ${NOSTDINC} -I- ${INCLMAGIC} ${CFLAGS:M-I*} +CFLAGS:= ${CFLAGS:N-I*} ${NOSTDINC} ${INCLMAGIC} ${CFLAGS:M-I*} .if defined(KERNBUILDDIR) CFLAGS+= -DHAVE_KERNEL_OPTION_HEADERS -include ${KERNBUILDDIR}/opt_global.h .endif ==== //depot/projects/soc2007/lulf/gvinum_fixup/sys/conf/options#3 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/conf/options,v 1.587 2007/05/06 17:04:34 piso Exp $ +# $FreeBSD: src/sys/conf/options,v 1.588 2007/05/15 16:43:01 mav Exp $ # # On the handling of kernel options # @@ -442,6 +442,7 @@ NETGRAPH_BLUETOOTH_UBTBCMFW opt_netgraph.h NETGRAPH_BPF opt_netgraph.h NETGRAPH_BRIDGE opt_netgraph.h +NETGRAPH_CAR opt_netgraph.h NETGRAPH_CISCO opt_netgraph.h NETGRAPH_DEFLATE opt_netgraph.h NETGRAPH_DEVICE opt_netgraph.h ==== //depot/projects/soc2007/lulf/gvinum_fixup/sys/geom/part/g_part.c#4 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/geom/part/g_part.c,v 1.5 2007/05/09 05:37:53 marcel Exp $"); +__FBSDID("$FreeBSD: src/sys/geom/part/g_part.c,v 1.7 2007/05/15 23:29:57 marcel Exp $"); #include #include @@ -592,6 +592,13 @@ if (null != NULL) kobj_delete((kobj_t)null, M_GEOM); + /* + * Support automatic commit by filling in the gpp_geom + * parameter. + */ + gpp->gpp_parms |= G_PART_PARM_GEOM; + gpp->gpp_geom = gp; + /* Provide feedback if so requested. */ if (gpp->gpp_parms & G_PART_PARM_OUTPUT) { sb = sbuf_new(NULL, NULL, 0, SBUF_AUTOEXTEND); @@ -899,20 +906,20 @@ const char *p; enum g_part_ctl ctlreq; unsigned int i, mparms, oparms, parm; + int auto_commit, close_on_error; int error, modifies; G_PART_TRACE((G_T_TOPOLOGY, "%s(%s,%s)", __func__, mp->name, verb)); g_topology_assert(); ctlreq = G_PART_CTL_NONE; - modifies = 0; + modifies = 1; mparms = 0; oparms = G_PART_PARM_FLAGS | G_PART_PARM_OUTPUT | G_PART_PARM_VERSION; switch (*verb) { case 'a': if (!strcmp(verb, "add")) { ctlreq = G_PART_CTL_ADD; - modifies = 1; mparms |= G_PART_PARM_GEOM | G_PART_PARM_SIZE | G_PART_PARM_START | G_PART_PARM_TYPE; oparms |= G_PART_PARM_INDEX | G_PART_PARM_LABEL; @@ -922,9 +929,9 @@ if (!strcmp(verb, "commit")) { ctlreq = G_PART_CTL_COMMIT; mparms |= G_PART_PARM_GEOM; + modifies = 0; } else if (!strcmp(verb, "create")) { ctlreq = G_PART_CTL_CREATE; - modifies = 1; mparms |= G_PART_PARM_PROVIDER | G_PART_PARM_SCHEME; oparms |= G_PART_PARM_ENTRIES; } @@ -932,34 +939,28 @@ case 'd': if (!strcmp(verb, "delete")) { ctlreq = G_PART_CTL_DELETE; - modifies = 1; mparms |= G_PART_PARM_GEOM | G_PART_PARM_INDEX; } else if (!strcmp(verb, "destroy")) { ctlreq = G_PART_CTL_DESTROY; - modifies = 1; mparms |= G_PART_PARM_GEOM; } break; case 'm': if (!strcmp(verb, "modify")) { ctlreq = G_PART_CTL_MODIFY; - modifies = 1; mparms |= G_PART_PARM_GEOM | G_PART_PARM_INDEX; oparms |= G_PART_PARM_LABEL | G_PART_PARM_TYPE; } else if (!strcmp(verb, "move")) { ctlreq = G_PART_CTL_MOVE; - modifies = 1; mparms |= G_PART_PARM_GEOM | G_PART_PARM_INDEX; } break; case 'r': if (!strcmp(verb, "recover")) { ctlreq = G_PART_CTL_RECOVER; - modifies = 1; mparms |= G_PART_PARM_GEOM; } else if (!strcmp(verb, "resize")) { ctlreq = G_PART_CTL_RESIZE; - modifies = 1; mparms |= G_PART_PARM_GEOM | G_PART_PARM_INDEX; } break; @@ -967,6 +968,7 @@ if (!strcmp(verb, "undo")) { ctlreq = G_PART_CTL_UNDO; mparms |= G_PART_PARM_GEOM; + modifies = 0; } break; } @@ -1045,6 +1047,8 @@ error = g_part_parm_uint(p, &gpp.gpp_entries); break; case G_PART_PARM_FLAGS: + if (p[0] == '\0') + continue; error = g_part_parm_str(p, &gpp.gpp_flags); break; case G_PART_PARM_GEOM: @@ -1054,7 +1058,9 @@ error = g_part_parm_uint(p, &gpp.gpp_index); break; case G_PART_PARM_LABEL: - error = g_part_parm_str(p, &gpp.gpp_label); + /* An empty label is always valid. */ + gpp.gpp_label = p; + error = 0; break; case G_PART_PARM_OUTPUT: error = 0; /* Write-only parameter */ @@ -1094,6 +1100,8 @@ } /* Obtain permissions if possible/necessary. */ + close_on_error = 0; + table = NULL; /* Suppress uninit. warning. */ if (modifies && (gpp.gpp_parms & G_PART_PARM_GEOM)) { table = gpp.gpp_geom->softc; if (table != NULL && !table->gpt_opened) { @@ -1105,6 +1113,7 @@ return; } table->gpt_opened = 1; + close_on_error = 1; } } @@ -1143,6 +1152,22 @@ error = g_part_ctl_undo(req, &gpp); break; } + + /* Implement automatic commit. */ + if (!error) { + auto_commit = (modifies && + (gpp.gpp_parms & G_PART_PARM_FLAGS) && + strchr(gpp.gpp_flags, 'C') != NULL) ? 1 : 0; + if (auto_commit) { + KASSERT(gpp.gpp_parms & G_PART_PARM_GEOM, (__func__)); + error = g_part_ctl_commit(req, &gpp); + } + } + + if (error && close_on_error) { + g_access(LIST_FIRST(&gpp.gpp_geom->consumer), -1, -1, -1); + table->gpt_opened = 0; + } } static int ==== //depot/projects/soc2007/lulf/gvinum_fixup/sys/geom/vinum/geom_vinum.c#9 (text+ko) ==== @@ -74,7 +74,7 @@ gv_post_event(sc, GV_EVENT_DRIVE_LOST, d, NULL, NULL); } -static void +void gv_start(struct bio *bp) { struct g_geom *gp; @@ -333,10 +333,10 @@ #if 0 } else if (!strcmp(verb, "move")) { gv_move(gp, req); +#endif - } else if (!strcmp(verb, "parityop")) { - gv_parityop(gp, req); -#endif + } else if (!strcmp(verb, "rebuildparity")) { + gv_rebuild_parity(sc, req); } else if (!strcmp(verb, "remove")) { gv_remove(gp, req); @@ -568,6 +568,19 @@ "%d\n", err); break; + case GV_EVENT_REBUILD: + printf("VINUM: event 'rebuild'\n"); + /* + * Start the rebuild. The gv_plex_done will + * handle issuing of the remaining rebuild bio's + * until it's finished. + */ + /* XXX: Should check plex state here. */ + p = ev->arg1; + p->synced = 0; + gv_issue_next_parity_bio(p); + break; + case GV_EVENT_THREAD_EXIT: printf("VINUM: event 'thread exit'\n"); g_free(ev); ==== //depot/projects/soc2007/lulf/gvinum_fixup/sys/geom/vinum/geom_vinum.h#7 (text+ko) ==== @@ -81,7 +81,7 @@ int gv_consumer_is_open(struct g_consumer *); int gv_provider_is_open(struct g_provider *); int gv_object_type(struct gv_softc *, char *); -void gv_parse_config(struct gv_softc *, u_char *); +void gv_parse_config(struct gv_softc *, char *); int gv_sd_to_drive(struct gv_sd *, struct gv_drive *); int gv_sd_to_plex(struct gv_sd *, struct gv_plex *); void gv_update_plex_config(struct gv_plex *); @@ -95,6 +95,7 @@ void gv_drive_tasted(struct gv_softc *, struct g_provider *); void gv_drive_lost(struct gv_softc *, struct gv_drive *); void gv_setup_objects(struct gv_softc *); +void gv_start(struct bio *); void gv_done(struct bio *); void gv_volume_start(struct gv_softc *, struct bio *); @@ -110,4 +111,7 @@ int gv_stripe_active(struct gv_plex *, struct bio *); +void gv_issue_next_parity_bio(struct gv_plex *); +void gv_rebuild_parity(struct gv_softc *, struct gctl_req *); + #endif /* !_GEOM_VINUM_H_ */ ==== //depot/projects/soc2007/lulf/gvinum_fixup/sys/geom/vinum/geom_vinum_init.c#3 (text+ko) ==== @@ -176,6 +176,8 @@ g_topology_lock(); error = g_access(cp, -1, -1, 0); + /* XXX: Unlock? */ + out: gctl_set_param(req, "rv", &rv, sizeof(rv)); } @@ -356,26 +358,88 @@ return (0); } -static int -gv_rebuild_plex(struct gv_plex *p) +struct gv_bio * +gv_new_rebuild_bio(struct gv_plex *p, off_t offset) { struct gv_sync_args *sync; + struct bio *bp; + struct gv_volume *v; + struct gv_plex *p; + struct g_consumer *cp; + u_char *buf; + off_t i; + int error; + + KASSERT(p != NULL, ("gv_rebuild_plex: NULL p")); + + buf = NULL; + bp = NULL; + v = p->vol_sc; - if (gv_consumer_is_open(p->geom)) - return (EBUSY); + if (!= NULL) + /* Check if any of our subdisks drives have consumers open. */ + /* XXX: Not provider since our mirror might block us. */ +/* if (gv_provider_is_open(v->provider)) + return (EBUSY);*/ - if (p->flags & GV_PLEX_SYNCING) +/* if (p->flags & GV_PLEX_SYNCING) return (EINPROGRESS); - p->flags |= GV_PLEX_SYNCING; + p->flags |= GV_PLEX_SYNCING;*/ sync = g_malloc(sizeof(*sync), M_WAITOK | M_ZERO); sync->to = p; sync->syncsize = GV_DFLT_SYNCSIZE; >>> TRUNCATED FOR MAIL (1000 lines) <<<