\hypertarget{geom__vinum_8c_source}{}\doxysection{geom\+\_\+vinum.\+c}
\label{geom__vinum_8c_source}\index{geom/vinum/geom\_vinum.c@{geom/vinum/geom\_vinum.c}}
\mbox{\hyperlink{geom__vinum_8c}{Go to the documentation of this file.}}
\begin{DoxyCode}{0}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00001}00001 \textcolor{comment}{/*-\/}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00002}00002 \textcolor{comment}{ * SPDX-\/License-\/Identifier: BSD-\/2-\/Clause-\/FreeBSD}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00003}00003 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00004}00004 \textcolor{comment}{ *  Copyright (c) 2004, 2007 Lukas Ertl}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00005}00005 \textcolor{comment}{ *  Copyright (c) 2007, 2009 Ulf Lilleengen}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00006}00006 \textcolor{comment}{ *  All rights reserved.}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00007}00007 \textcolor{comment}{ * }}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00008}00008 \textcolor{comment}{ * Redistribution and use in source and binary forms, with or without}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00009}00009 \textcolor{comment}{ * modification, are permitted provided that the following conditions}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00010}00010 \textcolor{comment}{ * are met:}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00011}00011 \textcolor{comment}{ * 1. Redistributions of source code must retain the above copyright}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00012}00012 \textcolor{comment}{ *    notice, this list of conditions and the following disclaimer.}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00013}00013 \textcolor{comment}{ * 2. Redistributions in binary form must reproduce the above copyright}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00014}00014 \textcolor{comment}{ *    notice, this list of conditions and the following disclaimer in the}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00015}00015 \textcolor{comment}{ *    documentation and/or other materials provided with the distribution.}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00016}00016 \textcolor{comment}{ * }}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00017}00017 \textcolor{comment}{ * THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00018}00018 \textcolor{comment}{ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00019}00019 \textcolor{comment}{ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00020}00020 \textcolor{comment}{ * ARE DISCLAIMED.  IN NO EVENT SHALL AUTHOR OR CONTRIBUTORS BE LIABLE}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00021}00021 \textcolor{comment}{ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00022}00022 \textcolor{comment}{ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00023}00023 \textcolor{comment}{ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00024}00024 \textcolor{comment}{ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00025}00025 \textcolor{comment}{ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00026}00026 \textcolor{comment}{ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00027}00027 \textcolor{comment}{ * SUCH DAMAGE.}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00028}00028 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00029}00029 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00030}00030 }
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00031}00031 \textcolor{preprocessor}{\#include <sys/cdefs.h>}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00032}\mbox{\hyperlink{geom__vinum_8c_a8c3ef283470a68cd30afe9b8a72cb60f}{00032}} \mbox{\hyperlink{geom__vinum_8c_a8c3ef283470a68cd30afe9b8a72cb60f}{\_\_FBSDID}}(\textcolor{stringliteral}{"{}\$FreeBSD\$"{}});}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00033}00033 }
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00034}00034 \textcolor{preprocessor}{\#include <sys/param.h>}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00035}00035 \textcolor{preprocessor}{\#include <sys/bio.h>}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00036}00036 \textcolor{preprocessor}{\#include <sys/kernel.h>}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00037}00037 \textcolor{preprocessor}{\#include <sys/kthread.h>}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00038}00038 \textcolor{preprocessor}{\#include <sys/lock.h>}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00039}00039 \textcolor{preprocessor}{\#include <sys/malloc.h>}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00040}00040 \textcolor{preprocessor}{\#include <sys/module.h>}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00041}00041 \textcolor{preprocessor}{\#include <sys/mutex.h>}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00042}00042 \textcolor{preprocessor}{\#include <sys/sbuf.h>}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00043}00043 \textcolor{preprocessor}{\#include <sys/sysctl.h>}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00044}00044 \textcolor{preprocessor}{\#include <sys/systm.h>}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00045}00045 }
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00046}00046 \textcolor{preprocessor}{\#include <\mbox{\hyperlink{geom_8h}{geom/geom.h}}>}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00047}00047 \textcolor{preprocessor}{\#include <\mbox{\hyperlink{geom__dbg_8h}{geom/geom\_dbg.h}}>}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00048}00048 \textcolor{preprocessor}{\#include <\mbox{\hyperlink{geom__vinum__var_8h}{geom/vinum/geom\_vinum\_var.h}}>}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00049}00049 \textcolor{preprocessor}{\#include <\mbox{\hyperlink{geom__vinum_8h}{geom/vinum/geom\_vinum.h}}>}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00050}00050 \textcolor{preprocessor}{\#include <\mbox{\hyperlink{geom__vinum__raid5_8h}{geom/vinum/geom\_vinum\_raid5.h}}>}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00051}00051 }
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00052}\mbox{\hyperlink{geom__vinum_8c_a1e69eaa2ef6048550eaeebcf775a3d0f}{00052}} \mbox{\hyperlink{geom__vinum_8c_a1e69eaa2ef6048550eaeebcf775a3d0f}{SYSCTL\_DECL}}(\_kern\_geom);}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00053}\mbox{\hyperlink{geom__vinum_8c_a77a3ce48912c59c04cc9ebd5d86353e3}{00053}} \textcolor{keyword}{static} \mbox{\hyperlink{geom__vinum_8c_a77a3ce48912c59c04cc9ebd5d86353e3}{SYSCTL\_NODE}}(\_kern\_geom, OID\_AUTO, vinum, CTLFLAG\_RW | CTLFLAG\_MPSAFE, 0,}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00054}00054     \textcolor{stringliteral}{"{}GEOM\_VINUM stuff"{}});}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00055}\mbox{\hyperlink{geom__vinum_8c_af5aee1152a71356fe66c8867b49da464}{00055}} u\_int \mbox{\hyperlink{geom__vinum_8c_af5aee1152a71356fe66c8867b49da464}{g\_vinum\_debug}} = 0;}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00056}\mbox{\hyperlink{geom__vinum_8c_a41770bb64e4250762fc5103db24bbef8}{00056}} \mbox{\hyperlink{geom__vinum_8c_a41770bb64e4250762fc5103db24bbef8}{SYSCTL\_UINT}}(\_kern\_geom\_vinum, OID\_AUTO, debug, CTLFLAG\_RWTUN, \&\mbox{\hyperlink{geom__vinum_8c_af5aee1152a71356fe66c8867b49da464}{g\_vinum\_debug}}, 0,}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00057}00057     \textcolor{stringliteral}{"{}Debug level"{}});}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00058}00058 }
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00059}00059 \textcolor{keyword}{static} \textcolor{keywordtype}{int}      \mbox{\hyperlink{geom__vinum_8c_a4384b8584865132c041dda2040dd363c}{gv\_create}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structg__geom}{g\_geom}} *, \textcolor{keyword}{struct} \mbox{\hyperlink{structgctl__req}{gctl\_req}} *);}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00060}00060 \textcolor{keyword}{static} \textcolor{keywordtype}{void}     \mbox{\hyperlink{geom__vinum_8c_aecc9bd9f59d221547b3f9771b5e0216d}{gv\_attach}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structgv__softc}{gv\_softc}} *, \textcolor{keyword}{struct} \mbox{\hyperlink{structgctl__req}{gctl\_req}} *);}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00061}00061 \textcolor{keyword}{static} \textcolor{keywordtype}{void}     \mbox{\hyperlink{geom__vinum_8c_ada3ee9fc65d307d7c18ab1d44fb86d1b}{gv\_detach}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structgv__softc}{gv\_softc}} *, \textcolor{keyword}{struct} \mbox{\hyperlink{structgctl__req}{gctl\_req}} *);}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00062}00062 \textcolor{keyword}{static} \textcolor{keywordtype}{void}     \mbox{\hyperlink{geom__vinum_8c_ac02687e839aebfc5ed48b7fa65bf5e5c}{gv\_parityop}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structgv__softc}{gv\_softc}} *, \textcolor{keyword}{struct} \mbox{\hyperlink{structgctl__req}{gctl\_req}} *);}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00063}00063 }
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00064}00064 \textcolor{keyword}{static} \textcolor{keywordtype}{void}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00065}\mbox{\hyperlink{geom__vinum_8c_a80a695ba7ab95a38f4f2adaf81b37b5b}{00065}} \mbox{\hyperlink{geom__vinum_8c_a80a695ba7ab95a38f4f2adaf81b37b5b}{gv\_orphan}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structg__consumer}{g\_consumer}} *\mbox{\hyperlink{g__part__if_8m_a294f18324585ff37641fb8aa1c9ccd82}{cp}})}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00066}00066 \{}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00067}00067         \textcolor{keyword}{struct }\mbox{\hyperlink{structg__geom}{g\_geom}} *\mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00068}00068         \textcolor{keyword}{struct }\mbox{\hyperlink{structgv__softc}{gv\_softc}} *sc;}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00069}00069         \textcolor{keyword}{struct }\mbox{\hyperlink{structgv__drive}{gv\_drive}} *d;}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00070}00070 }
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00071}00071         \mbox{\hyperlink{geom_8h_a1898dc8c812faa5de231ab840e8562bf}{g\_topology\_assert}}();}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00072}00072 }
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00073}00073         KASSERT(\mbox{\hyperlink{g__part__if_8m_a294f18324585ff37641fb8aa1c9ccd82}{cp}} != NULL, (\textcolor{stringliteral}{"{}gv\_orphan: null cp"{}}));}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00074}00074         \mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}} = \mbox{\hyperlink{g__part__if_8m_a294f18324585ff37641fb8aa1c9ccd82}{cp}}-\/>\mbox{\hyperlink{structg__consumer_a75734fc8cd22ffc4209c36cc0a459cba}{geom}};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00075}00075         KASSERT(\mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}} != NULL, (\textcolor{stringliteral}{"{}gv\_orphan: null gp"{}}));}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00076}00076         sc = \mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}}-\/>\mbox{\hyperlink{structg__geom_aa83c08c83459420f6cbcfe64c6099466}{softc}};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00077}00077         KASSERT(sc != NULL, (\textcolor{stringliteral}{"{}gv\_orphan: null sc"{}}));}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00078}00078         d = \mbox{\hyperlink{g__part__if_8m_a294f18324585ff37641fb8aa1c9ccd82}{cp}}-\/>\mbox{\hyperlink{structg__consumer_a11273c1281d0cffbc3383eb4e49e7010}{private}};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00079}00079         KASSERT(d != NULL, (\textcolor{stringliteral}{"{}gv\_orphan: null d"{}}));}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00080}00080 }
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00081}00081         \mbox{\hyperlink{geom_8h_a7588d7ea7fbf7180b345df84b8797166}{g\_trace}}(\mbox{\hyperlink{geom_8h_a7f1804ff1a11f763a1ab5bdbd3e1287c}{G\_T\_TOPOLOGY}}, \textcolor{stringliteral}{"{}gv\_orphan(\%s)"{}}, \mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}}-\/>\mbox{\hyperlink{structg__geom_af64450500f1fea18f639b191a5017107}{name}});}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00082}00082 }
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00083}00083         \mbox{\hyperlink{geom__vinum_8h_ab8b55e981fb9c93aa56042746dd4bf5a}{gv\_post\_event}}(sc, \mbox{\hyperlink{geom__vinum__var_8h_af6c963b13a8139c90c26098807a626c3}{GV\_EVENT\_DRIVE\_LOST}}, d, NULL, 0, 0);}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00084}00084 \}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00085}00085 }
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00086}00086 \textcolor{keywordtype}{void}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00087}\mbox{\hyperlink{geom__vinum_8c_ab185fc8222fad8491ee354a48f68f7b4}{00087}} \mbox{\hyperlink{geom__vinum_8c_ab185fc8222fad8491ee354a48f68f7b4}{gv\_start}}(\textcolor{keyword}{struct} bio *\mbox{\hyperlink{g__part__if_8m_a3786db8db96c32f69df9f7cd325a7507}{bp}})}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00088}00088 \{}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00089}00089         \textcolor{keyword}{struct }\mbox{\hyperlink{structg__geom}{g\_geom}} *\mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00090}00090         \textcolor{keyword}{struct }\mbox{\hyperlink{structgv__softc}{gv\_softc}} *sc;}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00091}00091 }
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00092}00092         \mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}} = \mbox{\hyperlink{g__part__if_8m_a3786db8db96c32f69df9f7cd325a7507}{bp}}-\/>bio\_to-\/>geom;}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00093}00093         sc = \mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}}-\/>\mbox{\hyperlink{structg__geom_aa83c08c83459420f6cbcfe64c6099466}{softc}};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00094}00094 }
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00095}00095         \textcolor{keywordflow}{switch} (\mbox{\hyperlink{g__part__if_8m_a3786db8db96c32f69df9f7cd325a7507}{bp}}-\/>bio\_cmd) \{}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00096}00096         \textcolor{keywordflow}{case} BIO\_READ:}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00097}00097         \textcolor{keywordflow}{case} BIO\_WRITE:}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00098}00098         \textcolor{keywordflow}{case} BIO\_DELETE:}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00099}00099                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00100}00100         \textcolor{keywordflow}{case} BIO\_GETATTR:}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00101}00101         \textcolor{keywordflow}{default}:}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00102}00102                 \mbox{\hyperlink{geom_8h_a0975be2dcd40a26a56a1a9bfc80433e1}{g\_io\_deliver}}(\mbox{\hyperlink{g__part__if_8m_a3786db8db96c32f69df9f7cd325a7507}{bp}}, EOPNOTSUPP);}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00103}00103                 \textcolor{keywordflow}{return};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00104}00104         \}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00105}00105         mtx\_lock(\&sc-\/>\mbox{\hyperlink{structgv__softc_a9e16e217501caa73a4d20fd0ce10d552}{bqueue\_mtx}});}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00106}00106         bioq\_disksort(sc-\/>\mbox{\hyperlink{structgv__softc_a854eab818ff0c1d2aa4a65d0e992b715}{bqueue\_down}}, \mbox{\hyperlink{g__part__if_8m_a3786db8db96c32f69df9f7cd325a7507}{bp}});}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00107}00107         wakeup(sc);}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00108}00108         mtx\_unlock(\&sc-\/>\mbox{\hyperlink{structgv__softc_a9e16e217501caa73a4d20fd0ce10d552}{bqueue\_mtx}});}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00109}00109 \}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00110}00110 }
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00111}00111 \textcolor{keywordtype}{void}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00112}\mbox{\hyperlink{geom__vinum_8c_adbae7172cb3db2c9c35b43627fac0acf}{00112}} \mbox{\hyperlink{geom__vinum_8c_adbae7172cb3db2c9c35b43627fac0acf}{gv\_done}}(\textcolor{keyword}{struct} bio *\mbox{\hyperlink{g__part__if_8m_a3786db8db96c32f69df9f7cd325a7507}{bp}})}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00113}00113 \{}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00114}00114         \textcolor{keyword}{struct }\mbox{\hyperlink{structg__geom}{g\_geom}} *\mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00115}00115         \textcolor{keyword}{struct }\mbox{\hyperlink{structgv__softc}{gv\_softc}} *sc;}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00116}00116 }
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00117}00117         KASSERT(\mbox{\hyperlink{g__part__if_8m_a3786db8db96c32f69df9f7cd325a7507}{bp}} != NULL, (\textcolor{stringliteral}{"{}NULL bp"{}}));}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00118}00118 }
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00119}00119         \mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}} = \mbox{\hyperlink{g__part__if_8m_a3786db8db96c32f69df9f7cd325a7507}{bp}}-\/>bio\_from-\/>geom;}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00120}00120         sc = \mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}}-\/>\mbox{\hyperlink{structg__geom_aa83c08c83459420f6cbcfe64c6099466}{softc}};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00121}00121 }
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00122}00122         mtx\_lock(\&sc-\/>\mbox{\hyperlink{structgv__softc_a9e16e217501caa73a4d20fd0ce10d552}{bqueue\_mtx}});}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00123}00123         bioq\_disksort(sc-\/>\mbox{\hyperlink{structgv__softc_affb434652c15df650bb17cc545d4e402}{bqueue\_up}}, \mbox{\hyperlink{g__part__if_8m_a3786db8db96c32f69df9f7cd325a7507}{bp}});}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00124}00124         wakeup(sc);}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00125}00125         mtx\_unlock(\&sc-\/>\mbox{\hyperlink{structgv__softc_a9e16e217501caa73a4d20fd0ce10d552}{bqueue\_mtx}});}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00126}00126 \}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00127}00127 }
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00128}00128 \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00129}\mbox{\hyperlink{geom__vinum_8c_a9299e5644cba56c3b04948a45a28c6be}{00129}} \mbox{\hyperlink{geom__vinum_8c_a9299e5644cba56c3b04948a45a28c6be}{gv\_access}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structg__provider}{g\_provider}} *\mbox{\hyperlink{g__part__if_8m_a9bc7638f295763b77465c5ebebbd3442}{pp}}, \textcolor{keywordtype}{int} dr, \textcolor{keywordtype}{int} dw, \textcolor{keywordtype}{int} de)}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00130}00130 \{}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00131}00131         \textcolor{keyword}{struct }\mbox{\hyperlink{structg__geom}{g\_geom}} *\mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00132}00132         \textcolor{keyword}{struct }\mbox{\hyperlink{structgv__softc}{gv\_softc}} *sc;}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00133}00133         \textcolor{keyword}{struct }\mbox{\hyperlink{structgv__drive}{gv\_drive}} *d, *d2;}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00134}00134         \textcolor{keywordtype}{int} error;}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00135}00135 }
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00136}00136         \mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}} = \mbox{\hyperlink{g__part__if_8m_a9bc7638f295763b77465c5ebebbd3442}{pp}}-\/>\mbox{\hyperlink{structg__provider_afe5c92b8a2a9e4cdf1cab6daa96923c1}{geom}};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00137}00137         sc = \mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}}-\/>\mbox{\hyperlink{structg__geom_aa83c08c83459420f6cbcfe64c6099466}{softc}};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00138}00138         \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00139}00139 \textcolor{comment}{         * We want to modify the read count with the write count in case we have}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00140}00140 \textcolor{comment}{         * plexes in a RAID-\/5 organization.}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00141}00141 \textcolor{comment}{         */}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00142}00142         dr += dw;}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00143}00143 }
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00144}00144         LIST\_FOREACH(d, \&sc-\/>drives, drive) \{}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00145}00145                 \textcolor{keywordflow}{if} (d-\/>\mbox{\hyperlink{structgv__drive_a69dfc95c0bafb10b4239b5d45059e85d}{consumer}} == NULL)}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00146}00146                         \textcolor{keywordflow}{continue};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00147}00147                 error = \mbox{\hyperlink{geom_8h_a27b7c72cc3bc5a4d07ce5976e1aa1b58}{g\_access}}(d-\/>\mbox{\hyperlink{structgv__drive_a69dfc95c0bafb10b4239b5d45059e85d}{consumer}}, dr, dw, de);}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00148}00148                 \textcolor{keywordflow}{if} (error) \{}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00149}00149                         LIST\_FOREACH(d2, \&sc-\/>drives, drive) \{}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00150}00150                                 \textcolor{keywordflow}{if} (d == d2)}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00151}00151                                         \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00152}00152                                 \mbox{\hyperlink{geom_8h_a27b7c72cc3bc5a4d07ce5976e1aa1b58}{g\_access}}(d2-\/>\mbox{\hyperlink{structgv__drive_a69dfc95c0bafb10b4239b5d45059e85d}{consumer}}, -\/dr, -\/dw, -\/de);}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00153}00153                         \}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00154}00154                         \mbox{\hyperlink{geom__vinum_8h_a28cdbd7c30e435ff9ec8676f493593a0}{G\_VINUM\_DEBUG}}(0, \textcolor{stringliteral}{"{}g\_access '\%s' failed: \%d"{}}, d-\/>\mbox{\hyperlink{structgv__drive_a69e5c72365075804074d21c056111ebf}{name}},}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00155}00155                             error);}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00156}00156                         \textcolor{keywordflow}{return} (error);}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00157}00157                 \}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00158}00158         \}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00159}00159         \textcolor{keywordflow}{return} (0);}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00160}00160 \}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00161}00161 }
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00162}00162 \textcolor{keyword}{static} \textcolor{keywordtype}{void}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00163}\mbox{\hyperlink{geom__vinum_8c_a8d1afbe0266abbaeaa20e0d1717762b2}{00163}} \mbox{\hyperlink{geom__vinum_8c_a8d1afbe0266abbaeaa20e0d1717762b2}{gv\_init}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structg__class}{g\_class}} *\mbox{\hyperlink{g__raid__md__if_8m_a4f7502795edfd2493d3d223d0df33e1d}{mp}})}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00164}00164 \{}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00165}00165         \textcolor{keyword}{struct }\mbox{\hyperlink{structg__geom}{g\_geom}} *\mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00166}00166         \textcolor{keyword}{struct }\mbox{\hyperlink{structgv__softc}{gv\_softc}} *sc;}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00167}00167 }
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00168}00168         \mbox{\hyperlink{geom_8h_a7588d7ea7fbf7180b345df84b8797166}{g\_trace}}(\mbox{\hyperlink{geom_8h_a7f1804ff1a11f763a1ab5bdbd3e1287c}{G\_T\_TOPOLOGY}}, \textcolor{stringliteral}{"{}gv\_init(\%p)"{}}, \mbox{\hyperlink{g__raid__md__if_8m_a4f7502795edfd2493d3d223d0df33e1d}{mp}});}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00169}00169 }
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00170}00170         \mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}} = \mbox{\hyperlink{geom_8h_a4000befe2ff4b405b8333ccc5b0fdb41}{g\_new\_geomf}}(\mbox{\hyperlink{g__raid__md__if_8m_a4f7502795edfd2493d3d223d0df33e1d}{mp}}, \textcolor{stringliteral}{"{}VINUM"{}});}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00171}00171         \mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}}-\/>\mbox{\hyperlink{structg__geom_a0a74cfab0860e32fcfd20a3846b401a7}{spoiled}} = \mbox{\hyperlink{geom__vinum_8c_a80a695ba7ab95a38f4f2adaf81b37b5b}{gv\_orphan}};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00172}00172         \mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}}-\/>\mbox{\hyperlink{structg__geom_a67386b3b9a49233eca9f73d28bc70325}{orphan}} = \mbox{\hyperlink{geom__vinum_8c_a80a695ba7ab95a38f4f2adaf81b37b5b}{gv\_orphan}};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00173}00173         \mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}}-\/>\mbox{\hyperlink{structg__geom_aea05083928dcabdb4d343c6b9ee71cbd}{access}} = \mbox{\hyperlink{geom__vinum_8c_a9299e5644cba56c3b04948a45a28c6be}{gv\_access}};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00174}00174         \mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}}-\/>\mbox{\hyperlink{structg__geom_a160a0c74f128936d97064e56052dc2ef}{start}} = \mbox{\hyperlink{geom__vinum_8c_ab185fc8222fad8491ee354a48f68f7b4}{gv\_start}};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00175}00175         \mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}}-\/>\mbox{\hyperlink{structg__geom_aa83c08c83459420f6cbcfe64c6099466}{softc}} = \mbox{\hyperlink{geom_8h_a0f190247baa73dc863a79fea9d5f6b4f}{g\_malloc}}(\textcolor{keyword}{sizeof}(\textcolor{keyword}{struct} \mbox{\hyperlink{structgv__softc}{gv\_softc}}), M\_WAITOK | M\_ZERO);}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00176}00176         sc = \mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}}-\/>\mbox{\hyperlink{structg__geom_aa83c08c83459420f6cbcfe64c6099466}{softc}};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00177}00177         sc-\/>\mbox{\hyperlink{structgv__softc_a1e8edc954044192e67411991c0c91c2d}{geom}} = \mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00178}00178         sc-\/>\mbox{\hyperlink{structgv__softc_a854eab818ff0c1d2aa4a65d0e992b715}{bqueue\_down}} = \mbox{\hyperlink{geom_8h_a0f190247baa73dc863a79fea9d5f6b4f}{g\_malloc}}(\textcolor{keyword}{sizeof}(\textcolor{keyword}{struct} bio\_queue\_head),}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00179}00179             M\_WAITOK | M\_ZERO);}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00180}00180         sc-\/>\mbox{\hyperlink{structgv__softc_affb434652c15df650bb17cc545d4e402}{bqueue\_up}} = \mbox{\hyperlink{geom_8h_a0f190247baa73dc863a79fea9d5f6b4f}{g\_malloc}}(\textcolor{keyword}{sizeof}(\textcolor{keyword}{struct} bio\_queue\_head),}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00181}00181             M\_WAITOK | M\_ZERO);}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00182}00182         bioq\_init(sc-\/>\mbox{\hyperlink{structgv__softc_a854eab818ff0c1d2aa4a65d0e992b715}{bqueue\_down}});}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00183}00183         bioq\_init(sc-\/>\mbox{\hyperlink{structgv__softc_affb434652c15df650bb17cc545d4e402}{bqueue\_up}});}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00184}00184         LIST\_INIT(\&sc-\/>drives);}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00185}00185         LIST\_INIT(\&sc-\/>subdisks);}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00186}00186         LIST\_INIT(\&sc-\/>plexes);}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00187}00187         LIST\_INIT(\&sc-\/>volumes);}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00188}00188         TAILQ\_INIT(\&sc-\/>equeue);}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00189}00189         mtx\_init(\&sc-\/>\mbox{\hyperlink{structgv__softc_a04414d0bbb98bcc3a1167fbe75dfc914}{config\_mtx}}, \textcolor{stringliteral}{"{}gv\_config"{}}, NULL, MTX\_DEF);}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00190}00190         mtx\_init(\&sc-\/>\mbox{\hyperlink{structgv__softc_a47297f4eedb9eb29e5bfdf2f984df80e}{equeue\_mtx}}, \textcolor{stringliteral}{"{}gv\_equeue"{}}, NULL, MTX\_DEF);}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00191}00191         mtx\_init(\&sc-\/>\mbox{\hyperlink{structgv__softc_a9e16e217501caa73a4d20fd0ce10d552}{bqueue\_mtx}}, \textcolor{stringliteral}{"{}gv\_bqueue"{}}, NULL, MTX\_DEF);}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00192}00192         kproc\_create(\mbox{\hyperlink{geom__vinum_8c_a13e60bb0a98d78c00fc33d3d57e55511}{gv\_worker}}, sc, \&sc-\/>\mbox{\hyperlink{structgv__softc_a0062d2738969b5a506e71916cd158d77}{worker}}, 0, 0, \textcolor{stringliteral}{"{}gv\_worker"{}});}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00193}00193 \}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00194}00194 }
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00195}00195 \textcolor{keyword}{static} \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00196}\mbox{\hyperlink{geom__vinum_8c_a347009212209388dab48278a6f66f287}{00196}} \mbox{\hyperlink{geom__vinum_8c_a347009212209388dab48278a6f66f287}{gv\_unload}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structgctl__req}{gctl\_req}} *\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}, \textcolor{keyword}{struct} \mbox{\hyperlink{structg__class}{g\_class}} *\mbox{\hyperlink{g__raid__md__if_8m_a4f7502795edfd2493d3d223d0df33e1d}{mp}}, \textcolor{keyword}{struct} \mbox{\hyperlink{structg__geom}{g\_geom}} *\mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}})}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00197}00197 \{}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00198}00198         \textcolor{keyword}{struct }\mbox{\hyperlink{structgv__softc}{gv\_softc}} *sc;}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00199}00199 }
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00200}00200         \mbox{\hyperlink{geom_8h_a7588d7ea7fbf7180b345df84b8797166}{g\_trace}}(\mbox{\hyperlink{geom_8h_a7f1804ff1a11f763a1ab5bdbd3e1287c}{G\_T\_TOPOLOGY}}, \textcolor{stringliteral}{"{}gv\_unload(\%p)"{}}, \mbox{\hyperlink{g__raid__md__if_8m_a4f7502795edfd2493d3d223d0df33e1d}{mp}});}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00201}00201 }
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00202}00202         \mbox{\hyperlink{geom_8h_a1898dc8c812faa5de231ab840e8562bf}{g\_topology\_assert}}();}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00203}00203         sc = \mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}}-\/>\mbox{\hyperlink{structg__geom_aa83c08c83459420f6cbcfe64c6099466}{softc}};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00204}00204 }
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00205}00205         \textcolor{keywordflow}{if} (sc != NULL) \{}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00206}00206                 \mbox{\hyperlink{geom__vinum_8h_a742add692ef4349dde71a7c8c5a6e723}{gv\_worker\_exit}}(sc);}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00207}00207                 \mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}}-\/>\mbox{\hyperlink{structg__geom_aa83c08c83459420f6cbcfe64c6099466}{softc}} = NULL;}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00208}00208                 \mbox{\hyperlink{geom_8h_a87a0eb5de79ed5e49fcfec012f213c9b}{g\_wither\_geom}}(\mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}}, ENXIO);}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00209}00209         \}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00210}00210 }
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00211}00211         \textcolor{keywordflow}{return} (0);}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00212}00212 \}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00213}00213 }
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00214}00214 \textcolor{comment}{/* Handle userland request of attaching object. */}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00215}00215 \textcolor{keyword}{static} \textcolor{keywordtype}{void}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00216}\mbox{\hyperlink{geom__vinum_8c_aecc9bd9f59d221547b3f9771b5e0216d}{00216}} \mbox{\hyperlink{geom__vinum_8c_aecc9bd9f59d221547b3f9771b5e0216d}{gv\_attach}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structgv__softc}{gv\_softc}} *sc, \textcolor{keyword}{struct} \mbox{\hyperlink{structgctl__req}{gctl\_req}} *\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}})}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00217}00217 \{}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00218}00218         \textcolor{keyword}{struct }\mbox{\hyperlink{structgv__volume}{gv\_volume}} *v;}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00219}00219         \textcolor{keyword}{struct }\mbox{\hyperlink{structgv__plex}{gv\_plex}} *p;}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00220}00220         \textcolor{keyword}{struct }\mbox{\hyperlink{structgv__sd}{gv\_sd}} *s;}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00221}00221         off\_t *\mbox{\hyperlink{g__raid__tr__if_8m_ad5f0842c40c7e46344fd8df70187fa0f}{offset}};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00222}00222         \textcolor{keywordtype}{int} *rename, type\_child, type\_parent;}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00223}00223         \textcolor{keywordtype}{char} *child, *parent;}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00224}00224 }
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00225}00225         child = \mbox{\hyperlink{geom_8h_a3e3d6786258b3336d55a96607f9b8eb8}{gctl\_get\_param}}(\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}, \textcolor{stringliteral}{"{}child"{}}, NULL);}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00226}00226         \textcolor{keywordflow}{if} (child == NULL) \{}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00227}00227                 \mbox{\hyperlink{geom_8h_a1d51201471b52be7e19a98b0fcb144de}{gctl\_error}}(\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}, \textcolor{stringliteral}{"{}no child given"{}});}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00228}00228                 \textcolor{keywordflow}{return};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00229}00229         \}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00230}00230         parent = \mbox{\hyperlink{geom_8h_a3e3d6786258b3336d55a96607f9b8eb8}{gctl\_get\_param}}(\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}, \textcolor{stringliteral}{"{}parent"{}}, NULL);}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00231}00231         \textcolor{keywordflow}{if} (parent == NULL) \{}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00232}00232                 \mbox{\hyperlink{geom_8h_a1d51201471b52be7e19a98b0fcb144de}{gctl\_error}}(\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}, \textcolor{stringliteral}{"{}no parent given"{}});}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00233}00233                 \textcolor{keywordflow}{return};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00234}00234         \}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00235}00235         \mbox{\hyperlink{g__raid__tr__if_8m_ad5f0842c40c7e46344fd8df70187fa0f}{offset}} = \mbox{\hyperlink{geom_8h_ab762d12640f528d8f1f60eee92bf5f3b}{gctl\_get\_paraml}}(\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}, \textcolor{stringliteral}{"{}offset"{}}, \textcolor{keyword}{sizeof}(*\mbox{\hyperlink{g__raid__tr__if_8m_ad5f0842c40c7e46344fd8df70187fa0f}{offset}}));}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00236}00236         \textcolor{keywordflow}{if} (\mbox{\hyperlink{g__raid__tr__if_8m_ad5f0842c40c7e46344fd8df70187fa0f}{offset}} == NULL) \{}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00237}00237                 \mbox{\hyperlink{geom_8h_a1d51201471b52be7e19a98b0fcb144de}{gctl\_error}}(\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}, \textcolor{stringliteral}{"{}no offset given"{}});}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00238}00238                 \textcolor{keywordflow}{return};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00239}00239         \}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00240}00240         rename = \mbox{\hyperlink{geom_8h_ab762d12640f528d8f1f60eee92bf5f3b}{gctl\_get\_paraml}}(\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}, \textcolor{stringliteral}{"{}rename"{}}, \textcolor{keyword}{sizeof}(*rename));}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00241}00241         \textcolor{keywordflow}{if} (rename == NULL) \{}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00242}00242                 \mbox{\hyperlink{geom_8h_a1d51201471b52be7e19a98b0fcb144de}{gctl\_error}}(\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}, \textcolor{stringliteral}{"{}no rename flag given"{}});}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00243}00243                 \textcolor{keywordflow}{return};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00244}00244         \}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00245}00245 }
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00246}00246         type\_child = \mbox{\hyperlink{geom__vinum_8h_adf857930fd65dd84870be1db99e860f7}{gv\_object\_type}}(sc, child);}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00247}00247         type\_parent = \mbox{\hyperlink{geom__vinum_8h_adf857930fd65dd84870be1db99e860f7}{gv\_object\_type}}(sc, parent);}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00248}00248 }
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00249}00249         \textcolor{keywordflow}{switch} (type\_child) \{}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00250}00250         \textcolor{keywordflow}{case} \mbox{\hyperlink{geom__vinum__var_8h_a2a21f3f69c0e60c425744a299cd49a6f}{GV\_TYPE\_PLEX}}:}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00251}00251                 \textcolor{keywordflow}{if} (type\_parent != \mbox{\hyperlink{geom__vinum__var_8h_ac00b5b481f097143593b6ac29dd4156f}{GV\_TYPE\_VOL}}) \{}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00252}00252                         \mbox{\hyperlink{geom_8h_a1d51201471b52be7e19a98b0fcb144de}{gctl\_error}}(\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}, \textcolor{stringliteral}{"{}no such volume to attach to"{}});}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00253}00253                         \textcolor{keywordflow}{return};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00254}00254                 \}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00255}00255                 v = \mbox{\hyperlink{geom__vinum_8h_a2fb94d2e82510ca78bb8c88fbc12315e}{gv\_find\_vol}}(sc, parent);}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00256}00256                 p = \mbox{\hyperlink{geom__vinum_8h_acf034b996fb50e3a99f2f0d98ffecc53}{gv\_find\_plex}}(sc, child);}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00257}00257                 \mbox{\hyperlink{geom__vinum_8h_ab8b55e981fb9c93aa56042746dd4bf5a}{gv\_post\_event}}(sc, \mbox{\hyperlink{geom__vinum__var_8h_a414abb4c5f5d30e390c6759952b1d57e}{GV\_EVENT\_ATTACH\_PLEX}}, p, v, *\mbox{\hyperlink{g__raid__tr__if_8m_ad5f0842c40c7e46344fd8df70187fa0f}{offset}}, *rename);}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00258}00258                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00259}00259         \textcolor{keywordflow}{case} \mbox{\hyperlink{geom__vinum__var_8h_acb4b8aa524c3ba1c7abaa181a5cb6bb9}{GV\_TYPE\_SD}}:}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00260}00260                 \textcolor{keywordflow}{if} (type\_parent != \mbox{\hyperlink{geom__vinum__var_8h_a2a21f3f69c0e60c425744a299cd49a6f}{GV\_TYPE\_PLEX}}) \{}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00261}00261                         \mbox{\hyperlink{geom_8h_a1d51201471b52be7e19a98b0fcb144de}{gctl\_error}}(\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}, \textcolor{stringliteral}{"{}no such plex to attach to"{}});}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00262}00262                         \textcolor{keywordflow}{return};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00263}00263                 \}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00264}00264                 p = \mbox{\hyperlink{geom__vinum_8h_acf034b996fb50e3a99f2f0d98ffecc53}{gv\_find\_plex}}(sc, parent);}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00265}00265                 s = \mbox{\hyperlink{geom__vinum_8h_ada178b6592b1acfe37ad3eecc8075769}{gv\_find\_sd}}(sc, child);}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00266}00266                 \mbox{\hyperlink{geom__vinum_8h_ab8b55e981fb9c93aa56042746dd4bf5a}{gv\_post\_event}}(sc, \mbox{\hyperlink{geom__vinum__var_8h_a650a63b1e11b4dc9090d8ecfaa693981}{GV\_EVENT\_ATTACH\_SD}}, s, p, *\mbox{\hyperlink{g__raid__tr__if_8m_ad5f0842c40c7e46344fd8df70187fa0f}{offset}}, *rename);}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00267}00267                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00268}00268         \textcolor{keywordflow}{default}:}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00269}00269                 \mbox{\hyperlink{geom_8h_a1d51201471b52be7e19a98b0fcb144de}{gctl\_error}}(\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}, \textcolor{stringliteral}{"{}invalid child type"{}});}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00270}00270                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00271}00271         \}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00272}00272 \}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00273}00273 }
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00274}00274 \textcolor{comment}{/* Handle userland request of detaching object. */}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00275}00275 \textcolor{keyword}{static} \textcolor{keywordtype}{void}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00276}\mbox{\hyperlink{geom__vinum_8c_ada3ee9fc65d307d7c18ab1d44fb86d1b}{00276}} \mbox{\hyperlink{geom__vinum_8c_ada3ee9fc65d307d7c18ab1d44fb86d1b}{gv\_detach}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structgv__softc}{gv\_softc}} *sc, \textcolor{keyword}{struct} \mbox{\hyperlink{structgctl__req}{gctl\_req}} *\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}})}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00277}00277 \{}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00278}00278         \textcolor{keyword}{struct }\mbox{\hyperlink{structgv__plex}{gv\_plex}} *p;}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00279}00279         \textcolor{keyword}{struct }\mbox{\hyperlink{structgv__sd}{gv\_sd}} *s;}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00280}00280         \textcolor{keywordtype}{int} *\mbox{\hyperlink{structgv__sd_a84a4472842dd92c5ebcf7b103be32c90}{flags}}, \mbox{\hyperlink{geom__flashmap_8c_a763fd8db6bba8fbbbc113ca0d61c47c2}{type}};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00281}00281         \textcolor{keywordtype}{char} *object;}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00282}00282 }
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00283}00283         \textcolor{keywordtype}{object} = \mbox{\hyperlink{geom_8h_a3e3d6786258b3336d55a96607f9b8eb8}{gctl\_get\_param}}(\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}, \textcolor{stringliteral}{"{}object"{}}, NULL);}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00284}00284         \textcolor{keywordflow}{if} (\textcolor{keywordtype}{object} == NULL) \{}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00285}00285                 \mbox{\hyperlink{geom_8h_a1d51201471b52be7e19a98b0fcb144de}{gctl\_error}}(\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}, \textcolor{stringliteral}{"{}no argument given"{}});}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00286}00286                 \textcolor{keywordflow}{return};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00287}00287         \}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00288}00288 }
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00289}00289         \mbox{\hyperlink{structgv__sd_a84a4472842dd92c5ebcf7b103be32c90}{flags}} = \mbox{\hyperlink{geom_8h_ab762d12640f528d8f1f60eee92bf5f3b}{gctl\_get\_paraml}}(\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}, \textcolor{stringliteral}{"{}flags"{}}, \textcolor{keyword}{sizeof}(*\mbox{\hyperlink{structgv__sd_a84a4472842dd92c5ebcf7b103be32c90}{flags}}));}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00290}00290         \mbox{\hyperlink{geom__flashmap_8c_a763fd8db6bba8fbbbc113ca0d61c47c2}{type}} = \mbox{\hyperlink{geom__vinum_8h_adf857930fd65dd84870be1db99e860f7}{gv\_object\_type}}(sc, \textcolor{keywordtype}{object});}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00291}00291         \textcolor{keywordflow}{switch} (\mbox{\hyperlink{geom__flashmap_8c_a763fd8db6bba8fbbbc113ca0d61c47c2}{type}}) \{}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00292}00292         \textcolor{keywordflow}{case} \mbox{\hyperlink{geom__vinum__var_8h_a2a21f3f69c0e60c425744a299cd49a6f}{GV\_TYPE\_PLEX}}:}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00293}00293                 p = \mbox{\hyperlink{geom__vinum_8h_acf034b996fb50e3a99f2f0d98ffecc53}{gv\_find\_plex}}(sc, \textcolor{keywordtype}{object});}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00294}00294                 \mbox{\hyperlink{geom__vinum_8h_ab8b55e981fb9c93aa56042746dd4bf5a}{gv\_post\_event}}(sc, \mbox{\hyperlink{geom__vinum__var_8h_a4b247265713baeb9b91c00511a112278}{GV\_EVENT\_DETACH\_PLEX}}, p, NULL, *\mbox{\hyperlink{structgv__sd_a84a4472842dd92c5ebcf7b103be32c90}{flags}}, 0);}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00295}00295                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00296}00296         \textcolor{keywordflow}{case} \mbox{\hyperlink{geom__vinum__var_8h_acb4b8aa524c3ba1c7abaa181a5cb6bb9}{GV\_TYPE\_SD}}:}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00297}00297                 s = \mbox{\hyperlink{geom__vinum_8h_ada178b6592b1acfe37ad3eecc8075769}{gv\_find\_sd}}(sc, \textcolor{keywordtype}{object});}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00298}00298                 \mbox{\hyperlink{geom__vinum_8h_ab8b55e981fb9c93aa56042746dd4bf5a}{gv\_post\_event}}(sc, \mbox{\hyperlink{geom__vinum__var_8h_ac967b716907874cfd92064647ffb6391}{GV\_EVENT\_DETACH\_SD}}, s, NULL, *\mbox{\hyperlink{structgv__sd_a84a4472842dd92c5ebcf7b103be32c90}{flags}}, 0);}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00299}00299                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00300}00300         \textcolor{keywordflow}{default}:}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00301}00301                 \mbox{\hyperlink{geom_8h_a1d51201471b52be7e19a98b0fcb144de}{gctl\_error}}(\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}, \textcolor{stringliteral}{"{}invalid object type"{}});}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00302}00302                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00303}00303         \}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00304}00304 \}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00305}00305 }
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00306}00306 \textcolor{comment}{/* Handle userland requests for creating new objects. */}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00307}00307 \textcolor{keyword}{static} \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00308}\mbox{\hyperlink{geom__vinum_8c_a4384b8584865132c041dda2040dd363c}{00308}} \mbox{\hyperlink{geom__vinum_8c_a4384b8584865132c041dda2040dd363c}{gv\_create}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structg__geom}{g\_geom}} *\mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}}, \textcolor{keyword}{struct} \mbox{\hyperlink{structgctl__req}{gctl\_req}} *\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}})}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00309}00309 \{}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00310}00310         \textcolor{keyword}{struct }\mbox{\hyperlink{structgv__softc}{gv\_softc}} *sc;}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00311}00311         \textcolor{keyword}{struct }\mbox{\hyperlink{structgv__drive}{gv\_drive}} *d, *d2;}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00312}00312         \textcolor{keyword}{struct }\mbox{\hyperlink{structgv__plex}{gv\_plex}} *p, *p2;}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00313}00313         \textcolor{keyword}{struct }\mbox{\hyperlink{structgv__sd}{gv\_sd}} *s, *s2;}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00314}00314         \textcolor{keyword}{struct }\mbox{\hyperlink{structgv__volume}{gv\_volume}} *v, *v2;}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00315}00315         \textcolor{keyword}{struct }\mbox{\hyperlink{structg__provider}{g\_provider}} *\mbox{\hyperlink{g__part__if_8m_a9bc7638f295763b77465c5ebebbd3442}{pp}};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00316}00316         \textcolor{keywordtype}{int} \mbox{\hyperlink{structg__provider_acacf1ee18cb6edbcfedc185846696e7f}{error}}, i, *drives, *\mbox{\hyperlink{structg__provider_a2d2060ee918007b601780f93a39c30de}{flags}}, *plexes, *subdisks, *volumes;}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00317}00317         \textcolor{keywordtype}{char} \mbox{\hyperlink{g__part__if_8m_ac14417684334d01b4e1e807a19d92816}{buf}}[20];}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00318}00318 }
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00319}00319         \mbox{\hyperlink{geom_8h_a1898dc8c812faa5de231ab840e8562bf}{g\_topology\_assert}}();}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00320}00320 }
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00321}00321         sc = \mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}}-\/>\mbox{\hyperlink{structg__geom_aa83c08c83459420f6cbcfe64c6099466}{softc}};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00322}00322 }
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00323}00323         \textcolor{comment}{/* Find out how many of each object have been passed in. */}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00324}00324         volumes = \mbox{\hyperlink{geom_8h_ab762d12640f528d8f1f60eee92bf5f3b}{gctl\_get\_paraml}}(\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}, \textcolor{stringliteral}{"{}volumes"{}}, \textcolor{keyword}{sizeof}(*volumes));}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00325}00325         plexes = \mbox{\hyperlink{geom_8h_ab762d12640f528d8f1f60eee92bf5f3b}{gctl\_get\_paraml}}(\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}, \textcolor{stringliteral}{"{}plexes"{}}, \textcolor{keyword}{sizeof}(*plexes));}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00326}00326         subdisks = \mbox{\hyperlink{geom_8h_ab762d12640f528d8f1f60eee92bf5f3b}{gctl\_get\_paraml}}(\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}, \textcolor{stringliteral}{"{}subdisks"{}}, \textcolor{keyword}{sizeof}(*subdisks));}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00327}00327         drives = \mbox{\hyperlink{geom_8h_ab762d12640f528d8f1f60eee92bf5f3b}{gctl\_get\_paraml}}(\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}, \textcolor{stringliteral}{"{}drives"{}}, \textcolor{keyword}{sizeof}(*drives));}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00328}00328         \textcolor{keywordflow}{if} (volumes == NULL || plexes == NULL || subdisks == NULL ||}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00329}00329             drives == NULL) \{}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00330}00330                 \mbox{\hyperlink{geom_8h_a1d51201471b52be7e19a98b0fcb144de}{gctl\_error}}(\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}, \textcolor{stringliteral}{"{}number of objects not given"{}});}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00331}00331                 \textcolor{keywordflow}{return} (-\/1);}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00332}00332         \}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00333}00333         \mbox{\hyperlink{structg__provider_a2d2060ee918007b601780f93a39c30de}{flags}} = \mbox{\hyperlink{geom_8h_ab762d12640f528d8f1f60eee92bf5f3b}{gctl\_get\_paraml}}(\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}, \textcolor{stringliteral}{"{}flags"{}}, \textcolor{keyword}{sizeof}(*\mbox{\hyperlink{structg__provider_a2d2060ee918007b601780f93a39c30de}{flags}}));}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00334}00334         \textcolor{keywordflow}{if} (\mbox{\hyperlink{structg__provider_a2d2060ee918007b601780f93a39c30de}{flags}} == NULL) \{}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00335}00335                 \mbox{\hyperlink{geom_8h_a1d51201471b52be7e19a98b0fcb144de}{gctl\_error}}(\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}, \textcolor{stringliteral}{"{}flags not given"{}});}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00336}00336                 \textcolor{keywordflow}{return} (-\/1);}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00337}00337         \}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00338}00338 }
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00339}00339         \textcolor{comment}{/* First, handle drive definitions ... */}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00340}00340         \textcolor{keywordflow}{for} (i = 0; i < *drives; i++) \{}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00341}00341                 snprintf(\mbox{\hyperlink{g__part__if_8m_ac14417684334d01b4e1e807a19d92816}{buf}}, \textcolor{keyword}{sizeof}(\mbox{\hyperlink{g__part__if_8m_ac14417684334d01b4e1e807a19d92816}{buf}}), \textcolor{stringliteral}{"{}drive\%d"{}}, i);}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00342}00342                 d2 = \mbox{\hyperlink{geom_8h_ab762d12640f528d8f1f60eee92bf5f3b}{gctl\_get\_paraml}}(\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}, \mbox{\hyperlink{g__part__if_8m_ac14417684334d01b4e1e807a19d92816}{buf}}, \textcolor{keyword}{sizeof}(*d2));}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00343}00343                 \textcolor{keywordflow}{if} (d2 == NULL) \{}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00344}00344                         \mbox{\hyperlink{geom_8h_a1d51201471b52be7e19a98b0fcb144de}{gctl\_error}}(\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}, \textcolor{stringliteral}{"{}no drive definition given"{}});}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00345}00345                         \textcolor{keywordflow}{return} (-\/1);}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00346}00346                 \}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00347}00347                 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00348}00348 \textcolor{comment}{                 * Make sure that the device specified in the drive config is}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00349}00349 \textcolor{comment}{                 * an active GEOM provider.}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00350}00350 \textcolor{comment}{                 */}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00351}00351                 \mbox{\hyperlink{g__part__if_8m_a9bc7638f295763b77465c5ebebbd3442}{pp}} = \mbox{\hyperlink{geom_8h_ad022ef529cc86a6c4ea72564de2e9ca2}{g\_provider\_by\_name}}(d2-\/>\mbox{\hyperlink{structgv__drive_a940421a9537b8ce86596e18365122ae6}{device}});}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00352}00352                 \textcolor{keywordflow}{if} (\mbox{\hyperlink{g__part__if_8m_a9bc7638f295763b77465c5ebebbd3442}{pp}} == NULL) \{}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00353}00353                         \mbox{\hyperlink{geom_8h_a1d51201471b52be7e19a98b0fcb144de}{gctl\_error}}(\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}, \textcolor{stringliteral}{"{}\%s: device not found"{}}, d2-\/>\mbox{\hyperlink{structgv__drive_a940421a9537b8ce86596e18365122ae6}{device}});}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00354}00354                         \textcolor{keywordflow}{goto} \mbox{\hyperlink{structg__provider_acacf1ee18cb6edbcfedc185846696e7f}{error}};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00355}00355                 \}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00356}00356                 \textcolor{keywordflow}{if} (\mbox{\hyperlink{geom__vinum_8h_a6bfd18558261750b40b0bfe3c18c4b8f}{gv\_find\_drive}}(sc, d2-\/>\mbox{\hyperlink{structgv__drive_a69e5c72365075804074d21c056111ebf}{name}}) != NULL) \{}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00357}00357                         \textcolor{comment}{/* Ignore error. */}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00358}00358                         \textcolor{keywordflow}{if} (*\mbox{\hyperlink{structg__provider_a2d2060ee918007b601780f93a39c30de}{flags}} \& \mbox{\hyperlink{geom__vinum__var_8h_a916ff06e2bdbe5d20c32322c9a75128b}{GV\_FLAG\_F}})}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00359}00359                                 \textcolor{keywordflow}{continue};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00360}00360                         \mbox{\hyperlink{geom_8h_a1d51201471b52be7e19a98b0fcb144de}{gctl\_error}}(\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}, \textcolor{stringliteral}{"{}drive '\%s' already exists"{}}, d2-\/>\mbox{\hyperlink{structgv__drive_a69e5c72365075804074d21c056111ebf}{name}});}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00361}00361                         \textcolor{keywordflow}{goto} \mbox{\hyperlink{structg__provider_acacf1ee18cb6edbcfedc185846696e7f}{error}};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00362}00362                 \}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00363}00363                 \textcolor{keywordflow}{if} (\mbox{\hyperlink{geom__vinum_8h_a7b4aef00869a37fd1186a581a47184df}{gv\_find\_drive\_device}}(sc, d2-\/>\mbox{\hyperlink{structgv__drive_a940421a9537b8ce86596e18365122ae6}{device}}) != NULL) \{}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00364}00364                         \mbox{\hyperlink{geom_8h_a1d51201471b52be7e19a98b0fcb144de}{gctl\_error}}(\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}, \textcolor{stringliteral}{"{}device '\%s' already configured in "{}}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00365}00365                             \textcolor{stringliteral}{"{}gvinum"{}}, d2-\/>\mbox{\hyperlink{structgv__drive_a940421a9537b8ce86596e18365122ae6}{device}});}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00366}00366                         \textcolor{keywordflow}{goto} \mbox{\hyperlink{structg__provider_acacf1ee18cb6edbcfedc185846696e7f}{error}};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00367}00367                 \}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00368}00368 }
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00369}00369                 d = \mbox{\hyperlink{geom_8h_a0f190247baa73dc863a79fea9d5f6b4f}{g\_malloc}}(\textcolor{keyword}{sizeof}(*d), M\_WAITOK | M\_ZERO);}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00370}00370                 bcopy(d2, d, \textcolor{keyword}{sizeof}(*d));}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00371}00371 }
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00372}00372                 \mbox{\hyperlink{geom__vinum_8h_ab8b55e981fb9c93aa56042746dd4bf5a}{gv\_post\_event}}(sc, \mbox{\hyperlink{geom__vinum__var_8h_a480b951d3b2be99105033ae9610e6649}{GV\_EVENT\_CREATE\_DRIVE}}, d, NULL, 0, 0);}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00373}00373         \}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00374}00374 }
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00375}00375         \textcolor{comment}{/* ... then volume definitions ... */}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00376}00376         \textcolor{keywordflow}{for} (i = 0; i < *volumes; i++) \{}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00377}00377                 \mbox{\hyperlink{structg__provider_acacf1ee18cb6edbcfedc185846696e7f}{error}} = 0;}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00378}00378                 snprintf(\mbox{\hyperlink{g__part__if_8m_ac14417684334d01b4e1e807a19d92816}{buf}}, \textcolor{keyword}{sizeof}(\mbox{\hyperlink{g__part__if_8m_ac14417684334d01b4e1e807a19d92816}{buf}}), \textcolor{stringliteral}{"{}volume\%d"{}}, i);}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00379}00379                 v2 = \mbox{\hyperlink{geom_8h_ab762d12640f528d8f1f60eee92bf5f3b}{gctl\_get\_paraml}}(\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}, \mbox{\hyperlink{g__part__if_8m_ac14417684334d01b4e1e807a19d92816}{buf}}, \textcolor{keyword}{sizeof}(*v2));}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00380}00380                 \textcolor{keywordflow}{if} (v2 == NULL) \{}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00381}00381                         \mbox{\hyperlink{geom_8h_a1d51201471b52be7e19a98b0fcb144de}{gctl\_error}}(\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}, \textcolor{stringliteral}{"{}no volume definition given"{}});}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00382}00382                         \textcolor{keywordflow}{return} (-\/1);}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00383}00383                 \}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00384}00384                 \textcolor{keywordflow}{if} (\mbox{\hyperlink{geom__vinum_8h_a2fb94d2e82510ca78bb8c88fbc12315e}{gv\_find\_vol}}(sc, v2-\/>\mbox{\hyperlink{structgv__volume_a3369e150403037bca7ed34ea68f25ce0}{name}}) != NULL) \{}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00385}00385                         \textcolor{comment}{/* Ignore error. */}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00386}00386                         \textcolor{keywordflow}{if} (*\mbox{\hyperlink{structg__provider_a2d2060ee918007b601780f93a39c30de}{flags}} \& \mbox{\hyperlink{geom__vinum__var_8h_a916ff06e2bdbe5d20c32322c9a75128b}{GV\_FLAG\_F}})}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00387}00387                                 \textcolor{keywordflow}{continue};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00388}00388                         \mbox{\hyperlink{geom_8h_a1d51201471b52be7e19a98b0fcb144de}{gctl\_error}}(\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}, \textcolor{stringliteral}{"{}volume '\%s' already exists"{}}, v2-\/>\mbox{\hyperlink{structgv__volume_a3369e150403037bca7ed34ea68f25ce0}{name}});}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00389}00389                         \textcolor{keywordflow}{goto} \mbox{\hyperlink{structg__provider_acacf1ee18cb6edbcfedc185846696e7f}{error}};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00390}00390                 \}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00391}00391 }
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00392}00392                 v = \mbox{\hyperlink{geom_8h_a0f190247baa73dc863a79fea9d5f6b4f}{g\_malloc}}(\textcolor{keyword}{sizeof}(*v), M\_WAITOK | M\_ZERO);}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00393}00393                 bcopy(v2, v, \textcolor{keyword}{sizeof}(*v));}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00394}00394 }
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00395}00395                 \mbox{\hyperlink{geom__vinum_8h_ab8b55e981fb9c93aa56042746dd4bf5a}{gv\_post\_event}}(sc, \mbox{\hyperlink{geom__vinum__var_8h_a6888b5f96c632fb9855773ada490edc1}{GV\_EVENT\_CREATE\_VOLUME}}, v, NULL, 0, 0);}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00396}00396         \}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00397}00397 }
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00398}00398         \textcolor{comment}{/* ... then plex definitions ... */}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00399}00399         \textcolor{keywordflow}{for} (i = 0; i < *plexes; i++) \{}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00400}00400                 \mbox{\hyperlink{structg__provider_acacf1ee18cb6edbcfedc185846696e7f}{error}} = 0;}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00401}00401                 snprintf(\mbox{\hyperlink{g__part__if_8m_ac14417684334d01b4e1e807a19d92816}{buf}}, \textcolor{keyword}{sizeof}(\mbox{\hyperlink{g__part__if_8m_ac14417684334d01b4e1e807a19d92816}{buf}}), \textcolor{stringliteral}{"{}plex\%d"{}}, i);}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00402}00402                 p2 = \mbox{\hyperlink{geom_8h_ab762d12640f528d8f1f60eee92bf5f3b}{gctl\_get\_paraml}}(\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}, \mbox{\hyperlink{g__part__if_8m_ac14417684334d01b4e1e807a19d92816}{buf}}, \textcolor{keyword}{sizeof}(*p2));}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00403}00403                 \textcolor{keywordflow}{if} (p2 == NULL) \{}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00404}00404                         \mbox{\hyperlink{geom_8h_a1d51201471b52be7e19a98b0fcb144de}{gctl\_error}}(\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}, \textcolor{stringliteral}{"{}no plex definition given"{}});}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00405}00405                         \textcolor{keywordflow}{return} (-\/1);}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00406}00406                 \}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00407}00407                 \textcolor{keywordflow}{if} (\mbox{\hyperlink{geom__vinum_8h_acf034b996fb50e3a99f2f0d98ffecc53}{gv\_find\_plex}}(sc, p2-\/>\mbox{\hyperlink{structgv__plex_a0978e4d5dd271f5403af3cf98ae02103}{name}}) != NULL) \{}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00408}00408                         \textcolor{comment}{/* Ignore error. */}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00409}00409                         \textcolor{keywordflow}{if} (*\mbox{\hyperlink{structg__provider_a2d2060ee918007b601780f93a39c30de}{flags}} \& \mbox{\hyperlink{geom__vinum__var_8h_a916ff06e2bdbe5d20c32322c9a75128b}{GV\_FLAG\_F}})}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00410}00410                                 \textcolor{keywordflow}{continue};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00411}00411                         \mbox{\hyperlink{geom_8h_a1d51201471b52be7e19a98b0fcb144de}{gctl\_error}}(\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}, \textcolor{stringliteral}{"{}plex '\%s' already exists"{}}, p2-\/>\mbox{\hyperlink{structgv__plex_a0978e4d5dd271f5403af3cf98ae02103}{name}});}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00412}00412                         \textcolor{keywordflow}{goto} \mbox{\hyperlink{structg__provider_acacf1ee18cb6edbcfedc185846696e7f}{error}};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00413}00413                 \}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00414}00414 }
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00415}00415                 p = \mbox{\hyperlink{geom_8h_a0f190247baa73dc863a79fea9d5f6b4f}{g\_malloc}}(\textcolor{keyword}{sizeof}(*p), M\_WAITOK | M\_ZERO);}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00416}00416                 bcopy(p2, p, \textcolor{keyword}{sizeof}(*p));}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00417}00417 }
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00418}00418                 \mbox{\hyperlink{geom__vinum_8h_ab8b55e981fb9c93aa56042746dd4bf5a}{gv\_post\_event}}(sc, \mbox{\hyperlink{geom__vinum__var_8h_a5565910a1dd3dacbe9b0ac6c7cf10019}{GV\_EVENT\_CREATE\_PLEX}}, p, NULL, 0, 0);}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00419}00419         \}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00420}00420 }
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00421}00421         \textcolor{comment}{/* ... and, finally, subdisk definitions. */}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00422}00422         \textcolor{keywordflow}{for} (i = 0; i < *subdisks; i++) \{}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00423}00423                 \mbox{\hyperlink{structg__provider_acacf1ee18cb6edbcfedc185846696e7f}{error}} = 0;}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00424}00424                 snprintf(\mbox{\hyperlink{g__part__if_8m_ac14417684334d01b4e1e807a19d92816}{buf}}, \textcolor{keyword}{sizeof}(\mbox{\hyperlink{g__part__if_8m_ac14417684334d01b4e1e807a19d92816}{buf}}), \textcolor{stringliteral}{"{}sd\%d"{}}, i);}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00425}00425                 s2 = \mbox{\hyperlink{geom_8h_ab762d12640f528d8f1f60eee92bf5f3b}{gctl\_get\_paraml}}(\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}, \mbox{\hyperlink{g__part__if_8m_ac14417684334d01b4e1e807a19d92816}{buf}}, \textcolor{keyword}{sizeof}(*s2));}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00426}00426                 \textcolor{keywordflow}{if} (s2 == NULL) \{}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00427}00427                         \mbox{\hyperlink{geom_8h_a1d51201471b52be7e19a98b0fcb144de}{gctl\_error}}(\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}, \textcolor{stringliteral}{"{}no subdisk definition given"{}});}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00428}00428                         \textcolor{keywordflow}{return} (-\/1);}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00429}00429                 \}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00430}00430                 \textcolor{keywordflow}{if} (\mbox{\hyperlink{geom__vinum_8h_ada178b6592b1acfe37ad3eecc8075769}{gv\_find\_sd}}(sc, s2-\/>\mbox{\hyperlink{structgv__sd_a835bdd1e1c9adf03425b91c873eebf1e}{name}}) != NULL) \{}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00431}00431                         \textcolor{comment}{/* Ignore error. */}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00432}00432                         \textcolor{keywordflow}{if} (*\mbox{\hyperlink{structg__provider_a2d2060ee918007b601780f93a39c30de}{flags}} \& \mbox{\hyperlink{geom__vinum__var_8h_a916ff06e2bdbe5d20c32322c9a75128b}{GV\_FLAG\_F}})}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00433}00433                                 \textcolor{keywordflow}{continue};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00434}00434                         \mbox{\hyperlink{geom_8h_a1d51201471b52be7e19a98b0fcb144de}{gctl\_error}}(\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}, \textcolor{stringliteral}{"{}sd '\%s' already exists"{}}, s2-\/>\mbox{\hyperlink{structgv__sd_a835bdd1e1c9adf03425b91c873eebf1e}{name}});}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00435}00435                         \textcolor{keywordflow}{goto} \mbox{\hyperlink{structg__provider_acacf1ee18cb6edbcfedc185846696e7f}{error}};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00436}00436                 \}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00437}00437 }
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00438}00438                 s = \mbox{\hyperlink{geom_8h_a0f190247baa73dc863a79fea9d5f6b4f}{g\_malloc}}(\textcolor{keyword}{sizeof}(*s), M\_WAITOK | M\_ZERO);}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00439}00439                 bcopy(s2, s, \textcolor{keyword}{sizeof}(*s));}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00440}00440 }
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00441}00441                 \mbox{\hyperlink{geom__vinum_8h_ab8b55e981fb9c93aa56042746dd4bf5a}{gv\_post\_event}}(sc, \mbox{\hyperlink{geom__vinum__var_8h_a4ab966fca5e2e79772385350fbc3b368}{GV\_EVENT\_CREATE\_SD}}, s, NULL, 0, 0);}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00442}00442         \}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00443}00443 }
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00444}00444 \mbox{\hyperlink{structg__provider_acacf1ee18cb6edbcfedc185846696e7f}{error}}:}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00445}00445         \mbox{\hyperlink{geom__vinum_8h_ab8b55e981fb9c93aa56042746dd4bf5a}{gv\_post\_event}}(sc, \mbox{\hyperlink{geom__vinum__var_8h_a3b9d93a59b0f7777ed50c19e9f2b730c}{GV\_EVENT\_SETUP\_OBJECTS}}, sc, NULL, 0, 0);}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00446}00446         \mbox{\hyperlink{geom__vinum_8h_ab8b55e981fb9c93aa56042746dd4bf5a}{gv\_post\_event}}(sc, \mbox{\hyperlink{geom__vinum__var_8h_a3f48efe317df71ff850737d390626744}{GV\_EVENT\_SAVE\_CONFIG}}, sc, NULL, 0, 0);}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00447}00447 }
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00448}00448         \textcolor{keywordflow}{return} (0);}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00449}00449 \}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00450}00450 }
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00451}00451 \textcolor{keyword}{static} \textcolor{keywordtype}{void}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00452}\mbox{\hyperlink{geom__vinum_8c_a57f3f830214bb5b1b543c3477b3c3879}{00452}} \mbox{\hyperlink{geom__vinum_8c_a57f3f830214bb5b1b543c3477b3c3879}{gv\_config}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structgctl__req}{gctl\_req}} *\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}, \textcolor{keyword}{struct} \mbox{\hyperlink{structg__class}{g\_class}} *\mbox{\hyperlink{g__raid__md__if_8m_a4f7502795edfd2493d3d223d0df33e1d}{mp}}, \textcolor{keywordtype}{char} \textcolor{keyword}{const} *verb)}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00453}00453 \{}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00454}00454         \textcolor{keyword}{struct }\mbox{\hyperlink{structg__geom}{g\_geom}} *\mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00455}00455         \textcolor{keyword}{struct }\mbox{\hyperlink{structgv__softc}{gv\_softc}} *sc;}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00456}00456         \textcolor{keyword}{struct }sbuf *\mbox{\hyperlink{g__part__if_8m_a4c23eb4bab5aa5d69bd84384b94d1f79}{sb}};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00457}00457         \textcolor{keywordtype}{char} *comment;}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00458}00458 }
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00459}00459         \mbox{\hyperlink{geom_8h_a1898dc8c812faa5de231ab840e8562bf}{g\_topology\_assert}}();}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00460}00460 }
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00461}00461         \mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}} = LIST\_FIRST(\&\mbox{\hyperlink{g__raid__md__if_8m_a4f7502795edfd2493d3d223d0df33e1d}{mp}}-\/>geom);}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00462}00462         sc = \mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}}-\/>\mbox{\hyperlink{structg__geom_aa83c08c83459420f6cbcfe64c6099466}{softc}};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00463}00463 }
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00464}00464         \textcolor{keywordflow}{if} (!strcmp(verb, \textcolor{stringliteral}{"{}attach"{}})) \{}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00465}00465                 \mbox{\hyperlink{geom__vinum_8c_aecc9bd9f59d221547b3f9771b5e0216d}{gv\_attach}}(sc, \mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}});}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00466}00466 }
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00467}00467         \} \textcolor{keywordflow}{else} \textcolor{keywordflow}{if} (!strcmp(verb, \textcolor{stringliteral}{"{}concat"{}})) \{}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00468}00468                 \mbox{\hyperlink{geom__vinum_8h_a02fe8a063b06bf073220facfa8f636e2}{gv\_concat}}(\mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}}, \mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}});}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00469}00469 }
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00470}00470         \} \textcolor{keywordflow}{else} \textcolor{keywordflow}{if} (!strcmp(verb, \textcolor{stringliteral}{"{}detach"{}})) \{}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00471}00471                 \mbox{\hyperlink{geom__vinum_8c_ada3ee9fc65d307d7c18ab1d44fb86d1b}{gv\_detach}}(sc, \mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}});}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00472}00472 }
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00473}00473         \} \textcolor{keywordflow}{else} \textcolor{keywordflow}{if} (!strcmp(verb, \textcolor{stringliteral}{"{}list"{}})) \{}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00474}00474                 \mbox{\hyperlink{geom__vinum_8h_afd6088dbe8f88227e3d832d787437d31}{gv\_list}}(\mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}}, \mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}});}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00475}00475 }
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00476}00476         \textcolor{comment}{/* Save our configuration back to disk. */}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00477}00477         \} \textcolor{keywordflow}{else} \textcolor{keywordflow}{if} (!strcmp(verb, \textcolor{stringliteral}{"{}saveconfig"{}})) \{}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00478}00478                 \mbox{\hyperlink{geom__vinum_8h_ab8b55e981fb9c93aa56042746dd4bf5a}{gv\_post\_event}}(sc, \mbox{\hyperlink{geom__vinum__var_8h_a3f48efe317df71ff850737d390626744}{GV\_EVENT\_SAVE\_CONFIG}}, sc, NULL, 0, 0);}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00479}00479 }
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00480}00480         \textcolor{comment}{/* Return configuration in string form. */}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00481}00481         \} \textcolor{keywordflow}{else} \textcolor{keywordflow}{if} (!strcmp(verb, \textcolor{stringliteral}{"{}getconfig"{}})) \{}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00482}00482                 comment = \mbox{\hyperlink{geom_8h_a3e3d6786258b3336d55a96607f9b8eb8}{gctl\_get\_param}}(\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}, \textcolor{stringliteral}{"{}comment"{}}, NULL);}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00483}00483                 \textcolor{keywordflow}{if} (comment == NULL) \{}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00484}00484                         \mbox{\hyperlink{geom_8h_a1d51201471b52be7e19a98b0fcb144de}{gctl\_error}}(\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}, \textcolor{stringliteral}{"{}no comment parameter given"{}});}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00485}00485                         \textcolor{keywordflow}{return};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00486}00486                 \}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00487}00487                 \mbox{\hyperlink{g__part__if_8m_a4c23eb4bab5aa5d69bd84384b94d1f79}{sb}} = sbuf\_new(NULL, NULL, \mbox{\hyperlink{geom__vinum__var_8h_a6c3c83ed812a770435735ffed804e98f}{GV\_CFG\_LEN}}, SBUF\_FIXEDLEN);}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00488}00488                 \mbox{\hyperlink{geom__vinum_8h_a648dad3068f6e60194ff25666b30da72}{gv\_format\_config}}(sc, \mbox{\hyperlink{g__part__if_8m_a4c23eb4bab5aa5d69bd84384b94d1f79}{sb}}, 0, comment);}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00489}00489                 sbuf\_finish(\mbox{\hyperlink{g__part__if_8m_a4c23eb4bab5aa5d69bd84384b94d1f79}{sb}});}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00490}00490                 \mbox{\hyperlink{geom_8h_abf5d22b40dea53afe414a88271754c6a}{gctl\_set\_param}}(\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}, \textcolor{stringliteral}{"{}config"{}}, sbuf\_data(\mbox{\hyperlink{g__part__if_8m_a4c23eb4bab5aa5d69bd84384b94d1f79}{sb}}), sbuf\_len(\mbox{\hyperlink{g__part__if_8m_a4c23eb4bab5aa5d69bd84384b94d1f79}{sb}}) + 1);}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00491}00491                 sbuf\_delete(\mbox{\hyperlink{g__part__if_8m_a4c23eb4bab5aa5d69bd84384b94d1f79}{sb}});}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00492}00492 }
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00493}00493         \} \textcolor{keywordflow}{else} \textcolor{keywordflow}{if} (!strcmp(verb, \textcolor{stringliteral}{"{}create"{}})) \{}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00494}00494                 \mbox{\hyperlink{geom__vinum_8c_a4384b8584865132c041dda2040dd363c}{gv\_create}}(\mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}}, \mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}});}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00495}00495 }
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00496}00496         \} \textcolor{keywordflow}{else} \textcolor{keywordflow}{if} (!strcmp(verb, \textcolor{stringliteral}{"{}mirror"{}})) \{}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00497}00497                 \mbox{\hyperlink{geom__vinum_8h_a540fc39d410e6449f1b07129086a94fc}{gv\_mirror}}(\mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}}, \mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}});}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00498}00498 }
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00499}00499         \} \textcolor{keywordflow}{else} \textcolor{keywordflow}{if} (!strcmp(verb, \textcolor{stringliteral}{"{}move"{}})) \{}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00500}00500                 \mbox{\hyperlink{geom__vinum_8h_aafa570af7538fde4b083172b40b93acf}{gv\_move}}(\mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}}, \mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}});}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00501}00501 }
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00502}00502         \} \textcolor{keywordflow}{else} \textcolor{keywordflow}{if} (!strcmp(verb, \textcolor{stringliteral}{"{}raid5"{}})) \{}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00503}00503                 \mbox{\hyperlink{geom__vinum_8h_af6823ddbf92b5934e3c209f0be0bbd61}{gv\_raid5}}(\mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}}, \mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}});}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00504}00504 }
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00505}00505         \} \textcolor{keywordflow}{else} \textcolor{keywordflow}{if} (!strcmp(verb, \textcolor{stringliteral}{"{}rebuildparity"{}}) ||}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00506}00506             !strcmp(verb, \textcolor{stringliteral}{"{}checkparity"{}})) \{}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00507}00507                 \mbox{\hyperlink{geom__vinum_8c_ac02687e839aebfc5ed48b7fa65bf5e5c}{gv\_parityop}}(sc, \mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}});}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00508}00508 }
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00509}00509         \} \textcolor{keywordflow}{else} \textcolor{keywordflow}{if} (!strcmp(verb, \textcolor{stringliteral}{"{}remove"{}})) \{}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00510}00510                 \mbox{\hyperlink{geom__vinum_8h_a915848df58883d205240d5d38ca90f41}{gv\_remove}}(\mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}}, \mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}});}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00511}00511 }
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00512}00512         \} \textcolor{keywordflow}{else} \textcolor{keywordflow}{if} (!strcmp(verb, \textcolor{stringliteral}{"{}rename"{}})) \{}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00513}00513                 \mbox{\hyperlink{geom__vinum_8h_a354cb083db2ab6045fee98e2e96d162c}{gv\_rename}}(\mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}}, \mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}});}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00514}00514 }
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00515}00515         \} \textcolor{keywordflow}{else} \textcolor{keywordflow}{if} (!strcmp(verb, \textcolor{stringliteral}{"{}resetconfig"{}})) \{}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00516}00516                 \mbox{\hyperlink{geom__vinum_8h_ab8b55e981fb9c93aa56042746dd4bf5a}{gv\_post\_event}}(sc, \mbox{\hyperlink{geom__vinum__var_8h_af910d594c3d69ffff471443dbee27fcc}{GV\_EVENT\_RESET\_CONFIG}}, sc, NULL, 0, 0);}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00517}00517 }
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00518}00518         \} \textcolor{keywordflow}{else} \textcolor{keywordflow}{if} (!strcmp(verb, \textcolor{stringliteral}{"{}start"{}})) \{}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00519}00519                 \mbox{\hyperlink{geom__vinum_8h_a8d8d48b1c9ee18deba4e090122b581b1}{gv\_start\_obj}}(\mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}}, \mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}});}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00520}00520 }
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00521}00521         \} \textcolor{keywordflow}{else} \textcolor{keywordflow}{if} (!strcmp(verb, \textcolor{stringliteral}{"{}stripe"{}})) \{}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00522}00522                 \mbox{\hyperlink{geom__vinum_8h_a926b8a58fa4f90b8ab9d97a8f7777dcf}{gv\_stripe}}(\mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}}, \mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}});}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00523}00523 }
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00524}00524         \} \textcolor{keywordflow}{else} \textcolor{keywordflow}{if} (!strcmp(verb, \textcolor{stringliteral}{"{}setstate"{}})) \{}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00525}00525                 \mbox{\hyperlink{geom__vinum_8h_a1bc775115c46b8a5061e5808a6dcfed1}{gv\_setstate}}(\mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}}, \mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}});}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00526}00526         \} \textcolor{keywordflow}{else}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00527}00527                 \mbox{\hyperlink{geom_8h_a1d51201471b52be7e19a98b0fcb144de}{gctl\_error}}(\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}, \textcolor{stringliteral}{"{}Unknown verb parameter"{}});}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00528}00528 \}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00529}00529 }
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00530}00530 \textcolor{keyword}{static} \textcolor{keywordtype}{void}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00531}\mbox{\hyperlink{geom__vinum_8c_ac02687e839aebfc5ed48b7fa65bf5e5c}{00531}} \mbox{\hyperlink{geom__vinum_8c_ac02687e839aebfc5ed48b7fa65bf5e5c}{gv\_parityop}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structgv__softc}{gv\_softc}} *sc, \textcolor{keyword}{struct} \mbox{\hyperlink{structgctl__req}{gctl\_req}} *\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}})}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00532}00532 \{}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00533}00533         \textcolor{keyword}{struct }\mbox{\hyperlink{structgv__plex}{gv\_plex}} *p;}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00534}00534         \textcolor{keywordtype}{int} *\mbox{\hyperlink{structgv__plex_a5c5a39055cb50589d0f9ee76860d6a12}{flags}}, *rebuild, \mbox{\hyperlink{geom__flashmap_8c_a763fd8db6bba8fbbbc113ca0d61c47c2}{type}};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00535}00535         \textcolor{keywordtype}{char} *plex;}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00536}00536 }
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00537}00537         plex = \mbox{\hyperlink{geom_8h_a3e3d6786258b3336d55a96607f9b8eb8}{gctl\_get\_param}}(\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}, \textcolor{stringliteral}{"{}plex"{}}, NULL);}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00538}00538         \textcolor{keywordflow}{if} (plex == NULL) \{}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00539}00539                 \mbox{\hyperlink{geom_8h_a1d51201471b52be7e19a98b0fcb144de}{gctl\_error}}(\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}, \textcolor{stringliteral}{"{}no plex given"{}});}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00540}00540                 \textcolor{keywordflow}{return};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00541}00541         \}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00542}00542 }
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00543}00543         \mbox{\hyperlink{structgv__plex_a5c5a39055cb50589d0f9ee76860d6a12}{flags}} = \mbox{\hyperlink{geom_8h_ab762d12640f528d8f1f60eee92bf5f3b}{gctl\_get\_paraml}}(\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}, \textcolor{stringliteral}{"{}flags"{}}, \textcolor{keyword}{sizeof}(*\mbox{\hyperlink{structgv__plex_a5c5a39055cb50589d0f9ee76860d6a12}{flags}}));}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00544}00544         \textcolor{keywordflow}{if} (\mbox{\hyperlink{structgv__plex_a5c5a39055cb50589d0f9ee76860d6a12}{flags}} == NULL) \{}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00545}00545                 \mbox{\hyperlink{geom_8h_a1d51201471b52be7e19a98b0fcb144de}{gctl\_error}}(\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}, \textcolor{stringliteral}{"{}no flags given"{}});}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00546}00546                 \textcolor{keywordflow}{return};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00547}00547         \}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00548}00548 }
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00549}00549         rebuild = \mbox{\hyperlink{geom_8h_ab762d12640f528d8f1f60eee92bf5f3b}{gctl\_get\_paraml}}(\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}, \textcolor{stringliteral}{"{}rebuild"{}}, \textcolor{keyword}{sizeof}(*rebuild));}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00550}00550         \textcolor{keywordflow}{if} (rebuild == NULL) \{}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00551}00551                 \mbox{\hyperlink{geom_8h_a1d51201471b52be7e19a98b0fcb144de}{gctl\_error}}(\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}, \textcolor{stringliteral}{"{}no operation given"{}});}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00552}00552                 \textcolor{keywordflow}{return};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00553}00553         \}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00554}00554 }
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00555}00555         \mbox{\hyperlink{geom__flashmap_8c_a763fd8db6bba8fbbbc113ca0d61c47c2}{type}} = \mbox{\hyperlink{geom__vinum_8h_adf857930fd65dd84870be1db99e860f7}{gv\_object\_type}}(sc, plex);}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00556}00556         \textcolor{keywordflow}{if} (\mbox{\hyperlink{geom__flashmap_8c_a763fd8db6bba8fbbbc113ca0d61c47c2}{type}} != \mbox{\hyperlink{geom__vinum__var_8h_a2a21f3f69c0e60c425744a299cd49a6f}{GV\_TYPE\_PLEX}}) \{}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00557}00557                 \mbox{\hyperlink{geom_8h_a1d51201471b52be7e19a98b0fcb144de}{gctl\_error}}(\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}, \textcolor{stringliteral}{"{}'\%s' is not a plex"{}}, plex);}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00558}00558                 \textcolor{keywordflow}{return};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00559}00559         \}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00560}00560         p = \mbox{\hyperlink{geom__vinum_8h_acf034b996fb50e3a99f2f0d98ffecc53}{gv\_find\_plex}}(sc, plex);}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00561}00561 }
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00562}00562         \textcolor{keywordflow}{if} (p-\/>\mbox{\hyperlink{structgv__plex_a323004a8a80cc2691e845ba155ad55f0}{state}} != \mbox{\hyperlink{geom__vinum__var_8h_a2a5ed58267acc541957b387d71bd868d}{GV\_PLEX\_UP}}) \{}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00563}00563                 \mbox{\hyperlink{geom_8h_a1d51201471b52be7e19a98b0fcb144de}{gctl\_error}}(\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}, \textcolor{stringliteral}{"{}plex \%s is not completely accessible"{}},}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00564}00564                     p-\/>\mbox{\hyperlink{structgv__plex_a0978e4d5dd271f5403af3cf98ae02103}{name}});}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00565}00565                 \textcolor{keywordflow}{return};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00566}00566         \}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00567}00567 }
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00568}00568         \textcolor{keywordflow}{if} (p-\/>\mbox{\hyperlink{structgv__plex_ac35ac16eab74d053052bdb850ff7efbd}{org}} != \mbox{\hyperlink{geom__vinum__var_8h_a77d0838869414279112148a8b1efee50}{GV\_PLEX\_RAID5}}) \{}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00569}00569                 \mbox{\hyperlink{geom_8h_a1d51201471b52be7e19a98b0fcb144de}{gctl\_error}}(\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}, \textcolor{stringliteral}{"{}plex \%s is not a RAID5 plex"{}}, p-\/>\mbox{\hyperlink{structgv__plex_a0978e4d5dd271f5403af3cf98ae02103}{name}});}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00570}00570                 \textcolor{keywordflow}{return};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00571}00571         \}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00572}00572 }
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00573}00573         \textcolor{comment}{/* Put it in the event queue. */}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00574}00574         \textcolor{comment}{/* XXX: The state of the plex might have changed when this event is}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00575}00575 \textcolor{comment}{         * picked up ... We should perhaps check this afterwards. */}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00576}00576         \textcolor{keywordflow}{if} (*rebuild)}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00577}00577                 \mbox{\hyperlink{geom__vinum_8h_ab8b55e981fb9c93aa56042746dd4bf5a}{gv\_post\_event}}(sc, \mbox{\hyperlink{geom__vinum__var_8h_a3c68affa6a823d58135adeceecf262b3}{GV\_EVENT\_PARITY\_REBUILD}}, p, NULL, 0, 0);}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00578}00578         \textcolor{keywordflow}{else}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00579}00579                 \mbox{\hyperlink{geom__vinum_8h_ab8b55e981fb9c93aa56042746dd4bf5a}{gv\_post\_event}}(sc, \mbox{\hyperlink{geom__vinum__var_8h_a6bae96aa1c56a021d71b0c54ebc3d4b0}{GV\_EVENT\_PARITY\_CHECK}}, p, NULL, 0, 0);}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00580}00580 \}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00581}00581 }
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00582}00582 \textcolor{keyword}{static} \textcolor{keyword}{struct }\mbox{\hyperlink{structg__geom}{g\_geom}} *}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00583}\mbox{\hyperlink{geom__vinum_8c_a0632af58b6852e46204a4273777044d2}{00583}} \mbox{\hyperlink{geom__vinum_8c_a0632af58b6852e46204a4273777044d2}{gv\_taste}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structg__class}{g\_class}} *\mbox{\hyperlink{g__raid__md__if_8m_a4f7502795edfd2493d3d223d0df33e1d}{mp}}, \textcolor{keyword}{struct} \mbox{\hyperlink{structg__provider}{g\_provider}} *\mbox{\hyperlink{g__part__if_8m_a9bc7638f295763b77465c5ebebbd3442}{pp}}, \textcolor{keywordtype}{int} \mbox{\hyperlink{structg__geom_afa218bd6b4ead71e6238ecd0577e1cc9}{flags}} \_\_unused)}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00584}00584 \{}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00585}00585         \textcolor{keyword}{struct }\mbox{\hyperlink{structg__geom}{g\_geom}} *\mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00586}00586         \textcolor{keyword}{struct }\mbox{\hyperlink{structg__consumer}{g\_consumer}} *\mbox{\hyperlink{g__part__if_8m_a294f18324585ff37641fb8aa1c9ccd82}{cp}};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00587}00587         \textcolor{keyword}{struct }\mbox{\hyperlink{structgv__softc}{gv\_softc}} *sc;}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00588}00588         \textcolor{keyword}{struct }\mbox{\hyperlink{structgv__hdr}{gv\_hdr}} vhdr;}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00589}00589         \textcolor{keywordtype}{int} error;}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00590}00590 }
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00591}00591         \mbox{\hyperlink{geom_8h_a1898dc8c812faa5de231ab840e8562bf}{g\_topology\_assert}}();}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00592}00592         \mbox{\hyperlink{geom_8h_a7588d7ea7fbf7180b345df84b8797166}{g\_trace}}(\mbox{\hyperlink{geom_8h_a7f1804ff1a11f763a1ab5bdbd3e1287c}{G\_T\_TOPOLOGY}}, \textcolor{stringliteral}{"{}gv\_taste(\%s, \%s)"{}}, \mbox{\hyperlink{g__raid__md__if_8m_a4f7502795edfd2493d3d223d0df33e1d}{mp}}-\/>\mbox{\hyperlink{structg__class_a66bf8381cf0afbf7ccdebfa6b90a4a96}{name}}, \mbox{\hyperlink{g__part__if_8m_a9bc7638f295763b77465c5ebebbd3442}{pp}}-\/>\mbox{\hyperlink{structg__provider_a2bffb416ee58cf4df7839c6fd5ec004a}{name}});}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00593}00593 }
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00594}00594         \mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}} = LIST\_FIRST(\&\mbox{\hyperlink{g__raid__md__if_8m_a4f7502795edfd2493d3d223d0df33e1d}{mp}}-\/>geom);}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00595}00595         \textcolor{keywordflow}{if} (\mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}} == NULL) \{}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00596}00596                 \mbox{\hyperlink{geom__vinum_8h_a28cdbd7c30e435ff9ec8676f493593a0}{G\_VINUM\_DEBUG}}(0, \textcolor{stringliteral}{"{}error: tasting, but not initialized?"{}});}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00597}00597                 \textcolor{keywordflow}{return} (NULL);}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00598}00598         \}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00599}00599         sc = \mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}}-\/>\mbox{\hyperlink{structg__geom_aa83c08c83459420f6cbcfe64c6099466}{softc}};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00600}00600 }
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00601}00601         \mbox{\hyperlink{g__part__if_8m_a294f18324585ff37641fb8aa1c9ccd82}{cp}} = \mbox{\hyperlink{geom_8h_aef9ca3f0eecc1b245c3c9cd0bac1cdc4}{g\_new\_consumer}}(\mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}});}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00602}00602         \mbox{\hyperlink{g__part__if_8m_a294f18324585ff37641fb8aa1c9ccd82}{cp}}-\/>\mbox{\hyperlink{structg__consumer_acf792357913c0445233b71f8259764d9}{flags}} |= \mbox{\hyperlink{geom_8h_a712586d00e1fe2a8069adfc048fee210}{G\_CF\_DIRECT\_SEND}} | \mbox{\hyperlink{geom_8h_a2184f2512ddb7a67ddbb71409cdd953f}{G\_CF\_DIRECT\_RECEIVE}};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00603}00603         \textcolor{keywordflow}{if} (\mbox{\hyperlink{geom_8h_a7f6ee69db47bae6ff5284f6a9cfceb91}{g\_attach}}(\mbox{\hyperlink{g__part__if_8m_a294f18324585ff37641fb8aa1c9ccd82}{cp}}, \mbox{\hyperlink{g__part__if_8m_a9bc7638f295763b77465c5ebebbd3442}{pp}}) != 0) \{}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00604}00604                 \mbox{\hyperlink{geom_8h_a9f53f6118c5e44ca2bcbd7ae548597b9}{g\_destroy\_consumer}}(\mbox{\hyperlink{g__part__if_8m_a294f18324585ff37641fb8aa1c9ccd82}{cp}});}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00605}00605                 \textcolor{keywordflow}{return} (NULL);}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00606}00606         \}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00607}00607         \textcolor{keywordflow}{if} (\mbox{\hyperlink{geom_8h_a27b7c72cc3bc5a4d07ce5976e1aa1b58}{g\_access}}(\mbox{\hyperlink{g__part__if_8m_a294f18324585ff37641fb8aa1c9ccd82}{cp}}, 1, 0, 0) != 0) \{}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00608}00608                 \mbox{\hyperlink{geom_8h_a037802c2ec5d43fcf1222215f9f8a735}{g\_detach}}(\mbox{\hyperlink{g__part__if_8m_a294f18324585ff37641fb8aa1c9ccd82}{cp}});}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00609}00609                 \mbox{\hyperlink{geom_8h_a9f53f6118c5e44ca2bcbd7ae548597b9}{g\_destroy\_consumer}}(\mbox{\hyperlink{g__part__if_8m_a294f18324585ff37641fb8aa1c9ccd82}{cp}});}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00610}00610                 \textcolor{keywordflow}{return} (NULL);}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00611}00611         \}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00612}00612         \mbox{\hyperlink{geom_8h_a4628d4de49ba84e7a6126cc30d23b83a}{g\_topology\_unlock}}();}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00613}00613 }
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00614}00614         error = \mbox{\hyperlink{geom__vinum_8h_af76d712056b52012f77cbecc2925e52b}{gv\_read\_header}}(\mbox{\hyperlink{g__part__if_8m_a294f18324585ff37641fb8aa1c9ccd82}{cp}}, \&vhdr);}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00615}00615 }
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00616}00616         \mbox{\hyperlink{geom_8h_a232419d2cfa06ff3f4ff7551041aed31}{g\_topology\_lock}}();}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00617}00617         \mbox{\hyperlink{geom_8h_a27b7c72cc3bc5a4d07ce5976e1aa1b58}{g\_access}}(\mbox{\hyperlink{g__part__if_8m_a294f18324585ff37641fb8aa1c9ccd82}{cp}}, -\/1, 0, 0);}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00618}00618         \mbox{\hyperlink{geom_8h_a037802c2ec5d43fcf1222215f9f8a735}{g\_detach}}(\mbox{\hyperlink{g__part__if_8m_a294f18324585ff37641fb8aa1c9ccd82}{cp}});}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00619}00619         \mbox{\hyperlink{geom_8h_a9f53f6118c5e44ca2bcbd7ae548597b9}{g\_destroy\_consumer}}(\mbox{\hyperlink{g__part__if_8m_a294f18324585ff37641fb8aa1c9ccd82}{cp}});}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00620}00620 }
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00621}00621         \textcolor{comment}{/* Check if what we've been given is a valid vinum drive. */}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00622}00622         \textcolor{keywordflow}{if} (!error)}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00623}00623                 \mbox{\hyperlink{geom__vinum_8h_ab8b55e981fb9c93aa56042746dd4bf5a}{gv\_post\_event}}(sc, \mbox{\hyperlink{geom__vinum__var_8h_a195ede1f328c4badc1d6a30ea866d785}{GV\_EVENT\_DRIVE\_TASTED}}, \mbox{\hyperlink{g__part__if_8m_a9bc7638f295763b77465c5ebebbd3442}{pp}}, NULL, 0, 0);}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00624}00624 }
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00625}00625         \textcolor{keywordflow}{return} (NULL);}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00626}00626 \}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00627}00627 }
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00628}00628 \textcolor{keywordtype}{void}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00629}\mbox{\hyperlink{geom__vinum_8c_a13e60bb0a98d78c00fc33d3d57e55511}{00629}} \mbox{\hyperlink{geom__vinum_8c_a13e60bb0a98d78c00fc33d3d57e55511}{gv\_worker}}(\textcolor{keywordtype}{void} *arg)}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00630}00630 \{}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00631}00631         \textcolor{keyword}{struct }\mbox{\hyperlink{structg__provider}{g\_provider}} *\mbox{\hyperlink{g__part__if_8m_a9bc7638f295763b77465c5ebebbd3442}{pp}};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00632}00632         \textcolor{keyword}{struct }\mbox{\hyperlink{structgv__softc}{gv\_softc}} *sc;}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00633}00633         \textcolor{keyword}{struct }\mbox{\hyperlink{structgv__event}{gv\_event}} *ev;}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00634}00634         \textcolor{keyword}{struct }\mbox{\hyperlink{structgv__volume}{gv\_volume}} *v;}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00635}00635         \textcolor{keyword}{struct }\mbox{\hyperlink{structgv__plex}{gv\_plex}} *p;}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00636}00636         \textcolor{keyword}{struct }\mbox{\hyperlink{structgv__sd}{gv\_sd}} *s;}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00637}00637         \textcolor{keyword}{struct }\mbox{\hyperlink{structgv__drive}{gv\_drive}} *d;}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00638}00638         \textcolor{keyword}{struct }bio *\mbox{\hyperlink{g__part__if_8m_a3786db8db96c32f69df9f7cd325a7507}{bp}};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00639}00639         \textcolor{keywordtype}{int} newstate, flags, err, rename;}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00640}00640         \textcolor{keywordtype}{char} *newname;}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00641}00641         off\_t \mbox{\hyperlink{g__raid__tr__if_8m_ad5f0842c40c7e46344fd8df70187fa0f}{offset}};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00642}00642 }
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00643}00643         sc = arg;}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00644}00644         KASSERT(sc != NULL, (\textcolor{stringliteral}{"{}NULL sc"{}}));}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00645}00645         \textcolor{keywordflow}{for} (;;) \{}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00646}00646                 \textcolor{comment}{/* Look at the events first... */}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00647}00647                 ev = \mbox{\hyperlink{geom__vinum_8h_a3129e9db2241f5c43f8f3a16d2adb25b}{gv\_get\_event}}(sc);}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00648}00648                 \textcolor{keywordflow}{if} (ev != NULL) \{}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00649}00649                         \mbox{\hyperlink{geom__vinum_8h_af95ce0908a77d1d2dadff8566112a81f}{gv\_remove\_event}}(sc, ev);}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00650}00650 }
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00651}00651                         \textcolor{keywordflow}{switch} (ev-\/>\mbox{\hyperlink{structgv__event_aa246af9f1f13d0315a3df56bf55cb9f8}{type}}) \{}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00652}00652                         \textcolor{keywordflow}{case} \mbox{\hyperlink{geom__vinum__var_8h_a195ede1f328c4badc1d6a30ea866d785}{GV\_EVENT\_DRIVE\_TASTED}}:}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00653}00653                                 \mbox{\hyperlink{geom__vinum_8h_a28cdbd7c30e435ff9ec8676f493593a0}{G\_VINUM\_DEBUG}}(2, \textcolor{stringliteral}{"{}event 'drive tasted'"{}});}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00654}00654                                 \mbox{\hyperlink{g__part__if_8m_a9bc7638f295763b77465c5ebebbd3442}{pp}} = ev-\/>\mbox{\hyperlink{structgv__event_ae6a3b4859b95ebb6543ed6d7e74bd238}{arg1}};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00655}00655                                 \mbox{\hyperlink{geom__vinum_8h_ab50b2893d4d0c46c5c01e5d8a1834a81}{gv\_drive\_tasted}}(sc, \mbox{\hyperlink{g__part__if_8m_a9bc7638f295763b77465c5ebebbd3442}{pp}});}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00656}00656                                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00657}00657 }
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00658}00658                         \textcolor{keywordflow}{case} \mbox{\hyperlink{geom__vinum__var_8h_af6c963b13a8139c90c26098807a626c3}{GV\_EVENT\_DRIVE\_LOST}}:}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00659}00659                                 \mbox{\hyperlink{geom__vinum_8h_a28cdbd7c30e435ff9ec8676f493593a0}{G\_VINUM\_DEBUG}}(2, \textcolor{stringliteral}{"{}event 'drive lost'"{}});}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00660}00660                                 d = ev-\/>\mbox{\hyperlink{structgv__event_ae6a3b4859b95ebb6543ed6d7e74bd238}{arg1}};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00661}00661                                 \mbox{\hyperlink{geom__vinum_8h_ac808d9f9e79bcbc848b39c62cc819b37}{gv\_drive\_lost}}(sc, d);}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00662}00662                                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00663}00663 }
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00664}00664                         \textcolor{keywordflow}{case} \mbox{\hyperlink{geom__vinum__var_8h_a480b951d3b2be99105033ae9610e6649}{GV\_EVENT\_CREATE\_DRIVE}}:}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00665}00665                                 \mbox{\hyperlink{geom__vinum_8h_a28cdbd7c30e435ff9ec8676f493593a0}{G\_VINUM\_DEBUG}}(2, \textcolor{stringliteral}{"{}event 'create drive'"{}});}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00666}00666                                 d = ev-\/>\mbox{\hyperlink{structgv__event_ae6a3b4859b95ebb6543ed6d7e74bd238}{arg1}};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00667}00667                                 \mbox{\hyperlink{geom__vinum_8h_a149347b41414278e174f707c82b038bc}{gv\_create\_drive}}(sc, d);}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00668}00668                                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00669}00669 }
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00670}00670                         \textcolor{keywordflow}{case} \mbox{\hyperlink{geom__vinum__var_8h_a6888b5f96c632fb9855773ada490edc1}{GV\_EVENT\_CREATE\_VOLUME}}:}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00671}00671                                 \mbox{\hyperlink{geom__vinum_8h_a28cdbd7c30e435ff9ec8676f493593a0}{G\_VINUM\_DEBUG}}(2, \textcolor{stringliteral}{"{}event 'create volume'"{}});}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00672}00672                                 v = ev-\/>\mbox{\hyperlink{structgv__event_ae6a3b4859b95ebb6543ed6d7e74bd238}{arg1}};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00673}00673                                 \mbox{\hyperlink{geom__vinum_8h_a6253324a15c9a70255e3f54d309ffbbf}{gv\_create\_volume}}(sc, v);}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00674}00674                                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00675}00675 }
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00676}00676                         \textcolor{keywordflow}{case} \mbox{\hyperlink{geom__vinum__var_8h_a5565910a1dd3dacbe9b0ac6c7cf10019}{GV\_EVENT\_CREATE\_PLEX}}:}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00677}00677                                 \mbox{\hyperlink{geom__vinum_8h_a28cdbd7c30e435ff9ec8676f493593a0}{G\_VINUM\_DEBUG}}(2, \textcolor{stringliteral}{"{}event 'create plex'"{}});}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00678}00678                                 p = ev-\/>\mbox{\hyperlink{structgv__event_ae6a3b4859b95ebb6543ed6d7e74bd238}{arg1}};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00679}00679                                 \mbox{\hyperlink{geom__vinum_8h_a62689006ab48f1e07d743f209183ee44}{gv\_create\_plex}}(sc, p);}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00680}00680                                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00681}00681 }
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00682}00682                         \textcolor{keywordflow}{case} \mbox{\hyperlink{geom__vinum__var_8h_a4ab966fca5e2e79772385350fbc3b368}{GV\_EVENT\_CREATE\_SD}}:}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00683}00683                                 \mbox{\hyperlink{geom__vinum_8h_a28cdbd7c30e435ff9ec8676f493593a0}{G\_VINUM\_DEBUG}}(2, \textcolor{stringliteral}{"{}event 'create sd'"{}});}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00684}00684                                 s = ev-\/>\mbox{\hyperlink{structgv__event_ae6a3b4859b95ebb6543ed6d7e74bd238}{arg1}};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00685}00685                                 \mbox{\hyperlink{geom__vinum_8h_a86c577f5b3bb6a8d2bd09f44f07fa3e0}{gv\_create\_sd}}(sc, s);}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00686}00686                                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00687}00687 }
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00688}00688                         \textcolor{keywordflow}{case} \mbox{\hyperlink{geom__vinum__var_8h_abb0a5ac4c1f727f5a4ce2bb3bdebc8f8}{GV\_EVENT\_RM\_DRIVE}}:}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00689}00689                                 \mbox{\hyperlink{geom__vinum_8h_a28cdbd7c30e435ff9ec8676f493593a0}{G\_VINUM\_DEBUG}}(2, \textcolor{stringliteral}{"{}event 'remove drive'"{}});}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00690}00690                                 d = ev-\/>\mbox{\hyperlink{structgv__event_ae6a3b4859b95ebb6543ed6d7e74bd238}{arg1}};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00691}00691                                 flags = ev-\/>\mbox{\hyperlink{structgv__event_ac9f7c22c49b43e0e0730d6e4f75cac51}{arg3}};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00692}00692                                 \mbox{\hyperlink{geom__vinum_8h_ab74e698f1907ce7a4111739b4567a011}{gv\_rm\_drive}}(sc, d, flags);}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00693}00693                                 \textcolor{comment}{/*gv\_setup\_objects(sc);*/}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00694}00694                                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00695}00695 }
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00696}00696                         \textcolor{keywordflow}{case} \mbox{\hyperlink{geom__vinum__var_8h_ac17d0d1cd7fa94ded622c3395ccae3f0}{GV\_EVENT\_RM\_VOLUME}}:}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00697}00697                                 \mbox{\hyperlink{geom__vinum_8h_a28cdbd7c30e435ff9ec8676f493593a0}{G\_VINUM\_DEBUG}}(2, \textcolor{stringliteral}{"{}event 'remove volume'"{}});}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00698}00698                                 v = ev-\/>\mbox{\hyperlink{structgv__event_ae6a3b4859b95ebb6543ed6d7e74bd238}{arg1}};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00699}00699                                 \mbox{\hyperlink{geom__vinum_8h_a11f117cb614cf9043a89dfd8f34824cf}{gv\_rm\_vol}}(sc, v);}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00700}00700                                 \textcolor{comment}{/*gv\_setup\_objects(sc);*/}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00701}00701                                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00702}00702 }
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00703}00703                         \textcolor{keywordflow}{case} \mbox{\hyperlink{geom__vinum__var_8h_ac801d3ac3883ae3f61ed231fffea6172}{GV\_EVENT\_RM\_PLEX}}:}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00704}00704                                 \mbox{\hyperlink{geom__vinum_8h_a28cdbd7c30e435ff9ec8676f493593a0}{G\_VINUM\_DEBUG}}(2, \textcolor{stringliteral}{"{}event 'remove plex'"{}});}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00705}00705                                 p = ev-\/>\mbox{\hyperlink{structgv__event_ae6a3b4859b95ebb6543ed6d7e74bd238}{arg1}};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00706}00706                                 \mbox{\hyperlink{geom__vinum_8h_a90d236f43d8a0f86cde32a89facbe562}{gv\_rm\_plex}}(sc, p);}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00707}00707                                 \textcolor{comment}{/*gv\_setup\_objects(sc);*/}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00708}00708                                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00709}00709 }
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00710}00710                         \textcolor{keywordflow}{case} \mbox{\hyperlink{geom__vinum__var_8h_a108798cc4cad36a12b3086daf968ad3a}{GV\_EVENT\_RM\_SD}}:}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00711}00711                                 \mbox{\hyperlink{geom__vinum_8h_a28cdbd7c30e435ff9ec8676f493593a0}{G\_VINUM\_DEBUG}}(2, \textcolor{stringliteral}{"{}event 'remove sd'"{}});}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00712}00712                                 s = ev-\/>\mbox{\hyperlink{structgv__event_ae6a3b4859b95ebb6543ed6d7e74bd238}{arg1}};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00713}00713                                 \mbox{\hyperlink{geom__vinum_8h_aa83ccb21c8d2400aa2418b127d78e7b2}{gv\_rm\_sd}}(sc, s);}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00714}00714                                 \textcolor{comment}{/*gv\_setup\_objects(sc);*/}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00715}00715                                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00716}00716 }
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00717}00717                         \textcolor{keywordflow}{case} \mbox{\hyperlink{geom__vinum__var_8h_a3f48efe317df71ff850737d390626744}{GV\_EVENT\_SAVE\_CONFIG}}:}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00718}00718                                 \mbox{\hyperlink{geom__vinum_8h_a28cdbd7c30e435ff9ec8676f493593a0}{G\_VINUM\_DEBUG}}(2, \textcolor{stringliteral}{"{}event 'save config'"{}});}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00719}00719                                 \mbox{\hyperlink{geom__vinum_8h_a893e3b157c798b3f925d71151d284dd9}{gv\_save\_config}}(sc);}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00720}00720                                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00721}00721 }
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00722}00722                         \textcolor{keywordflow}{case} \mbox{\hyperlink{geom__vinum__var_8h_ac1b8cf9a4aa038cfdef57f93ec194f7a}{GV\_EVENT\_SET\_SD\_STATE}}:}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00723}00723                                 \mbox{\hyperlink{geom__vinum_8h_a28cdbd7c30e435ff9ec8676f493593a0}{G\_VINUM\_DEBUG}}(2, \textcolor{stringliteral}{"{}event 'setstate sd'"{}});}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00724}00724                                 s = ev-\/>\mbox{\hyperlink{structgv__event_ae6a3b4859b95ebb6543ed6d7e74bd238}{arg1}};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00725}00725                                 newstate = ev-\/>\mbox{\hyperlink{structgv__event_ac9f7c22c49b43e0e0730d6e4f75cac51}{arg3}};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00726}00726                                 flags = ev-\/>\mbox{\hyperlink{structgv__event_a2752059f6d2fb331b5115dfae221c974}{arg4}};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00727}00727                                 err = \mbox{\hyperlink{geom__vinum_8h_a2dc4176c195982e77ba79874f999300e}{gv\_set\_sd\_state}}(s, newstate, flags);}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00728}00728                                 \textcolor{keywordflow}{if} (err)}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00729}00729                                         \mbox{\hyperlink{geom__vinum_8h_a28cdbd7c30e435ff9ec8676f493593a0}{G\_VINUM\_DEBUG}}(0, \textcolor{stringliteral}{"{}error setting subdisk"{}}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00730}00730                                             \textcolor{stringliteral}{"{} state: error code \%d"{}}, err);}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00731}00731                                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00732}00732 }
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00733}00733                         \textcolor{keywordflow}{case} \mbox{\hyperlink{geom__vinum__var_8h_a05586992825ebb2ad76d56db2ebca698}{GV\_EVENT\_SET\_DRIVE\_STATE}}:}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00734}00734                                 \mbox{\hyperlink{geom__vinum_8h_a28cdbd7c30e435ff9ec8676f493593a0}{G\_VINUM\_DEBUG}}(2, \textcolor{stringliteral}{"{}event 'setstate drive'"{}});}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00735}00735                                 d = ev-\/>\mbox{\hyperlink{structgv__event_ae6a3b4859b95ebb6543ed6d7e74bd238}{arg1}};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00736}00736                                 newstate = ev-\/>\mbox{\hyperlink{structgv__event_ac9f7c22c49b43e0e0730d6e4f75cac51}{arg3}};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00737}00737                                 flags = ev-\/>\mbox{\hyperlink{structgv__event_a2752059f6d2fb331b5115dfae221c974}{arg4}};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00738}00738                                 err = \mbox{\hyperlink{geom__vinum_8h_ab600fc4d016f584dafab0ba6063453a0}{gv\_set\_drive\_state}}(d, newstate, flags);}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00739}00739                                 \textcolor{keywordflow}{if} (err)}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00740}00740                                         \mbox{\hyperlink{geom__vinum_8h_a28cdbd7c30e435ff9ec8676f493593a0}{G\_VINUM\_DEBUG}}(0, \textcolor{stringliteral}{"{}error setting drive "{}}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00741}00741                                             \textcolor{stringliteral}{"{}state: error code \%d"{}}, err);}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00742}00742                                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00743}00743 }
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00744}00744                         \textcolor{keywordflow}{case} \mbox{\hyperlink{geom__vinum__var_8h_a7ae1dad97b995a4c4236bfcf89215e72}{GV\_EVENT\_SET\_VOL\_STATE}}:}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00745}00745                                 \mbox{\hyperlink{geom__vinum_8h_a28cdbd7c30e435ff9ec8676f493593a0}{G\_VINUM\_DEBUG}}(2, \textcolor{stringliteral}{"{}event 'setstate volume'"{}});}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00746}00746                                 v = ev-\/>\mbox{\hyperlink{structgv__event_ae6a3b4859b95ebb6543ed6d7e74bd238}{arg1}};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00747}00747                                 newstate = ev-\/>\mbox{\hyperlink{structgv__event_ac9f7c22c49b43e0e0730d6e4f75cac51}{arg3}};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00748}00748                                 flags = ev-\/>\mbox{\hyperlink{structgv__event_a2752059f6d2fb331b5115dfae221c974}{arg4}};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00749}00749                                 err = \mbox{\hyperlink{geom__vinum_8h_a59349c469c7862e251f7fa7e978d338b}{gv\_set\_vol\_state}}(v, newstate, flags);}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00750}00750                                 \textcolor{keywordflow}{if} (err)}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00751}00751                                         \mbox{\hyperlink{geom__vinum_8h_a28cdbd7c30e435ff9ec8676f493593a0}{G\_VINUM\_DEBUG}}(0, \textcolor{stringliteral}{"{}error setting volume "{}}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00752}00752                                             \textcolor{stringliteral}{"{}state: error code \%d"{}}, err);}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00753}00753                                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00754}00754 }
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00755}00755                         \textcolor{keywordflow}{case} \mbox{\hyperlink{geom__vinum__var_8h_ac7a1b177b6ba4cb23559c7be832dac60}{GV\_EVENT\_SET\_PLEX\_STATE}}:}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00756}00756                                 \mbox{\hyperlink{geom__vinum_8h_a28cdbd7c30e435ff9ec8676f493593a0}{G\_VINUM\_DEBUG}}(2, \textcolor{stringliteral}{"{}event 'setstate plex'"{}});}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00757}00757                                 p = ev-\/>\mbox{\hyperlink{structgv__event_ae6a3b4859b95ebb6543ed6d7e74bd238}{arg1}};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00758}00758                                 newstate = ev-\/>\mbox{\hyperlink{structgv__event_ac9f7c22c49b43e0e0730d6e4f75cac51}{arg3}};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00759}00759                                 flags = ev-\/>\mbox{\hyperlink{structgv__event_a2752059f6d2fb331b5115dfae221c974}{arg4}};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00760}00760                                 err = \mbox{\hyperlink{geom__vinum_8h_a6b370b29fa92afef6aa654a9e1eb5f0d}{gv\_set\_plex\_state}}(p, newstate, flags);}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00761}00761                                 \textcolor{keywordflow}{if} (err)}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00762}00762                                         \mbox{\hyperlink{geom__vinum_8h_a28cdbd7c30e435ff9ec8676f493593a0}{G\_VINUM\_DEBUG}}(0, \textcolor{stringliteral}{"{}error setting plex "{}}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00763}00763                                             \textcolor{stringliteral}{"{}state: error code \%d"{}}, err);}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00764}00764                                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00765}00765 }
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00766}00766                         \textcolor{keywordflow}{case} \mbox{\hyperlink{geom__vinum__var_8h_a3b9d93a59b0f7777ed50c19e9f2b730c}{GV\_EVENT\_SETUP\_OBJECTS}}:}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00767}00767                                 \mbox{\hyperlink{geom__vinum_8h_a28cdbd7c30e435ff9ec8676f493593a0}{G\_VINUM\_DEBUG}}(2, \textcolor{stringliteral}{"{}event 'setup objects'"{}});}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00768}00768                                 \mbox{\hyperlink{geom__vinum_8h_a5f803d19d887b23ee30ad8ad7854bcb7}{gv\_setup\_objects}}(sc);}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00769}00769                                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00770}00770 }
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00771}00771                         \textcolor{keywordflow}{case} \mbox{\hyperlink{geom__vinum__var_8h_af910d594c3d69ffff471443dbee27fcc}{GV\_EVENT\_RESET\_CONFIG}}:}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00772}00772                                 \mbox{\hyperlink{geom__vinum_8h_a28cdbd7c30e435ff9ec8676f493593a0}{G\_VINUM\_DEBUG}}(2, \textcolor{stringliteral}{"{}event 'resetconfig'"{}});}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00773}00773                                 err = \mbox{\hyperlink{geom__vinum_8h_a7358d1815654a6bd4fb7e1532bb97a1e}{gv\_resetconfig}}(sc);}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00774}00774                                 \textcolor{keywordflow}{if} (err)}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00775}00775                                         \mbox{\hyperlink{geom__vinum_8h_a28cdbd7c30e435ff9ec8676f493593a0}{G\_VINUM\_DEBUG}}(0, \textcolor{stringliteral}{"{}error resetting "{}}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00776}00776                                             \textcolor{stringliteral}{"{}config: error code \%d"{}}, err);}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00777}00777                                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00778}00778 }
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00779}00779                         \textcolor{keywordflow}{case} \mbox{\hyperlink{geom__vinum__var_8h_a3c68affa6a823d58135adeceecf262b3}{GV\_EVENT\_PARITY\_REBUILD}}:}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00780}00780                                 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00781}00781 \textcolor{comment}{                                 * Start the rebuild. The gv\_plex\_done will}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00782}00782 \textcolor{comment}{                                 * handle issuing of the remaining rebuild bio's}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00783}00783 \textcolor{comment}{                                 * until it's finished. }}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00784}00784 \textcolor{comment}{                                 */}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00785}00785                                 \mbox{\hyperlink{geom__vinum_8h_a28cdbd7c30e435ff9ec8676f493593a0}{G\_VINUM\_DEBUG}}(2, \textcolor{stringliteral}{"{}event 'rebuild'"{}});}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00786}00786                                 p = ev-\/>\mbox{\hyperlink{structgv__event_ae6a3b4859b95ebb6543ed6d7e74bd238}{arg1}};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00787}00787                                 \textcolor{keywordflow}{if} (p-\/>\mbox{\hyperlink{structgv__plex_a323004a8a80cc2691e845ba155ad55f0}{state}} != \mbox{\hyperlink{geom__vinum__var_8h_a2a5ed58267acc541957b387d71bd868d}{GV\_PLEX\_UP}}) \{}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00788}00788                                         \mbox{\hyperlink{geom__vinum_8h_a28cdbd7c30e435ff9ec8676f493593a0}{G\_VINUM\_DEBUG}}(0, \textcolor{stringliteral}{"{}plex \%s is not "{}}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00789}00789                                             \textcolor{stringliteral}{"{}completely accessible"{}}, p-\/>\mbox{\hyperlink{structgv__plex_a0978e4d5dd271f5403af3cf98ae02103}{name}});}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00790}00790                                         \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00791}00791                                 \}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00792}00792                                 \textcolor{keywordflow}{if} (p-\/>\mbox{\hyperlink{structgv__plex_a5c5a39055cb50589d0f9ee76860d6a12}{flags}} \& \mbox{\hyperlink{geom__vinum__var_8h_ae2f57f1186f28adbc12ccf3984be2fc2}{GV\_PLEX\_SYNCING}} ||}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00793}00793                                     p-\/>\mbox{\hyperlink{structgv__plex_a5c5a39055cb50589d0f9ee76860d6a12}{flags}} \& \mbox{\hyperlink{geom__vinum__var_8h_a13b286c390639eb1d6e8f3823443e7f0}{GV\_PLEX\_REBUILDING}} ||}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00794}00794                                     p-\/>\mbox{\hyperlink{structgv__plex_a5c5a39055cb50589d0f9ee76860d6a12}{flags}} \& \mbox{\hyperlink{geom__vinum__var_8h_a7c137a85de28fa7c787fe903acf5e3b0}{GV\_PLEX\_GROWING}}) \{}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00795}00795                                         \mbox{\hyperlink{geom__vinum_8h_a28cdbd7c30e435ff9ec8676f493593a0}{G\_VINUM\_DEBUG}}(0, \textcolor{stringliteral}{"{}plex \%s is busy with "{}}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00796}00796                                             \textcolor{stringliteral}{"{}syncing or parity build"{}}, p-\/>\mbox{\hyperlink{structgv__plex_a0978e4d5dd271f5403af3cf98ae02103}{name}});}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00797}00797                                         \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00798}00798                                 \}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00799}00799                                 p-\/>\mbox{\hyperlink{structgv__plex_a57ccdca6549fd9e5778635743104391e}{synced}} = 0;}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00800}00800                                 p-\/>\mbox{\hyperlink{structgv__plex_a5c5a39055cb50589d0f9ee76860d6a12}{flags}} |= \mbox{\hyperlink{geom__vinum__var_8h_a13b286c390639eb1d6e8f3823443e7f0}{GV\_PLEX\_REBUILDING}};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00801}00801                                 \mbox{\hyperlink{geom_8h_a71a3365bd3741226d2c0d1abada9fde7}{g\_topology\_assert\_not}}();}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00802}00802                                 \mbox{\hyperlink{geom_8h_a232419d2cfa06ff3f4ff7551041aed31}{g\_topology\_lock}}();}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00803}00803                                 err = \mbox{\hyperlink{geom__vinum_8c_a9299e5644cba56c3b04948a45a28c6be}{gv\_access}}(p-\/>\mbox{\hyperlink{structgv__plex_a8e2820d6bd8419d81213f77131d6bd5c}{vol\_sc}}-\/>\mbox{\hyperlink{structgv__volume_a22436521ee96530c09a185172fb53bf7}{provider}}, 1, 1, 0);}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00804}00804                                 \textcolor{keywordflow}{if} (err) \{}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00805}00805                                         \mbox{\hyperlink{geom__vinum_8h_a28cdbd7c30e435ff9ec8676f493593a0}{G\_VINUM\_DEBUG}}(0, \textcolor{stringliteral}{"{}unable to access "{}}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00806}00806                                             \textcolor{stringliteral}{"{}provider"{}});}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00807}00807                                         \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00808}00808                                 \}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00809}00809                                 \mbox{\hyperlink{geom_8h_a4628d4de49ba84e7a6126cc30d23b83a}{g\_topology\_unlock}}();}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00810}00810                                 \mbox{\hyperlink{geom__vinum_8h_a025690dddf70a29cda98d76858e17a0f}{gv\_parity\_request}}(p, \mbox{\hyperlink{geom__vinum__var_8h_ae600d8e4f9500fea2a7e91e59198ccec}{GV\_BIO\_CHECK}} |}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00811}00811                                     \mbox{\hyperlink{geom__vinum__var_8h_a41c57c709a8ded486887ca2a3a9d45d2}{GV\_BIO\_PARITY}}, 0);}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00812}00812                                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00813}00813 }
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00814}00814                         \textcolor{keywordflow}{case} \mbox{\hyperlink{geom__vinum__var_8h_a6bae96aa1c56a021d71b0c54ebc3d4b0}{GV\_EVENT\_PARITY\_CHECK}}:}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00815}00815                                 \textcolor{comment}{/* Start parity check. */}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00816}00816                                 \mbox{\hyperlink{geom__vinum_8h_a28cdbd7c30e435ff9ec8676f493593a0}{G\_VINUM\_DEBUG}}(2, \textcolor{stringliteral}{"{}event 'check'"{}});}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00817}00817                                 p = ev-\/>\mbox{\hyperlink{structgv__event_ae6a3b4859b95ebb6543ed6d7e74bd238}{arg1}};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00818}00818                                 \textcolor{keywordflow}{if} (p-\/>\mbox{\hyperlink{structgv__plex_a323004a8a80cc2691e845ba155ad55f0}{state}} != \mbox{\hyperlink{geom__vinum__var_8h_a2a5ed58267acc541957b387d71bd868d}{GV\_PLEX\_UP}}) \{}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00819}00819                                         \mbox{\hyperlink{geom__vinum_8h_a28cdbd7c30e435ff9ec8676f493593a0}{G\_VINUM\_DEBUG}}(0, \textcolor{stringliteral}{"{}plex \%s is not "{}}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00820}00820                                             \textcolor{stringliteral}{"{}completely accessible"{}}, p-\/>\mbox{\hyperlink{structgv__plex_a0978e4d5dd271f5403af3cf98ae02103}{name}});}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00821}00821                                         \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00822}00822                                 \}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00823}00823                                 \textcolor{keywordflow}{if} (p-\/>\mbox{\hyperlink{structgv__plex_a5c5a39055cb50589d0f9ee76860d6a12}{flags}} \& \mbox{\hyperlink{geom__vinum__var_8h_ae2f57f1186f28adbc12ccf3984be2fc2}{GV\_PLEX\_SYNCING}} ||}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00824}00824                                     p-\/>\mbox{\hyperlink{structgv__plex_a5c5a39055cb50589d0f9ee76860d6a12}{flags}} \& \mbox{\hyperlink{geom__vinum__var_8h_a13b286c390639eb1d6e8f3823443e7f0}{GV\_PLEX\_REBUILDING}} ||}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00825}00825                                     p-\/>\mbox{\hyperlink{structgv__plex_a5c5a39055cb50589d0f9ee76860d6a12}{flags}} \& \mbox{\hyperlink{geom__vinum__var_8h_a7c137a85de28fa7c787fe903acf5e3b0}{GV\_PLEX\_GROWING}}) \{}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00826}00826                                         \mbox{\hyperlink{geom__vinum_8h_a28cdbd7c30e435ff9ec8676f493593a0}{G\_VINUM\_DEBUG}}(0, \textcolor{stringliteral}{"{}plex \%s is busy with "{}}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00827}00827                                             \textcolor{stringliteral}{"{}syncing or parity build"{}}, p-\/>\mbox{\hyperlink{structgv__plex_a0978e4d5dd271f5403af3cf98ae02103}{name}});}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00828}00828                                         \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00829}00829                                 \}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00830}00830                                 p-\/>\mbox{\hyperlink{structgv__plex_a57ccdca6549fd9e5778635743104391e}{synced}} = 0;}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00831}00831                                 \mbox{\hyperlink{geom_8h_a71a3365bd3741226d2c0d1abada9fde7}{g\_topology\_assert\_not}}();}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00832}00832                                 \mbox{\hyperlink{geom_8h_a232419d2cfa06ff3f4ff7551041aed31}{g\_topology\_lock}}();}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00833}00833                                 err = \mbox{\hyperlink{geom__vinum_8c_a9299e5644cba56c3b04948a45a28c6be}{gv\_access}}(p-\/>\mbox{\hyperlink{structgv__plex_a8e2820d6bd8419d81213f77131d6bd5c}{vol\_sc}}-\/>\mbox{\hyperlink{structgv__volume_a22436521ee96530c09a185172fb53bf7}{provider}}, 1, 1, 0);}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00834}00834                                 \textcolor{keywordflow}{if} (err) \{}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00835}00835                                         \mbox{\hyperlink{geom__vinum_8h_a28cdbd7c30e435ff9ec8676f493593a0}{G\_VINUM\_DEBUG}}(0, \textcolor{stringliteral}{"{}unable to access "{}}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00836}00836                                             \textcolor{stringliteral}{"{}provider"{}});}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00837}00837                                         \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00838}00838                                 \}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00839}00839                                 \mbox{\hyperlink{geom_8h_a4628d4de49ba84e7a6126cc30d23b83a}{g\_topology\_unlock}}();}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00840}00840                                 \mbox{\hyperlink{geom__vinum_8h_a025690dddf70a29cda98d76858e17a0f}{gv\_parity\_request}}(p, \mbox{\hyperlink{geom__vinum__var_8h_ae600d8e4f9500fea2a7e91e59198ccec}{GV\_BIO\_CHECK}}, 0);}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00841}00841                                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00842}00842 }
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00843}00843                         \textcolor{keywordflow}{case} \mbox{\hyperlink{geom__vinum__var_8h_a7c66dc8dba5b5f222ab61e656d446b7c}{GV\_EVENT\_START\_PLEX}}:}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00844}00844                                 \mbox{\hyperlink{geom__vinum_8h_a28cdbd7c30e435ff9ec8676f493593a0}{G\_VINUM\_DEBUG}}(2, \textcolor{stringliteral}{"{}event 'start' plex"{}});}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00845}00845                                 p = ev-\/>\mbox{\hyperlink{structgv__event_ae6a3b4859b95ebb6543ed6d7e74bd238}{arg1}};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00846}00846                                 \mbox{\hyperlink{geom__vinum_8h_a2fc4b5e186247a615183717c4300707f}{gv\_start\_plex}}(p);}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00847}00847                                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00848}00848 }
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00849}00849                         \textcolor{keywordflow}{case} \mbox{\hyperlink{geom__vinum__var_8h_a8b4d22d714d8208b053befae4efab0dc}{GV\_EVENT\_START\_VOLUME}}:}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00850}00850                                 \mbox{\hyperlink{geom__vinum_8h_a28cdbd7c30e435ff9ec8676f493593a0}{G\_VINUM\_DEBUG}}(2, \textcolor{stringliteral}{"{}event 'start' volume"{}});}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00851}00851                                 v = ev-\/>\mbox{\hyperlink{structgv__event_ae6a3b4859b95ebb6543ed6d7e74bd238}{arg1}};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00852}00852                                 \mbox{\hyperlink{geom__vinum_8h_ac7bf04f55c8c69a6c9d5022161686863}{gv\_start\_vol}}(v);}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00853}00853                                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00854}00854 }
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00855}00855                         \textcolor{keywordflow}{case} \mbox{\hyperlink{geom__vinum__var_8h_a414abb4c5f5d30e390c6759952b1d57e}{GV\_EVENT\_ATTACH\_PLEX}}:}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00856}00856                                 \mbox{\hyperlink{geom__vinum_8h_a28cdbd7c30e435ff9ec8676f493593a0}{G\_VINUM\_DEBUG}}(2, \textcolor{stringliteral}{"{}event 'attach' plex"{}});}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00857}00857                                 p = ev-\/>\mbox{\hyperlink{structgv__event_ae6a3b4859b95ebb6543ed6d7e74bd238}{arg1}};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00858}00858                                 v = ev-\/>\mbox{\hyperlink{structgv__event_a651b73365bbc71815e4d47a752acdece}{arg2}};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00859}00859                                 rename = ev-\/>\mbox{\hyperlink{structgv__event_a2752059f6d2fb331b5115dfae221c974}{arg4}};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00860}00860                                 err = \mbox{\hyperlink{geom__vinum_8h_a4096dd7f3ed9681fdd5a7940579bc743}{gv\_attach\_plex}}(p, v, rename);}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00861}00861                                 \textcolor{keywordflow}{if} (err)}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00862}00862                                         \mbox{\hyperlink{geom__vinum_8h_a28cdbd7c30e435ff9ec8676f493593a0}{G\_VINUM\_DEBUG}}(0, \textcolor{stringliteral}{"{}error attaching \%s to"{}}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00863}00863                                             \textcolor{stringliteral}{"{} \%s: error code \%d"{}}, p-\/>\mbox{\hyperlink{structgv__plex_a0978e4d5dd271f5403af3cf98ae02103}{name}},}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00864}00864                                             v-\/>\mbox{\hyperlink{structgv__volume_a3369e150403037bca7ed34ea68f25ce0}{name}}, err);}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00865}00865                                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00866}00866 }
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00867}00867                         \textcolor{keywordflow}{case} \mbox{\hyperlink{geom__vinum__var_8h_a650a63b1e11b4dc9090d8ecfaa693981}{GV\_EVENT\_ATTACH\_SD}}:}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00868}00868                                 \mbox{\hyperlink{geom__vinum_8h_a28cdbd7c30e435ff9ec8676f493593a0}{G\_VINUM\_DEBUG}}(2, \textcolor{stringliteral}{"{}event 'attach' sd"{}});}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00869}00869                                 s = ev-\/>\mbox{\hyperlink{structgv__event_ae6a3b4859b95ebb6543ed6d7e74bd238}{arg1}};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00870}00870                                 p = ev-\/>\mbox{\hyperlink{structgv__event_a651b73365bbc71815e4d47a752acdece}{arg2}};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00871}00871                                 \mbox{\hyperlink{g__raid__tr__if_8m_ad5f0842c40c7e46344fd8df70187fa0f}{offset}} = ev-\/>\mbox{\hyperlink{structgv__event_ac9f7c22c49b43e0e0730d6e4f75cac51}{arg3}};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00872}00872                                 rename = ev-\/>\mbox{\hyperlink{structgv__event_a2752059f6d2fb331b5115dfae221c974}{arg4}};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00873}00873                                 err = \mbox{\hyperlink{geom__vinum_8h_ae2ed7ed3cf3d5458ab3d9e066a00fa1a}{gv\_attach\_sd}}(s, p, \mbox{\hyperlink{g__raid__tr__if_8m_ad5f0842c40c7e46344fd8df70187fa0f}{offset}}, rename);}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00874}00874                                 \textcolor{keywordflow}{if} (err)}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00875}00875                                         \mbox{\hyperlink{geom__vinum_8h_a28cdbd7c30e435ff9ec8676f493593a0}{G\_VINUM\_DEBUG}}(0, \textcolor{stringliteral}{"{}error attaching \%s to"{}}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00876}00876                                             \textcolor{stringliteral}{"{} \%s: error code \%d"{}}, s-\/>\mbox{\hyperlink{structgv__sd_a835bdd1e1c9adf03425b91c873eebf1e}{name}},}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00877}00877                                             p-\/>\mbox{\hyperlink{structgv__plex_a0978e4d5dd271f5403af3cf98ae02103}{name}}, err);}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00878}00878                                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00879}00879 }
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00880}00880                         \textcolor{keywordflow}{case} \mbox{\hyperlink{geom__vinum__var_8h_a4b247265713baeb9b91c00511a112278}{GV\_EVENT\_DETACH\_PLEX}}:}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00881}00881                                 \mbox{\hyperlink{geom__vinum_8h_a28cdbd7c30e435ff9ec8676f493593a0}{G\_VINUM\_DEBUG}}(2, \textcolor{stringliteral}{"{}event 'detach' plex"{}});}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00882}00882                                 p = ev-\/>\mbox{\hyperlink{structgv__event_ae6a3b4859b95ebb6543ed6d7e74bd238}{arg1}};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00883}00883                                 flags = ev-\/>\mbox{\hyperlink{structgv__event_ac9f7c22c49b43e0e0730d6e4f75cac51}{arg3}};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00884}00884                                 err = \mbox{\hyperlink{geom__vinum_8h_a239d419579841312021c9c04c1f274b0}{gv\_detach\_plex}}(p, flags);}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00885}00885                                 \textcolor{keywordflow}{if} (err)}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00886}00886                                         \mbox{\hyperlink{geom__vinum_8h_a28cdbd7c30e435ff9ec8676f493593a0}{G\_VINUM\_DEBUG}}(0, \textcolor{stringliteral}{"{}error detaching \%s: "{}}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00887}00887                                             \textcolor{stringliteral}{"{}error code \%d"{}}, p-\/>\mbox{\hyperlink{structgv__plex_a0978e4d5dd271f5403af3cf98ae02103}{name}}, err);}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00888}00888                                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00889}00889 }
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00890}00890                         \textcolor{keywordflow}{case} \mbox{\hyperlink{geom__vinum__var_8h_ac967b716907874cfd92064647ffb6391}{GV\_EVENT\_DETACH\_SD}}:}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00891}00891                                 \mbox{\hyperlink{geom__vinum_8h_a28cdbd7c30e435ff9ec8676f493593a0}{G\_VINUM\_DEBUG}}(2, \textcolor{stringliteral}{"{}event 'detach' sd"{}});}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00892}00892                                 s = ev-\/>\mbox{\hyperlink{structgv__event_ae6a3b4859b95ebb6543ed6d7e74bd238}{arg1}};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00893}00893                                 flags = ev-\/>\mbox{\hyperlink{structgv__event_ac9f7c22c49b43e0e0730d6e4f75cac51}{arg3}};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00894}00894                                 err = \mbox{\hyperlink{geom__vinum_8h_a4789e467a8d2c561d2bae31f529ddef1}{gv\_detach\_sd}}(s, flags);}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00895}00895                                 \textcolor{keywordflow}{if} (err)}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00896}00896                                         \mbox{\hyperlink{geom__vinum_8h_a28cdbd7c30e435ff9ec8676f493593a0}{G\_VINUM\_DEBUG}}(0, \textcolor{stringliteral}{"{}error detaching \%s: "{}}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00897}00897                                             \textcolor{stringliteral}{"{}error code \%d"{}}, s-\/>\mbox{\hyperlink{structgv__sd_a835bdd1e1c9adf03425b91c873eebf1e}{name}}, err);}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00898}00898                                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00899}00899 }
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00900}00900                         \textcolor{keywordflow}{case} \mbox{\hyperlink{geom__vinum__var_8h_af01e6b524901b3a26442f099caaf54db}{GV\_EVENT\_RENAME\_VOL}}:}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00901}00901                                 \mbox{\hyperlink{geom__vinum_8h_a28cdbd7c30e435ff9ec8676f493593a0}{G\_VINUM\_DEBUG}}(2, \textcolor{stringliteral}{"{}event 'rename' volume"{}});}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00902}00902                                 v = ev-\/>\mbox{\hyperlink{structgv__event_ae6a3b4859b95ebb6543ed6d7e74bd238}{arg1}};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00903}00903                                 newname = ev-\/>\mbox{\hyperlink{structgv__event_a651b73365bbc71815e4d47a752acdece}{arg2}};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00904}00904                                 flags = ev-\/>\mbox{\hyperlink{structgv__event_ac9f7c22c49b43e0e0730d6e4f75cac51}{arg3}};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00905}00905                                 err = \mbox{\hyperlink{geom__vinum_8h_a2d1669322205efeb0a923c3c89decb5b}{gv\_rename\_vol}}(sc, v, newname, flags);}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00906}00906                                 \textcolor{keywordflow}{if} (err)}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00907}00907                                         \mbox{\hyperlink{geom__vinum_8h_a28cdbd7c30e435ff9ec8676f493593a0}{G\_VINUM\_DEBUG}}(0, \textcolor{stringliteral}{"{}error renaming \%s to "{}}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00908}00908                                             \textcolor{stringliteral}{"{}\%s: error code \%d"{}}, v-\/>\mbox{\hyperlink{structgv__volume_a3369e150403037bca7ed34ea68f25ce0}{name}},}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00909}00909                                             newname, err);}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00910}00910                                 \mbox{\hyperlink{geom_8h_ad9924deb20de7b40cb6cf06e5ae28855}{g\_free}}(newname);}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00911}00911                                 \textcolor{comment}{/* Destroy and recreate the provider if we can. */}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00912}00912                                 \textcolor{keywordflow}{if} (\mbox{\hyperlink{geom__vinum_8h_ae338f192dec3e4a3cfd3bc369a9a09dd}{gv\_provider\_is\_open}}(v-\/>\mbox{\hyperlink{structgv__volume_a22436521ee96530c09a185172fb53bf7}{provider}})) \{}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00913}00913                                         \mbox{\hyperlink{geom__vinum_8h_a28cdbd7c30e435ff9ec8676f493593a0}{G\_VINUM\_DEBUG}}(0, \textcolor{stringliteral}{"{}unable to rename "{}}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00914}00914                                             \textcolor{stringliteral}{"{}provider to \%s: provider in use"{}},}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00915}00915                                             v-\/>\mbox{\hyperlink{structgv__volume_a3369e150403037bca7ed34ea68f25ce0}{name}});}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00916}00916                                         \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00917}00917                                 \}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00918}00918                                 \mbox{\hyperlink{geom_8h_a232419d2cfa06ff3f4ff7551041aed31}{g\_topology\_lock}}();}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00919}00919                                 \mbox{\hyperlink{geom_8h_a164882713025c4e0cc58b1ac8501bcf0}{g\_wither\_provider}}(v-\/>\mbox{\hyperlink{structgv__volume_a22436521ee96530c09a185172fb53bf7}{provider}}, ENOENT);}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00920}00920                                 \mbox{\hyperlink{geom_8h_a4628d4de49ba84e7a6126cc30d23b83a}{g\_topology\_unlock}}();}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00921}00921                                 v-\/>\mbox{\hyperlink{structgv__volume_a22436521ee96530c09a185172fb53bf7}{provider}} = NULL;}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00922}00922                                 \mbox{\hyperlink{geom__vinum_8h_ab8b55e981fb9c93aa56042746dd4bf5a}{gv\_post\_event}}(sc, \mbox{\hyperlink{geom__vinum__var_8h_a3b9d93a59b0f7777ed50c19e9f2b730c}{GV\_EVENT\_SETUP\_OBJECTS}}, sc,}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00923}00923                                     NULL, 0, 0);}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00924}00924                                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00925}00925 }
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00926}00926                         \textcolor{keywordflow}{case} \mbox{\hyperlink{geom__vinum__var_8h_ade9dff02a5e8a7d2750316340f3f3e80}{GV\_EVENT\_RENAME\_PLEX}}:}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00927}00927                                 \mbox{\hyperlink{geom__vinum_8h_a28cdbd7c30e435ff9ec8676f493593a0}{G\_VINUM\_DEBUG}}(2, \textcolor{stringliteral}{"{}event 'rename' plex"{}});}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00928}00928                                 p = ev-\/>\mbox{\hyperlink{structgv__event_ae6a3b4859b95ebb6543ed6d7e74bd238}{arg1}};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00929}00929                                 newname = ev-\/>\mbox{\hyperlink{structgv__event_a651b73365bbc71815e4d47a752acdece}{arg2}};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00930}00930                                 flags = ev-\/>\mbox{\hyperlink{structgv__event_ac9f7c22c49b43e0e0730d6e4f75cac51}{arg3}};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00931}00931                                 err = \mbox{\hyperlink{geom__vinum_8h_a5a15d50125ae7f3b1ee7340321ce3249}{gv\_rename\_plex}}(sc, p, newname, flags);}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00932}00932                                 \textcolor{keywordflow}{if} (err)}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00933}00933                                         \mbox{\hyperlink{geom__vinum_8h_a28cdbd7c30e435ff9ec8676f493593a0}{G\_VINUM\_DEBUG}}(0, \textcolor{stringliteral}{"{}error renaming \%s to "{}}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00934}00934                                             \textcolor{stringliteral}{"{}\%s: error code \%d"{}}, p-\/>\mbox{\hyperlink{structgv__plex_a0978e4d5dd271f5403af3cf98ae02103}{name}},}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00935}00935                                             newname, err);}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00936}00936                                 \mbox{\hyperlink{geom_8h_ad9924deb20de7b40cb6cf06e5ae28855}{g\_free}}(newname);}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00937}00937                                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00938}00938 }
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00939}00939                         \textcolor{keywordflow}{case} \mbox{\hyperlink{geom__vinum__var_8h_ac6ccaf1377ad685a73708fdeddbc10d8}{GV\_EVENT\_RENAME\_SD}}:}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00940}00940                                 \mbox{\hyperlink{geom__vinum_8h_a28cdbd7c30e435ff9ec8676f493593a0}{G\_VINUM\_DEBUG}}(2, \textcolor{stringliteral}{"{}event 'rename' sd"{}});}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00941}00941                                 s = ev-\/>\mbox{\hyperlink{structgv__event_ae6a3b4859b95ebb6543ed6d7e74bd238}{arg1}};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00942}00942                                 newname = ev-\/>\mbox{\hyperlink{structgv__event_a651b73365bbc71815e4d47a752acdece}{arg2}};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00943}00943                                 flags = ev-\/>\mbox{\hyperlink{structgv__event_ac9f7c22c49b43e0e0730d6e4f75cac51}{arg3}};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00944}00944                                 err = \mbox{\hyperlink{geom__vinum_8h_a2ba159eb41deb4248326c1d34d565a54}{gv\_rename\_sd}}(sc, s, newname, flags);}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00945}00945                                 \textcolor{keywordflow}{if} (err)}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00946}00946                                         \mbox{\hyperlink{geom__vinum_8h_a28cdbd7c30e435ff9ec8676f493593a0}{G\_VINUM\_DEBUG}}(0, \textcolor{stringliteral}{"{}error renaming \%s to "{}}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00947}00947                                             \textcolor{stringliteral}{"{}\%s: error code \%d"{}}, s-\/>\mbox{\hyperlink{structgv__sd_a835bdd1e1c9adf03425b91c873eebf1e}{name}},}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00948}00948                                             newname, err);}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00949}00949                                 \mbox{\hyperlink{geom_8h_ad9924deb20de7b40cb6cf06e5ae28855}{g\_free}}(newname);}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00950}00950                                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00951}00951 }
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00952}00952                         \textcolor{keywordflow}{case} \mbox{\hyperlink{geom__vinum__var_8h_a342e86c8c807bd96d1c335afac5e472e}{GV\_EVENT\_RENAME\_DRIVE}}:}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00953}00953                                 \mbox{\hyperlink{geom__vinum_8h_a28cdbd7c30e435ff9ec8676f493593a0}{G\_VINUM\_DEBUG}}(2, \textcolor{stringliteral}{"{}event 'rename' drive"{}});}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00954}00954                                 d = ev-\/>\mbox{\hyperlink{structgv__event_ae6a3b4859b95ebb6543ed6d7e74bd238}{arg1}};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00955}00955                                 newname = ev-\/>\mbox{\hyperlink{structgv__event_a651b73365bbc71815e4d47a752acdece}{arg2}};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00956}00956                                 flags = ev-\/>\mbox{\hyperlink{structgv__event_ac9f7c22c49b43e0e0730d6e4f75cac51}{arg3}};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00957}00957                                 err = \mbox{\hyperlink{geom__vinum_8h_a64d322e5b2c7224f129de80556b93af6}{gv\_rename\_drive}}(sc, d, newname, flags);}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00958}00958                                 \textcolor{keywordflow}{if} (err)}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00959}00959                                         \mbox{\hyperlink{geom__vinum_8h_a28cdbd7c30e435ff9ec8676f493593a0}{G\_VINUM\_DEBUG}}(0, \textcolor{stringliteral}{"{}error renaming \%s to "{}}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00960}00960                                             \textcolor{stringliteral}{"{}\%s: error code \%d"{}}, d-\/>\mbox{\hyperlink{structgv__drive_a69e5c72365075804074d21c056111ebf}{name}},}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00961}00961                                             newname, err);}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00962}00962                                 \mbox{\hyperlink{geom_8h_ad9924deb20de7b40cb6cf06e5ae28855}{g\_free}}(newname);}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00963}00963                                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00964}00964 }
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00965}00965                         \textcolor{keywordflow}{case} \mbox{\hyperlink{geom__vinum__var_8h_a09230185db91cc767b0abeab165df846}{GV\_EVENT\_MOVE\_SD}}:}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00966}00966                                 \mbox{\hyperlink{geom__vinum_8h_a28cdbd7c30e435ff9ec8676f493593a0}{G\_VINUM\_DEBUG}}(2, \textcolor{stringliteral}{"{}event 'move' sd"{}});}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00967}00967                                 s = ev-\/>\mbox{\hyperlink{structgv__event_ae6a3b4859b95ebb6543ed6d7e74bd238}{arg1}};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00968}00968                                 d = ev-\/>\mbox{\hyperlink{structgv__event_a651b73365bbc71815e4d47a752acdece}{arg2}};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00969}00969                                 flags = ev-\/>\mbox{\hyperlink{structgv__event_ac9f7c22c49b43e0e0730d6e4f75cac51}{arg3}};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00970}00970                                 err = \mbox{\hyperlink{geom__vinum_8h_a05ffc2a40cc15ca5bc1224b3fd232cfd}{gv\_move\_sd}}(sc, s, d, flags);}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00971}00971                                 \textcolor{keywordflow}{if} (err)}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00972}00972                                         \mbox{\hyperlink{geom__vinum_8h_a28cdbd7c30e435ff9ec8676f493593a0}{G\_VINUM\_DEBUG}}(0, \textcolor{stringliteral}{"{}error moving \%s to "{}}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00973}00973                                             \textcolor{stringliteral}{"{}\%s: error code \%d"{}}, s-\/>\mbox{\hyperlink{structgv__sd_a835bdd1e1c9adf03425b91c873eebf1e}{name}},}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00974}00974                                             d-\/>\mbox{\hyperlink{structgv__drive_a69e5c72365075804074d21c056111ebf}{name}}, err);}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00975}00975                                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00976}00976 }
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00977}00977                         \textcolor{keywordflow}{case} \mbox{\hyperlink{geom__vinum__var_8h_af2776e15db7cdcf355d233b026e7fff8}{GV\_EVENT\_THREAD\_EXIT}}:}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00978}00978                                 \mbox{\hyperlink{geom__vinum_8h_a28cdbd7c30e435ff9ec8676f493593a0}{G\_VINUM\_DEBUG}}(2, \textcolor{stringliteral}{"{}event 'thread exit'"{}});}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00979}00979                                 \mbox{\hyperlink{geom_8h_ad9924deb20de7b40cb6cf06e5ae28855}{g\_free}}(ev);}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00980}00980                                 mtx\_lock(\&sc-\/>\mbox{\hyperlink{structgv__softc_a47297f4eedb9eb29e5bfdf2f984df80e}{equeue\_mtx}});}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00981}00981                                 mtx\_lock(\&sc-\/>\mbox{\hyperlink{structgv__softc_a9e16e217501caa73a4d20fd0ce10d552}{bqueue\_mtx}});}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00982}00982                                 \mbox{\hyperlink{geom__vinum_8h_a86f582a58ced222aab078aac2cc6e303}{gv\_cleanup}}(sc);}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00983}00983                                 mtx\_destroy(\&sc-\/>\mbox{\hyperlink{structgv__softc_a9e16e217501caa73a4d20fd0ce10d552}{bqueue\_mtx}});}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00984}00984                                 mtx\_destroy(\&sc-\/>\mbox{\hyperlink{structgv__softc_a47297f4eedb9eb29e5bfdf2f984df80e}{equeue\_mtx}});}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00985}00985                                 \mbox{\hyperlink{geom_8h_ad9924deb20de7b40cb6cf06e5ae28855}{g\_free}}(sc-\/>\mbox{\hyperlink{structgv__softc_a854eab818ff0c1d2aa4a65d0e992b715}{bqueue\_down}});}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00986}00986                                 \mbox{\hyperlink{geom_8h_ad9924deb20de7b40cb6cf06e5ae28855}{g\_free}}(sc-\/>\mbox{\hyperlink{structgv__softc_affb434652c15df650bb17cc545d4e402}{bqueue\_up}});}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00987}00987                                 \mbox{\hyperlink{geom_8h_ad9924deb20de7b40cb6cf06e5ae28855}{g\_free}}(sc);}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00988}00988                                 kproc\_exit(0);}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00989}00989                                 \textcolor{comment}{/* NOTREACHED */}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00990}00990 }
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00991}00991                         \textcolor{keywordflow}{default}:}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00992}00992                                 \mbox{\hyperlink{geom__vinum_8h_a28cdbd7c30e435ff9ec8676f493593a0}{G\_VINUM\_DEBUG}}(1, \textcolor{stringliteral}{"{}unknown event \%d"{}}, ev-\/>\mbox{\hyperlink{structgv__event_aa246af9f1f13d0315a3df56bf55cb9f8}{type}});}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00993}00993                         \}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00994}00994 }
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00995}00995                         \mbox{\hyperlink{geom_8h_ad9924deb20de7b40cb6cf06e5ae28855}{g\_free}}(ev);}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00996}00996                         \textcolor{keywordflow}{continue};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00997}00997                 \}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00998}00998 }
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l00999}00999                 \textcolor{comment}{/* ... then do I/O processing. */}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l01000}01000                 mtx\_lock(\&sc-\/>\mbox{\hyperlink{structgv__softc_a9e16e217501caa73a4d20fd0ce10d552}{bqueue\_mtx}});}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l01001}01001                 \textcolor{comment}{/* First do new requests. */}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l01002}01002                 \mbox{\hyperlink{g__part__if_8m_a3786db8db96c32f69df9f7cd325a7507}{bp}} = bioq\_takefirst(sc-\/>\mbox{\hyperlink{structgv__softc_a854eab818ff0c1d2aa4a65d0e992b715}{bqueue\_down}});}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l01003}01003                 \textcolor{keywordflow}{if} (\mbox{\hyperlink{g__part__if_8m_a3786db8db96c32f69df9f7cd325a7507}{bp}} != NULL) \{}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l01004}01004                         mtx\_unlock(\&sc-\/>\mbox{\hyperlink{structgv__softc_a9e16e217501caa73a4d20fd0ce10d552}{bqueue\_mtx}});}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l01005}01005                         \textcolor{comment}{/* A bio that interfered with another bio. */}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l01006}01006                         \textcolor{keywordflow}{if} (\mbox{\hyperlink{g__part__if_8m_a3786db8db96c32f69df9f7cd325a7507}{bp}}-\/>bio\_pflags \& \mbox{\hyperlink{geom__vinum__var_8h_a7f7be1ada34be0f4b60d9b7675f0fbe3}{GV\_BIO\_ONHOLD}}) \{}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l01007}01007                                 s = \mbox{\hyperlink{g__part__if_8m_a3786db8db96c32f69df9f7cd325a7507}{bp}}-\/>bio\_caller1;}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l01008}01008                                 p = s-\/>\mbox{\hyperlink{structgv__sd_a6894be1eac4716d6eb2bd9e08b9643cf}{plex\_sc}};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l01009}01009                                 \textcolor{comment}{/* Is it still locked out? */}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l01010}01010                                 \textcolor{keywordflow}{if} (\mbox{\hyperlink{geom__vinum__raid5_8c_ae96ed2f1d2e5a2e6396193c82812700a}{gv\_stripe\_active}}(p, \mbox{\hyperlink{g__part__if_8m_a3786db8db96c32f69df9f7cd325a7507}{bp}})) \{}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l01011}01011                                         \textcolor{comment}{/* Park the bio on the waiting queue. */}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l01012}01012                                         bioq\_disksort(p-\/>\mbox{\hyperlink{structgv__plex_a4b161b7fba91c7e3f29732f1bc0a8075}{wqueue}}, \mbox{\hyperlink{g__part__if_8m_a3786db8db96c32f69df9f7cd325a7507}{bp}});}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l01013}01013                                 \} \textcolor{keywordflow}{else} \{}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l01014}01014                                         \mbox{\hyperlink{g__part__if_8m_a3786db8db96c32f69df9f7cd325a7507}{bp}}-\/>bio\_pflags \&= \string~GV\_BIO\_ONHOLD;}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l01015}01015                                         \mbox{\hyperlink{geom_8h_aa433c0ba9e8cad7c7da1f9e17b46eb7a}{g\_io\_request}}(\mbox{\hyperlink{g__part__if_8m_a3786db8db96c32f69df9f7cd325a7507}{bp}}, s-\/>\mbox{\hyperlink{structgv__sd_a2b31867e2118053e8a27ce048a84335e}{drive\_sc}}-\/>\mbox{\hyperlink{structgv__drive_a69dfc95c0bafb10b4239b5d45059e85d}{consumer}});}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l01016}01016                                 \}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l01017}01017                         \textcolor{comment}{/* A special request requireing special handling. */}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l01018}01018                         \} \textcolor{keywordflow}{else} \textcolor{keywordflow}{if} (\mbox{\hyperlink{g__part__if_8m_a3786db8db96c32f69df9f7cd325a7507}{bp}}-\/>bio\_pflags \& \mbox{\hyperlink{geom__vinum__var_8h_a94386dbf2c0a5844982a7b6762d88423}{GV\_BIO\_INTERNAL}}) \{}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l01019}01019                                 p = \mbox{\hyperlink{g__part__if_8m_a3786db8db96c32f69df9f7cd325a7507}{bp}}-\/>bio\_caller1;}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l01020}01020                                 \mbox{\hyperlink{geom__vinum_8h_ac212bdb50a45c80bd5ed5a01d06d1524}{gv\_plex\_start}}(p, \mbox{\hyperlink{g__part__if_8m_a3786db8db96c32f69df9f7cd325a7507}{bp}});}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l01021}01021                         \} \textcolor{keywordflow}{else} \{}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l01022}01022                                 \mbox{\hyperlink{geom__vinum_8h_ae7b52722ee90d90e75e0a13c9244e92b}{gv\_volume\_start}}(sc, \mbox{\hyperlink{g__part__if_8m_a3786db8db96c32f69df9f7cd325a7507}{bp}});}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l01023}01023                         \}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l01024}01024                         mtx\_lock(\&sc-\/>\mbox{\hyperlink{structgv__softc_a9e16e217501caa73a4d20fd0ce10d552}{bqueue\_mtx}});}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l01025}01025                 \}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l01026}01026                 \textcolor{comment}{/* Then do completed requests. */}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l01027}01027                 \mbox{\hyperlink{g__part__if_8m_a3786db8db96c32f69df9f7cd325a7507}{bp}} = bioq\_takefirst(sc-\/>\mbox{\hyperlink{structgv__softc_affb434652c15df650bb17cc545d4e402}{bqueue\_up}});}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l01028}01028                 \textcolor{keywordflow}{if} (\mbox{\hyperlink{g__part__if_8m_a3786db8db96c32f69df9f7cd325a7507}{bp}} == NULL) \{}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l01029}01029                         msleep(sc, \&sc-\/>\mbox{\hyperlink{structgv__softc_a9e16e217501caa73a4d20fd0ce10d552}{bqueue\_mtx}}, PRIBIO, \textcolor{stringliteral}{"{}-\/"{}}, hz/10);}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l01030}01030                         mtx\_unlock(\&sc-\/>\mbox{\hyperlink{structgv__softc_a9e16e217501caa73a4d20fd0ce10d552}{bqueue\_mtx}});}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l01031}01031                         \textcolor{keywordflow}{continue};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l01032}01032                 \}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l01033}01033                 mtx\_unlock(\&sc-\/>\mbox{\hyperlink{structgv__softc_a9e16e217501caa73a4d20fd0ce10d552}{bqueue\_mtx}});}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l01034}01034                 \mbox{\hyperlink{geom__vinum_8h_ae22a238c4c524e754e884c1151c7f617}{gv\_bio\_done}}(sc, \mbox{\hyperlink{g__part__if_8m_a3786db8db96c32f69df9f7cd325a7507}{bp}});}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l01035}01035         \}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l01036}01036 \}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l01037}01037 }
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l01038}\mbox{\hyperlink{geom__vinum_8c_ad2778ef5b6f61231e8ff41325b504da4}{01038}} \textcolor{preprocessor}{\#define VINUM\_CLASS\_NAME "{}VINUM"{}}}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l01039}01039 }
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l01040}\mbox{\hyperlink{geom__vinum_8c_a0a76736deba50ec50b640b20d9a6fe82}{01040}} \textcolor{keyword}{static} \textcolor{keyword}{struct }\mbox{\hyperlink{structg__class}{g\_class}} \mbox{\hyperlink{geom__vinum_8c_a0a76736deba50ec50b640b20d9a6fe82}{g\_vinum\_class}} = \{}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l01041}01041         .\mbox{\hyperlink{structg__class_a66bf8381cf0afbf7ccdebfa6b90a4a96}{name}} = \mbox{\hyperlink{geom__vinum_8c_ad2778ef5b6f61231e8ff41325b504da4}{VINUM\_CLASS\_NAME}},}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l01042}01042         .version = \mbox{\hyperlink{geom_8h_a33025dbc893de9dc049ba2f30283bc5a}{G\_VERSION}},}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l01043}01043         .init = \mbox{\hyperlink{geom__vinum_8c_a8d1afbe0266abbaeaa20e0d1717762b2}{gv\_init}},}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l01044}01044         .taste = \mbox{\hyperlink{geom__vinum_8c_a0632af58b6852e46204a4273777044d2}{gv\_taste}},}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l01045}01045         .ctlreq = \mbox{\hyperlink{geom__vinum_8c_a57f3f830214bb5b1b543c3477b3c3879}{gv\_config}},}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l01046}01046         .destroy\_geom = \mbox{\hyperlink{geom__vinum_8c_a347009212209388dab48278a6f66f287}{gv\_unload}},}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l01047}01047 \};}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l01048}01048 }
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l01049}\mbox{\hyperlink{geom__vinum_8c_ac7e25f557b342bd246a8b7fd993a660f}{01049}} \mbox{\hyperlink{geom__vinum_8c_ac7e25f557b342bd246a8b7fd993a660f}{DECLARE\_GEOM\_CLASS}}(\mbox{\hyperlink{geom__vinum_8c_a0a76736deba50ec50b640b20d9a6fe82}{g\_vinum\_class}}, g\_vinum);}
\DoxyCodeLine{\Hypertarget{geom__vinum_8c_source_l01050}\mbox{\hyperlink{geom__vinum_8c_a8caa9a56e9e6c41b40b0b8d259f6cb89}{01050}} \mbox{\hyperlink{geom__vinum_8c_a8caa9a56e9e6c41b40b0b8d259f6cb89}{MODULE\_VERSION}}(geom\_vinum, 0);}

\end{DoxyCode}
