PERFORCE change 120322 for review
Ulf Lilleengen
lulf at FreeBSD.org
Thu May 24 16:47:27 UTC 2007
http://perforce.freebsd.org/chv.cgi?CH=120322
Change 120322 by lulf at 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 <bsd.subdir.mk>
-.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 <bsd.kmod.mk> 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 <sys/cdefs.h>
-__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 <sys/param.h>
#include <sys/bio.h>
@@ -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) <<<
More information about the p4-projects
mailing list