\hypertarget{g__mountver_8c_source}{}\doxysection{g\+\_\+mountver.\+c}
\label{g__mountver_8c_source}\index{geom/mountver/g\_mountver.c@{geom/mountver/g\_mountver.c}}
\mbox{\hyperlink{g__mountver_8c}{Go to the documentation of this file.}}
\begin{DoxyCode}{0}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00001}00001 \textcolor{comment}{/*-\/}}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00002}00002 \textcolor{comment}{ * SPDX-\/License-\/Identifier: BSD-\/2-\/Clause-\/FreeBSD}}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00003}00003 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00004}00004 \textcolor{comment}{ * Copyright (c) 2010 Edward Tomasz Napierala <trasz@FreeBSD.org>}}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00005}00005 \textcolor{comment}{ * Copyright (c) 2004-\/2006 Pawel Jakub Dawidek <pjd@FreeBSD.org>}}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00006}00006 \textcolor{comment}{ * All rights reserved.}}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00007}00007 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00008}00008 \textcolor{comment}{ * Redistribution and use in source and binary forms, with or without}}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00009}00009 \textcolor{comment}{ * modification, are permitted provided that the following conditions}}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00010}00010 \textcolor{comment}{ * are met:}}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00011}00011 \textcolor{comment}{ * 1. Redistributions of source code must retain the above copyright}}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00012}00012 \textcolor{comment}{ *    notice, this list of conditions and the following disclaimer.}}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00013}00013 \textcolor{comment}{ * 2. Redistributions in binary form must reproduce the above copyright}}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00014}00014 \textcolor{comment}{ *    notice, this list of conditions and the following disclaimer in the}}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00015}00015 \textcolor{comment}{ *    documentation and/or other materials provided with the distribution.}}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00016}00016 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00017}00017 \textcolor{comment}{ * THIS SOFTWARE IS PROVIDED BY THE AUTHORS AND CONTRIBUTORS ``AS IS'' AND}}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00018}00018 \textcolor{comment}{ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE}}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00019}00019 \textcolor{comment}{ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE}}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00020}00020 \textcolor{comment}{ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE}}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00021}00021 \textcolor{comment}{ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL}}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00022}00022 \textcolor{comment}{ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS}}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00023}00023 \textcolor{comment}{ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)}}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00024}00024 \textcolor{comment}{ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT}}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00025}00025 \textcolor{comment}{ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY}}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00026}00026 \textcolor{comment}{ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF}}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00027}00027 \textcolor{comment}{ * SUCH DAMAGE.}}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00028}00028 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00029}00029 }
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00030}00030 \textcolor{preprocessor}{\#include <sys/cdefs.h>}}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00031}\mbox{\hyperlink{g__mountver_8c_a8c3ef283470a68cd30afe9b8a72cb60f}{00031}} \mbox{\hyperlink{g__mountver_8c_a8c3ef283470a68cd30afe9b8a72cb60f}{\_\_FBSDID}}(\textcolor{stringliteral}{"{}\$FreeBSD\$"{}});}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00032}00032 }
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00033}00033 \textcolor{preprocessor}{\#include <sys/param.h>}}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00034}00034 \textcolor{preprocessor}{\#include <sys/systm.h>}}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00035}00035 \textcolor{preprocessor}{\#include <sys/kernel.h>}}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00036}00036 \textcolor{preprocessor}{\#include <sys/module.h>}}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00037}00037 \textcolor{preprocessor}{\#include <sys/lock.h>}}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00038}00038 \textcolor{preprocessor}{\#include <sys/mutex.h>}}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00039}00039 \textcolor{preprocessor}{\#include <sys/bio.h>}}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00040}00040 \textcolor{preprocessor}{\#include <sys/disk.h>}}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00041}00041 \textcolor{preprocessor}{\#include <sys/proc.h>}}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00042}00042 \textcolor{preprocessor}{\#include <sys/sbuf.h>}}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00043}00043 \textcolor{preprocessor}{\#include <sys/sysctl.h>}}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00044}00044 \textcolor{preprocessor}{\#include <sys/malloc.h>}}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00045}00045 \textcolor{preprocessor}{\#include <sys/eventhandler.h>}}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00046}00046 \textcolor{preprocessor}{\#include <\mbox{\hyperlink{geom_8h}{geom/geom.h}}>}}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00047}00047 \textcolor{preprocessor}{\#include <\mbox{\hyperlink{geom__dbg_8h}{geom/geom\_dbg.h}}>}}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00048}00048 \textcolor{preprocessor}{\#include <\mbox{\hyperlink{g__mountver_8h}{geom/mountver/g\_mountver.h}}>}}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00049}00049 }
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00050}\mbox{\hyperlink{g__mountver_8c_a1e69eaa2ef6048550eaeebcf775a3d0f}{00050}} \mbox{\hyperlink{g__mountver_8c_a1e69eaa2ef6048550eaeebcf775a3d0f}{SYSCTL\_DECL}}(\_kern\_geom);}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00051}\mbox{\hyperlink{g__mountver_8c_a2a337dd646b34d2ba51917c0066bf59e}{00051}} \textcolor{keyword}{static} \mbox{\hyperlink{g__mountver_8c_a2a337dd646b34d2ba51917c0066bf59e}{SYSCTL\_NODE}}(\_kern\_geom, OID\_AUTO, mountver, CTLFLAG\_RW | CTLFLAG\_MPSAFE,}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00052}00052     0, \textcolor{stringliteral}{"{}GEOM\_MOUNTVER stuff"{}});}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00053}\mbox{\hyperlink{g__mountver_8c_aea9ff5b901406d3c38cf86632152f24d}{00053}} \textcolor{keyword}{static} u\_int \mbox{\hyperlink{g__mountver_8c_aea9ff5b901406d3c38cf86632152f24d}{g\_mountver\_debug}} = 0;}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00054}\mbox{\hyperlink{g__mountver_8c_a831a660c874b4804756deb4bd04a392f}{00054}} \textcolor{keyword}{static} u\_int \mbox{\hyperlink{g__mountver_8c_a831a660c874b4804756deb4bd04a392f}{g\_mountver\_check\_ident}} = 1;}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00055}\mbox{\hyperlink{g__mountver_8c_a8912b84852630f39f6d7ebf60cac724d}{00055}} \mbox{\hyperlink{g__mountver_8c_a8912b84852630f39f6d7ebf60cac724d}{SYSCTL\_UINT}}(\_kern\_geom\_mountver, OID\_AUTO, debug, CTLFLAG\_RW,}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00056}00056     \&\mbox{\hyperlink{g__mountver_8c_aea9ff5b901406d3c38cf86632152f24d}{g\_mountver\_debug}}, 0, \textcolor{stringliteral}{"{}Debug level"{}});}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00057}\mbox{\hyperlink{g__mountver_8c_a60cc57e0ae5233586ba60c762401e475}{00057}} \mbox{\hyperlink{g__mountver_8c_a8912b84852630f39f6d7ebf60cac724d}{SYSCTL\_UINT}}(\_kern\_geom\_mountver, OID\_AUTO, check\_ident, CTLFLAG\_RW,}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00058}00058     \&\mbox{\hyperlink{g__mountver_8c_a831a660c874b4804756deb4bd04a392f}{g\_mountver\_check\_ident}}, 0, \textcolor{stringliteral}{"{}Check disk ident when reattaching"{}});}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00059}00059 }
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00060}\mbox{\hyperlink{g__mountver_8c_acf15820eeca452b0ff19594424919ac5}{00060}} \textcolor{keyword}{static} eventhandler\_tag \mbox{\hyperlink{g__mountver_8c_acf15820eeca452b0ff19594424919ac5}{g\_mountver\_pre\_sync}} = NULL;}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00061}00061 }
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00062}00062 \textcolor{keyword}{static} \textcolor{keywordtype}{void} \mbox{\hyperlink{g__mountver_8c_a437edb01a7e5b169dc2d840edfd74a2b}{g\_mountver\_queue}}(\textcolor{keyword}{struct} bio *\mbox{\hyperlink{g__part__if_8m_a3786db8db96c32f69df9f7cd325a7507}{bp}});}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00063}00063 \textcolor{keyword}{static} \textcolor{keywordtype}{void} \mbox{\hyperlink{g__mountver_8c_a343ef3ef7f6b95c4418a82961d76861e}{g\_mountver\_orphan}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structg__consumer}{g\_consumer}} *\mbox{\hyperlink{g__part__if_8m_a294f18324585ff37641fb8aa1c9ccd82}{cp}});}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00064}00064 \textcolor{keyword}{static} \textcolor{keywordtype}{void} \mbox{\hyperlink{g__mountver_8c_aad2ee3efe2cef06e3a8d2b8d415d4d4e}{g\_mountver\_resize}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structg__consumer}{g\_consumer}} *\mbox{\hyperlink{g__part__if_8m_a294f18324585ff37641fb8aa1c9ccd82}{cp}});}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00065}00065 \textcolor{keyword}{static} \textcolor{keywordtype}{int} \mbox{\hyperlink{g__mountver_8c_a015487e71fb908991cc39c4e499006e6}{g\_mountver\_destroy}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structg__geom}{g\_geom}} *\mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}}, boolean\_t force);}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00066}\mbox{\hyperlink{g__mountver_8c_a414c4186660cc50ac87460980b2cd292}{00066}} \textcolor{keyword}{static} \mbox{\hyperlink{geom_8h_a631656592e7bd0d9b508904254e8e7a7}{g\_taste\_t}} \mbox{\hyperlink{g__mountver_8c_a414c4186660cc50ac87460980b2cd292}{g\_mountver\_taste}};}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00067}00067 \textcolor{keyword}{static} \textcolor{keywordtype}{int} \mbox{\hyperlink{g__mountver_8c_a412b4d87d00ab8d6109fd2088073498d}{g\_mountver\_destroy\_geom}}(\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}},}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00068}00068     \textcolor{keyword}{struct} \mbox{\hyperlink{structg__geom}{g\_geom}} *\mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}});}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00069}00069 \textcolor{keyword}{static} \textcolor{keywordtype}{void} \mbox{\hyperlink{g__mountver_8c_ad5bf7dbf675b81b43c018a59f10c3ec1}{g\_mountver\_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}},}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00070}00070     \textcolor{keyword}{const} \textcolor{keywordtype}{char} *verb);}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00071}00071 \textcolor{keyword}{static} \textcolor{keywordtype}{void} \mbox{\hyperlink{g__mountver_8c_ac0b113060b96468198b2f1e6a62ac02f}{g\_mountver\_dumpconf}}(\textcolor{keyword}{struct} sbuf *\mbox{\hyperlink{g__part__if_8m_a4c23eb4bab5aa5d69bd84384b94d1f79}{sb}}, \textcolor{keyword}{const} \textcolor{keywordtype}{char} *\mbox{\hyperlink{g__part__if_8m_a9a0d9ba518bc8db9a623d0a6ab81f81c}{indent}},}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00072}00072     \textcolor{keyword}{struct} \mbox{\hyperlink{structg__geom}{g\_geom}} *\mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}}, \textcolor{keyword}{struct} \mbox{\hyperlink{structg__consumer}{g\_consumer}} *\mbox{\hyperlink{g__part__if_8m_a294f18324585ff37641fb8aa1c9ccd82}{cp}}, \textcolor{keyword}{struct} \mbox{\hyperlink{structg__provider}{g\_provider}} *\mbox{\hyperlink{g__part__if_8m_a9bc7638f295763b77465c5ebebbd3442}{pp}});}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00073}00073 \textcolor{keyword}{static} \textcolor{keywordtype}{void} \mbox{\hyperlink{g__mountver_8c_a14e7b139e78b18fc05b8c86bff70faba}{g\_mountver\_init}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structg__class}{g\_class}} *\mbox{\hyperlink{g__raid__md__if_8m_a4f7502795edfd2493d3d223d0df33e1d}{mp}});}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00074}00074 \textcolor{keyword}{static} \textcolor{keywordtype}{void} \mbox{\hyperlink{g__mountver_8c_a28502cc720f0a57de7c4f79b117d101a}{g\_mountver\_fini}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structg__class}{g\_class}} *\mbox{\hyperlink{g__raid__md__if_8m_a4f7502795edfd2493d3d223d0df33e1d}{mp}});}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00075}00075 }
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00076}\mbox{\hyperlink{g__mountver_8c_a72bb9438bebac77095feae406e359f06}{00076}} \textcolor{keyword}{struct }\mbox{\hyperlink{structg__class}{g\_class}} \mbox{\hyperlink{g__mountver_8c_a72bb9438bebac77095feae406e359f06}{g\_mountver\_class}} = \{}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00077}00077         .\mbox{\hyperlink{structg__class_a66bf8381cf0afbf7ccdebfa6b90a4a96}{name}} = \mbox{\hyperlink{g__mountver_8h_a5655913ae377e434f9b32f3b9c2d6c42}{G\_MOUNTVER\_CLASS\_NAME}},}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00078}00078         .version = \mbox{\hyperlink{geom_8h_a33025dbc893de9dc049ba2f30283bc5a}{G\_VERSION}},}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00079}00079         .ctlreq = \mbox{\hyperlink{g__mountver_8c_ad5bf7dbf675b81b43c018a59f10c3ec1}{g\_mountver\_config}},}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00080}00080         .taste = \mbox{\hyperlink{g__mountver_8c_a414c4186660cc50ac87460980b2cd292}{g\_mountver\_taste}},}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00081}00081         .destroy\_geom = \mbox{\hyperlink{g__mountver_8c_a412b4d87d00ab8d6109fd2088073498d}{g\_mountver\_destroy\_geom}},}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00082}00082         .init = \mbox{\hyperlink{g__mountver_8c_a14e7b139e78b18fc05b8c86bff70faba}{g\_mountver\_init}},}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00083}00083         .fini = \mbox{\hyperlink{g__mountver_8c_a28502cc720f0a57de7c4f79b117d101a}{g\_mountver\_fini}}}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00084}00084 \};}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00085}00085 }
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00086}00086 \textcolor{keyword}{static} \textcolor{keywordtype}{void}}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00087}\mbox{\hyperlink{g__mountver_8c_aefc17334455e40a50dd2d3a0c122caad}{00087}} \mbox{\hyperlink{g__mountver_8c_aefc17334455e40a50dd2d3a0c122caad}{g\_mountver\_detach}}(\textcolor{keywordtype}{void} *arg, \textcolor{keywordtype}{int} flags \_\_unused)}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00088}00088 \{}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00089}00089         \textcolor{keyword}{struct }\mbox{\hyperlink{structg__consumer}{g\_consumer}} *\mbox{\hyperlink{g__part__if_8m_a294f18324585ff37641fb8aa1c9ccd82}{cp}} = arg;}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00090}00090 }
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00091}00091         \mbox{\hyperlink{geom_8h_a1898dc8c812faa5de231ab840e8562bf}{g\_topology\_assert}}();}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00092}00092         \textcolor{keywordflow}{if} (\mbox{\hyperlink{g__part__if_8m_a294f18324585ff37641fb8aa1c9ccd82}{cp}}-\/>\mbox{\hyperlink{structg__consumer_a40c3b377327dc07731eaf19340004033}{acr}} > 0 || \mbox{\hyperlink{g__part__if_8m_a294f18324585ff37641fb8aa1c9ccd82}{cp}}-\/>\mbox{\hyperlink{structg__consumer_a28f563df0299e7e1ab9a1121b6e483eb}{acw}} > 0 || \mbox{\hyperlink{g__part__if_8m_a294f18324585ff37641fb8aa1c9ccd82}{cp}}-\/>\mbox{\hyperlink{structg__consumer_ace7a7f6859bd4cf00ff910bda08bb05a}{ace}} > 0)}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00093}00093                 \mbox{\hyperlink{geom_8h_a27b7c72cc3bc5a4d07ce5976e1aa1b58}{g\_access}}(\mbox{\hyperlink{g__part__if_8m_a294f18324585ff37641fb8aa1c9ccd82}{cp}}, -\/\mbox{\hyperlink{g__part__if_8m_a294f18324585ff37641fb8aa1c9ccd82}{cp}}-\/>\mbox{\hyperlink{structg__consumer_a40c3b377327dc07731eaf19340004033}{acr}}, -\/\mbox{\hyperlink{g__part__if_8m_a294f18324585ff37641fb8aa1c9ccd82}{cp}}-\/>\mbox{\hyperlink{structg__consumer_a28f563df0299e7e1ab9a1121b6e483eb}{acw}}, -\/\mbox{\hyperlink{g__part__if_8m_a294f18324585ff37641fb8aa1c9ccd82}{cp}}-\/>\mbox{\hyperlink{structg__consumer_ace7a7f6859bd4cf00ff910bda08bb05a}{ace}});}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00094}00094         \mbox{\hyperlink{geom_8h_a037802c2ec5d43fcf1222215f9f8a735}{g\_detach}}(\mbox{\hyperlink{g__part__if_8m_a294f18324585ff37641fb8aa1c9ccd82}{cp}});}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00095}00095 \}}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00096}00096 }
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00097}00097 \textcolor{keyword}{static} \textcolor{keywordtype}{void}}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00098}\mbox{\hyperlink{g__mountver_8c_a466e839affb2c5c81c24343607c08e67}{00098}} \mbox{\hyperlink{g__mountver_8c_a466e839affb2c5c81c24343607c08e67}{g\_mountver\_done}}(\textcolor{keyword}{struct} bio *\mbox{\hyperlink{g__part__if_8m_a3786db8db96c32f69df9f7cd325a7507}{bp}})}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00099}00099 \{}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00100}00100         \textcolor{keyword}{struct }\mbox{\hyperlink{structg__mountver__softc}{g\_mountver\_softc}} *sc;}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00101}00101         \textcolor{keyword}{struct }\mbox{\hyperlink{structg__geom}{g\_geom}} *\mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}};}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00102}00102         \textcolor{keyword}{struct }\mbox{\hyperlink{structg__consumer}{g\_consumer}} *\mbox{\hyperlink{g__part__if_8m_a294f18324585ff37641fb8aa1c9ccd82}{cp}};}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00103}00103         \textcolor{keyword}{struct }bio *pbp;}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00104}00104 }
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00105}00105         \mbox{\hyperlink{g__part__if_8m_a294f18324585ff37641fb8aa1c9ccd82}{cp}} = \mbox{\hyperlink{g__part__if_8m_a3786db8db96c32f69df9f7cd325a7507}{bp}}-\/>bio\_from;}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00106}00106         \mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}} = \mbox{\hyperlink{g__part__if_8m_a294f18324585ff37641fb8aa1c9ccd82}{cp}}-\/>\mbox{\hyperlink{structg__consumer_a75734fc8cd22ffc4209c36cc0a459cba}{geom}};}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00107}00107         \textcolor{keywordflow}{if} (\mbox{\hyperlink{g__part__if_8m_a3786db8db96c32f69df9f7cd325a7507}{bp}}-\/>bio\_error != ENXIO) \{}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00108}00108                 \mbox{\hyperlink{geom_8h_a3b40808daecd7db79de16471ac14397a}{g\_std\_done}}(\mbox{\hyperlink{g__part__if_8m_a3786db8db96c32f69df9f7cd325a7507}{bp}});}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00109}00109                 \textcolor{keywordflow}{goto} done;}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00110}00110         \}}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00111}00111 }
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00112}00112         \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00113}00113 \textcolor{comment}{         * When the device goes away, it's possible that few requests}}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00114}00114 \textcolor{comment}{         * will be completed with ENXIO before g\_mountver\_orphan()}}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00115}00115 \textcolor{comment}{         * gets called.  To work around that, we have to queue requests}}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00116}00116 \textcolor{comment}{         * that failed with ENXIO, in order to send them later.}}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00117}00117 \textcolor{comment}{         */}}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00118}00118         pbp = \mbox{\hyperlink{g__part__if_8m_a3786db8db96c32f69df9f7cd325a7507}{bp}}-\/>bio\_parent;}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00119}00119         KASSERT(pbp-\/>bio\_to == LIST\_FIRST(\&\mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}}-\/>provider),}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00120}00120             (\textcolor{stringliteral}{"{}parent request was for someone else"{}}));}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00121}00121         \mbox{\hyperlink{geom_8h_ae3cbea7d4bf48f25bb609df3d3f0bb28}{g\_destroy\_bio}}(\mbox{\hyperlink{g__part__if_8m_a3786db8db96c32f69df9f7cd325a7507}{bp}});}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00122}00122         pbp-\/>bio\_inbed++;}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00123}00123         \mbox{\hyperlink{g__mountver_8c_a437edb01a7e5b169dc2d840edfd74a2b}{g\_mountver\_queue}}(pbp);}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00124}00124 }
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00125}00125 done:}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00126}00126         sc = \mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}}-\/>\mbox{\hyperlink{structg__geom_aa83c08c83459420f6cbcfe64c6099466}{softc}};}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00127}00127         mtx\_lock(\&sc-\/>\mbox{\hyperlink{structg__mountver__softc_a62752624c25a4fb83120232103e83f33}{sc\_mtx}});}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00128}00128         \textcolor{keywordflow}{if} (-\/-\/\mbox{\hyperlink{g__part__if_8m_a294f18324585ff37641fb8aa1c9ccd82}{cp}}-\/>\mbox{\hyperlink{structg__consumer_a0bd70ab96dc6a56c4e0db0608af9c9a4}{index}} == 0 \&\& sc-\/>\mbox{\hyperlink{structg__mountver__softc_a2c5cf0149852300a107e60f4b5a6f3d6}{sc\_orphaned}})}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00129}00129                 \mbox{\hyperlink{geom_8h_a196998b2923eb556355a617daaef1879}{g\_post\_event}}(\mbox{\hyperlink{g__mountver_8c_aefc17334455e40a50dd2d3a0c122caad}{g\_mountver\_detach}}, \mbox{\hyperlink{g__part__if_8m_a294f18324585ff37641fb8aa1c9ccd82}{cp}}, M\_NOWAIT, NULL);}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00130}00130         mtx\_unlock(\&sc-\/>\mbox{\hyperlink{structg__mountver__softc_a62752624c25a4fb83120232103e83f33}{sc\_mtx}});}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00131}00131 \}}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00132}00132 }
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00133}00133 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00134}00134 \textcolor{comment}{ * Send the BIO down.  The function is called with sc\_mtx held to cover}}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00135}00135 \textcolor{comment}{ * the race with orphan, but drops it before external calls.}}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00136}00136 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00137}00137 \textcolor{keyword}{static} \textcolor{keywordtype}{void}}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00138}\mbox{\hyperlink{g__mountver_8c_ae42d4612f568831f27df561e4542893f}{00138}} \mbox{\hyperlink{g__mountver_8c_ae42d4612f568831f27df561e4542893f}{g\_mountver\_send}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structg__geom}{g\_geom}} *\mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}}, \textcolor{keyword}{struct} bio *\mbox{\hyperlink{g__part__if_8m_a3786db8db96c32f69df9f7cd325a7507}{bp}})}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00139}00139 \{}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00140}00140         \textcolor{keyword}{struct }\mbox{\hyperlink{structg__mountver__softc}{g\_mountver\_softc}} *sc = \mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}}-\/>\mbox{\hyperlink{structg__geom_aa83c08c83459420f6cbcfe64c6099466}{softc}};}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00141}00141         \textcolor{keyword}{struct }\mbox{\hyperlink{structg__consumer}{g\_consumer}} *\mbox{\hyperlink{g__part__if_8m_a294f18324585ff37641fb8aa1c9ccd82}{cp}};}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00142}00142         \textcolor{keyword}{struct }bio *cbp;}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00143}00143 }
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00144}00144         mtx\_assert(\&sc-\/>\mbox{\hyperlink{structg__mountver__softc_a62752624c25a4fb83120232103e83f33}{sc\_mtx}}, MA\_OWNED);}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00145}00145         cbp = \mbox{\hyperlink{geom_8h_a4ef26e4ec68e35e8f892692c524a3d4f}{g\_clone\_bio}}(\mbox{\hyperlink{g__part__if_8m_a3786db8db96c32f69df9f7cd325a7507}{bp}});}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00146}00146         \textcolor{keywordflow}{if} (cbp == NULL) \{}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00147}00147                 mtx\_unlock(\&sc-\/>\mbox{\hyperlink{structg__mountver__softc_a62752624c25a4fb83120232103e83f33}{sc\_mtx}});}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00148}00148                 \mbox{\hyperlink{geom_8h_a0975be2dcd40a26a56a1a9bfc80433e1}{g\_io\_deliver}}(\mbox{\hyperlink{g__part__if_8m_a3786db8db96c32f69df9f7cd325a7507}{bp}}, ENOMEM);}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00149}00149                 \textcolor{keywordflow}{return};}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00150}00150         \}}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00151}00151         \mbox{\hyperlink{g__part__if_8m_a294f18324585ff37641fb8aa1c9ccd82}{cp}} = LIST\_FIRST(\&\mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}}-\/>consumer);}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00152}00152         \mbox{\hyperlink{g__part__if_8m_a294f18324585ff37641fb8aa1c9ccd82}{cp}}-\/>\mbox{\hyperlink{structg__consumer_a0bd70ab96dc6a56c4e0db0608af9c9a4}{index}}++;}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00153}00153         mtx\_unlock(\&sc-\/>\mbox{\hyperlink{structg__mountver__softc_a62752624c25a4fb83120232103e83f33}{sc\_mtx}});}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00154}00154 }
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00155}00155         cbp-\/>bio\_done = \mbox{\hyperlink{g__mountver_8c_a466e839affb2c5c81c24343607c08e67}{g\_mountver\_done}};}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00156}00156         \mbox{\hyperlink{geom_8h_aa433c0ba9e8cad7c7da1f9e17b46eb7a}{g\_io\_request}}(cbp, \mbox{\hyperlink{g__part__if_8m_a294f18324585ff37641fb8aa1c9ccd82}{cp}});}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00157}00157 \}}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00158}00158 }
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00159}00159 \textcolor{keyword}{static} \textcolor{keywordtype}{void}}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00160}\mbox{\hyperlink{g__mountver_8c_a437edb01a7e5b169dc2d840edfd74a2b}{00160}} \mbox{\hyperlink{g__mountver_8c_a437edb01a7e5b169dc2d840edfd74a2b}{g\_mountver\_queue}}(\textcolor{keyword}{struct} bio *\mbox{\hyperlink{g__part__if_8m_a3786db8db96c32f69df9f7cd325a7507}{bp}})}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00161}00161 \{}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00162}00162         \textcolor{keyword}{struct }\mbox{\hyperlink{structg__mountver__softc}{g\_mountver\_softc}} *sc;}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00163}00163         \textcolor{keyword}{struct }\mbox{\hyperlink{structg__geom}{g\_geom}} *\mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}};}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00164}00164 }
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00165}00165         \mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}} = \mbox{\hyperlink{g__part__if_8m_a3786db8db96c32f69df9f7cd325a7507}{bp}}-\/>bio\_to-\/>geom;}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00166}00166         sc = \mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}}-\/>\mbox{\hyperlink{structg__geom_aa83c08c83459420f6cbcfe64c6099466}{softc}};}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00167}00167 }
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00168}00168         mtx\_lock(\&sc-\/>\mbox{\hyperlink{structg__mountver__softc_a62752624c25a4fb83120232103e83f33}{sc\_mtx}});}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00169}00169         TAILQ\_INSERT\_TAIL(\&sc-\/>sc\_queue, \mbox{\hyperlink{g__part__if_8m_a3786db8db96c32f69df9f7cd325a7507}{bp}}, bio\_queue);}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00170}00170         mtx\_unlock(\&sc-\/>\mbox{\hyperlink{structg__mountver__softc_a62752624c25a4fb83120232103e83f33}{sc\_mtx}});}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00171}00171 \}}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00172}00172 }
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00173}00173 \textcolor{keyword}{static} \textcolor{keywordtype}{void}}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00174}\mbox{\hyperlink{g__mountver_8c_a12f024e29dbfe459439f8bea1c58e835}{00174}} \mbox{\hyperlink{g__mountver_8c_a12f024e29dbfe459439f8bea1c58e835}{g\_mountver\_send\_queued}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structg__geom}{g\_geom}} *\mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}})}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00175}00175 \{}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00176}00176         \textcolor{keyword}{struct }\mbox{\hyperlink{structg__mountver__softc}{g\_mountver\_softc}} *sc;}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00177}00177         \textcolor{keyword}{struct }bio *\mbox{\hyperlink{g__part__if_8m_a3786db8db96c32f69df9f7cd325a7507}{bp}};}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00178}00178 }
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00179}00179         sc = \mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}}-\/>\mbox{\hyperlink{structg__geom_aa83c08c83459420f6cbcfe64c6099466}{softc}};}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00180}00180 }
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00181}00181         mtx\_lock(\&sc-\/>\mbox{\hyperlink{structg__mountver__softc_a62752624c25a4fb83120232103e83f33}{sc\_mtx}});}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00182}00182         \textcolor{keywordflow}{while} ((\mbox{\hyperlink{g__part__if_8m_a3786db8db96c32f69df9f7cd325a7507}{bp}} = TAILQ\_FIRST(\&sc-\/>sc\_queue)) != NULL \&\& !sc-\/>\mbox{\hyperlink{structg__mountver__softc_a2c5cf0149852300a107e60f4b5a6f3d6}{sc\_orphaned}}) \{}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00183}00183                 TAILQ\_REMOVE(\&sc-\/>sc\_queue, \mbox{\hyperlink{g__part__if_8m_a3786db8db96c32f69df9f7cd325a7507}{bp}}, bio\_queue);}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00184}00184                 \mbox{\hyperlink{g__mountver_8h_a094dbbceebcf923ad0adbc694efba8a1}{G\_MOUNTVER\_LOGREQ}}(\mbox{\hyperlink{g__part__if_8m_a3786db8db96c32f69df9f7cd325a7507}{bp}}, \textcolor{stringliteral}{"{}Sending queued request."{}});}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00185}00185                 \textcolor{comment}{/* sc\_mtx is dropped inside */}}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00186}00186                 \mbox{\hyperlink{g__mountver_8c_ae42d4612f568831f27df561e4542893f}{g\_mountver\_send}}(\mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}}, \mbox{\hyperlink{g__part__if_8m_a3786db8db96c32f69df9f7cd325a7507}{bp}});}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00187}00187                 mtx\_lock(\&sc-\/>\mbox{\hyperlink{structg__mountver__softc_a62752624c25a4fb83120232103e83f33}{sc\_mtx}});}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00188}00188         \}}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00189}00189         mtx\_unlock(\&sc-\/>\mbox{\hyperlink{structg__mountver__softc_a62752624c25a4fb83120232103e83f33}{sc\_mtx}});}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00190}00190 \}}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00191}00191 }
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00192}00192 \textcolor{keyword}{static} \textcolor{keywordtype}{void}}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00193}\mbox{\hyperlink{g__mountver_8c_a585f02af772e29bb25686052ed0e9938}{00193}} \mbox{\hyperlink{g__mountver_8c_a585f02af772e29bb25686052ed0e9938}{g\_mountver\_discard\_queued}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structg__geom}{g\_geom}} *\mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}})}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00194}00194 \{}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00195}00195         \textcolor{keyword}{struct }\mbox{\hyperlink{structg__mountver__softc}{g\_mountver\_softc}} *sc;}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00196}00196         \textcolor{keyword}{struct }bio *\mbox{\hyperlink{g__part__if_8m_a3786db8db96c32f69df9f7cd325a7507}{bp}};}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00197}00197 }
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00198}00198         sc = \mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}}-\/>\mbox{\hyperlink{structg__geom_aa83c08c83459420f6cbcfe64c6099466}{softc}};}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00199}00199 }
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00200}00200         mtx\_lock(\&sc-\/>\mbox{\hyperlink{structg__mountver__softc_a62752624c25a4fb83120232103e83f33}{sc\_mtx}});}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00201}00201         \textcolor{keywordflow}{while} ((\mbox{\hyperlink{g__part__if_8m_a3786db8db96c32f69df9f7cd325a7507}{bp}} = TAILQ\_FIRST(\&sc-\/>sc\_queue)) != NULL) \{}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00202}00202                 TAILQ\_REMOVE(\&sc-\/>sc\_queue, \mbox{\hyperlink{g__part__if_8m_a3786db8db96c32f69df9f7cd325a7507}{bp}}, bio\_queue);}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00203}00203                 mtx\_unlock(\&sc-\/>\mbox{\hyperlink{structg__mountver__softc_a62752624c25a4fb83120232103e83f33}{sc\_mtx}});}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00204}00204                 \mbox{\hyperlink{g__mountver_8h_a094dbbceebcf923ad0adbc694efba8a1}{G\_MOUNTVER\_LOGREQ}}(\mbox{\hyperlink{g__part__if_8m_a3786db8db96c32f69df9f7cd325a7507}{bp}}, \textcolor{stringliteral}{"{}Discarding queued request."{}});}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00205}00205                 \mbox{\hyperlink{geom_8h_a0975be2dcd40a26a56a1a9bfc80433e1}{g\_io\_deliver}}(\mbox{\hyperlink{g__part__if_8m_a3786db8db96c32f69df9f7cd325a7507}{bp}}, ENXIO);}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00206}00206                 mtx\_lock(\&sc-\/>\mbox{\hyperlink{structg__mountver__softc_a62752624c25a4fb83120232103e83f33}{sc\_mtx}});}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00207}00207         \}}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00208}00208         mtx\_unlock(\&sc-\/>\mbox{\hyperlink{structg__mountver__softc_a62752624c25a4fb83120232103e83f33}{sc\_mtx}});}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00209}00209 \}}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00210}00210 }
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00211}00211 \textcolor{keyword}{static} \textcolor{keywordtype}{void}}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00212}\mbox{\hyperlink{g__mountver_8c_af1c5baa8c7ca23e9412ca665377053e7}{00212}} \mbox{\hyperlink{g__mountver_8c_af1c5baa8c7ca23e9412ca665377053e7}{g\_mountver\_start}}(\textcolor{keyword}{struct} bio *\mbox{\hyperlink{g__part__if_8m_a3786db8db96c32f69df9f7cd325a7507}{bp}})}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00213}00213 \{}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00214}00214         \textcolor{keyword}{struct }\mbox{\hyperlink{structg__mountver__softc}{g\_mountver\_softc}} *sc;}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00215}00215         \textcolor{keyword}{struct }\mbox{\hyperlink{structg__geom}{g\_geom}} *\mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}};}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00216}00216 }
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00217}00217         \mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}} = \mbox{\hyperlink{g__part__if_8m_a3786db8db96c32f69df9f7cd325a7507}{bp}}-\/>bio\_to-\/>geom;}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00218}00218         sc = \mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}}-\/>\mbox{\hyperlink{structg__geom_aa83c08c83459420f6cbcfe64c6099466}{softc}};}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00219}00219         \mbox{\hyperlink{g__mountver_8h_a094dbbceebcf923ad0adbc694efba8a1}{G\_MOUNTVER\_LOGREQ}}(\mbox{\hyperlink{g__part__if_8m_a3786db8db96c32f69df9f7cd325a7507}{bp}}, \textcolor{stringliteral}{"{}Request received."{}});}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00220}00220 }
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00221}00221         \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00222}00222 \textcolor{comment}{         * It is possible that some bios were returned with ENXIO, even though}}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00223}00223 \textcolor{comment}{         * orphaning didn't happen yet.  In that case, queue all subsequent}}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00224}00224 \textcolor{comment}{         * requests in order to maintain ordering.}}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00225}00225 \textcolor{comment}{         */}}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00226}00226         mtx\_lock(\&sc-\/>\mbox{\hyperlink{structg__mountver__softc_a62752624c25a4fb83120232103e83f33}{sc\_mtx}});}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00227}00227         \textcolor{keywordflow}{if} (sc-\/>\mbox{\hyperlink{structg__mountver__softc_a2c5cf0149852300a107e60f4b5a6f3d6}{sc\_orphaned}} || !TAILQ\_EMPTY(\&sc-\/>sc\_queue)) \{}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00228}00228                 mtx\_unlock(\&sc-\/>\mbox{\hyperlink{structg__mountver__softc_a62752624c25a4fb83120232103e83f33}{sc\_mtx}});}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00229}00229                 \textcolor{keywordflow}{if} (sc-\/>\mbox{\hyperlink{structg__mountver__softc_a59fd7f1c819b3c2a306086be135ee9bc}{sc\_shutting\_down}}) \{}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00230}00230                         \mbox{\hyperlink{g__mountver_8h_a094dbbceebcf923ad0adbc694efba8a1}{G\_MOUNTVER\_LOGREQ}}(\mbox{\hyperlink{g__part__if_8m_a3786db8db96c32f69df9f7cd325a7507}{bp}}, \textcolor{stringliteral}{"{}Discarding request due to shutdown."{}});}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00231}00231                         \mbox{\hyperlink{geom_8h_a0975be2dcd40a26a56a1a9bfc80433e1}{g\_io\_deliver}}(\mbox{\hyperlink{g__part__if_8m_a3786db8db96c32f69df9f7cd325a7507}{bp}}, ENXIO);}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00232}00232                         \textcolor{keywordflow}{return};}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00233}00233                 \}}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00234}00234                 \mbox{\hyperlink{g__mountver_8h_a094dbbceebcf923ad0adbc694efba8a1}{G\_MOUNTVER\_LOGREQ}}(\mbox{\hyperlink{g__part__if_8m_a3786db8db96c32f69df9f7cd325a7507}{bp}}, \textcolor{stringliteral}{"{}Queueing request."{}});}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00235}00235                 \mbox{\hyperlink{g__mountver_8c_a437edb01a7e5b169dc2d840edfd74a2b}{g\_mountver\_queue}}(\mbox{\hyperlink{g__part__if_8m_a3786db8db96c32f69df9f7cd325a7507}{bp}});}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00236}00236                 \textcolor{keywordflow}{if} (!sc-\/>\mbox{\hyperlink{structg__mountver__softc_a2c5cf0149852300a107e60f4b5a6f3d6}{sc\_orphaned}})}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00237}00237                         \mbox{\hyperlink{g__mountver_8c_a12f024e29dbfe459439f8bea1c58e835}{g\_mountver\_send\_queued}}(\mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}});}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00238}00238         \} \textcolor{keywordflow}{else} \{}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00239}00239                 \mbox{\hyperlink{g__mountver_8h_a094dbbceebcf923ad0adbc694efba8a1}{G\_MOUNTVER\_LOGREQ}}(\mbox{\hyperlink{g__part__if_8m_a3786db8db96c32f69df9f7cd325a7507}{bp}}, \textcolor{stringliteral}{"{}Sending request."{}});}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00240}00240                 \textcolor{comment}{/* sc\_mtx is dropped inside */}}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00241}00241                 \mbox{\hyperlink{g__mountver_8c_ae42d4612f568831f27df561e4542893f}{g\_mountver\_send}}(\mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}}, \mbox{\hyperlink{g__part__if_8m_a3786db8db96c32f69df9f7cd325a7507}{bp}});}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00242}00242         \}}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00243}00243 \}}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00244}00244 }
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00245}00245 \textcolor{keyword}{static} \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00246}\mbox{\hyperlink{g__mountver_8c_aeb00bc1217bd9082623e6adc5abf2d8e}{00246}} \mbox{\hyperlink{g__mountver_8c_aeb00bc1217bd9082623e6adc5abf2d8e}{g\_mountver\_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{g__mountver_8c_source_l00247}00247 \{}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00248}00248         \textcolor{keyword}{struct }\mbox{\hyperlink{structg__mountver__softc}{g\_mountver\_softc}} *sc;}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00249}00249         \textcolor{keyword}{struct }\mbox{\hyperlink{structg__geom}{g\_geom}} *\mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}};}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00250}00250         \textcolor{keyword}{struct }\mbox{\hyperlink{structg__consumer}{g\_consumer}} *\mbox{\hyperlink{g__part__if_8m_a294f18324585ff37641fb8aa1c9ccd82}{cp}};}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00251}00251 }
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00252}00252         \mbox{\hyperlink{geom_8h_a1898dc8c812faa5de231ab840e8562bf}{g\_topology\_assert}}();}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00253}00253 }
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00254}00254         \mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}} = \mbox{\hyperlink{g__part__if_8m_a9bc7638f295763b77465c5ebebbd3442}{pp}}-\/>\mbox{\hyperlink{structg__provider_afe5c92b8a2a9e4cdf1cab6daa96923c1}{geom}};}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00255}00255         \mbox{\hyperlink{g__part__if_8m_a294f18324585ff37641fb8aa1c9ccd82}{cp}} = LIST\_FIRST(\&\mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}}-\/>consumer);}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00256}00256         sc = \mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}}-\/>\mbox{\hyperlink{structg__geom_aa83c08c83459420f6cbcfe64c6099466}{softc}};}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00257}00257         \textcolor{keywordflow}{if} (sc == NULL \&\& dr <= 0 \&\& dw <= 0 \&\& de <= 0)}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00258}00258                 \textcolor{keywordflow}{return} (0);}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00259}00259         KASSERT(sc != NULL, (\textcolor{stringliteral}{"{}Trying to access withered provider \(\backslash\)"{}\%s\(\backslash\)"{}."{}}, \mbox{\hyperlink{g__part__if_8m_a9bc7638f295763b77465c5ebebbd3442}{pp}}-\/>\mbox{\hyperlink{structg__provider_a2bffb416ee58cf4df7839c6fd5ec004a}{name}}));}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00260}00260 }
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00261}00261         sc-\/>\mbox{\hyperlink{structg__mountver__softc_a65c471b2cdd12db18b8cb6d9469bc345}{sc\_access\_r}} += dr;}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00262}00262         sc-\/>\mbox{\hyperlink{structg__mountver__softc_ab10eaafdc2c20be91ed92607ad7753cd}{sc\_access\_w}} += dw;}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00263}00263         sc-\/>\mbox{\hyperlink{structg__mountver__softc_a0169ab0d1726e1fdc6b8963389208de3}{sc\_access\_e}} += de;}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00264}00264 }
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00265}00265         \textcolor{keywordflow}{if} (sc-\/>\mbox{\hyperlink{structg__mountver__softc_a2c5cf0149852300a107e60f4b5a6f3d6}{sc\_orphaned}})}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00266}00266                 \textcolor{keywordflow}{return} (0);}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00267}00267 }
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00268}00268         \textcolor{keywordflow}{return} (\mbox{\hyperlink{geom_8h_a27b7c72cc3bc5a4d07ce5976e1aa1b58}{g\_access}}(\mbox{\hyperlink{g__part__if_8m_a294f18324585ff37641fb8aa1c9ccd82}{cp}}, dr, dw, de));}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00269}00269 \}}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00270}00270 }
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00271}00271 \textcolor{keyword}{static} \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00272}\mbox{\hyperlink{g__mountver_8c_aafee6cfccf9d99c592a1ab71c4e9e35a}{00272}} \mbox{\hyperlink{g__mountver_8c_aafee6cfccf9d99c592a1ab71c4e9e35a}{g\_mountver\_create}}(\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__provider}{g\_provider}} *\mbox{\hyperlink{g__part__if_8m_a9bc7638f295763b77465c5ebebbd3442}{pp}})}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00273}00273 \{}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00274}00274         \textcolor{keyword}{struct }\mbox{\hyperlink{structg__mountver__softc}{g\_mountver\_softc}} *sc;}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00275}00275         \textcolor{keyword}{struct }\mbox{\hyperlink{structg__geom}{g\_geom}} *\mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}};}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00276}00276         \textcolor{keyword}{struct }\mbox{\hyperlink{structg__provider}{g\_provider}} *newpp;}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00277}00277         \textcolor{keyword}{struct }\mbox{\hyperlink{structg__consumer}{g\_consumer}} *\mbox{\hyperlink{g__part__if_8m_a294f18324585ff37641fb8aa1c9ccd82}{cp}};}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00278}00278         \textcolor{keyword}{struct }\mbox{\hyperlink{structg__geom__alias}{g\_geom\_alias}} *gap;}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00279}00279         \textcolor{keywordtype}{char} \mbox{\hyperlink{g__part__if_8m_aff5d3acc33944ecb11914d04ef06bb54}{name}}[64];}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00280}00280         \textcolor{keywordtype}{int} error;}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00281}00281         \textcolor{keywordtype}{int} identsize = DISK\_IDENT\_SIZE;}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00282}00282 }
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00283}00283         \mbox{\hyperlink{geom_8h_a1898dc8c812faa5de231ab840e8562bf}{g\_topology\_assert}}();}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00284}00284 }
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00285}00285         \mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}} = NULL;}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00286}00286         newpp = NULL;}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00287}00287         \mbox{\hyperlink{g__part__if_8m_a294f18324585ff37641fb8aa1c9ccd82}{cp}} = NULL;}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00288}00288 }
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00289}00289         snprintf(\mbox{\hyperlink{g__part__if_8m_aff5d3acc33944ecb11914d04ef06bb54}{name}}, \textcolor{keyword}{sizeof}(\mbox{\hyperlink{g__part__if_8m_aff5d3acc33944ecb11914d04ef06bb54}{name}}), \textcolor{stringliteral}{"{}\%s\%s"{}}, \mbox{\hyperlink{g__part__if_8m_a9bc7638f295763b77465c5ebebbd3442}{pp}}-\/>\mbox{\hyperlink{structg__provider_a2bffb416ee58cf4df7839c6fd5ec004a}{name}}, \mbox{\hyperlink{g__mountver_8h_a5939b33c5036dcfb54eb92f5b75a4690}{G\_MOUNTVER\_SUFFIX}});}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00290}00290         LIST\_FOREACH(\mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}}, \&\mbox{\hyperlink{g__raid__md__if_8m_a4f7502795edfd2493d3d223d0df33e1d}{mp}}-\/>geom, geom) \{}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00291}00291                 \textcolor{keywordflow}{if} (strcmp(\mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}}-\/>\mbox{\hyperlink{structg__geom_af64450500f1fea18f639b191a5017107}{name}}, \mbox{\hyperlink{g__part__if_8m_aff5d3acc33944ecb11914d04ef06bb54}{name}}) == 0) \{}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00292}00292                         \mbox{\hyperlink{geom_8h_a1d51201471b52be7e19a98b0fcb144de}{gctl\_error}}(\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}, \textcolor{stringliteral}{"{}Provider \%s already exists."{}}, \mbox{\hyperlink{g__part__if_8m_aff5d3acc33944ecb11914d04ef06bb54}{name}});}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00293}00293                         \textcolor{keywordflow}{return} (EEXIST);}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00294}00294                 \}}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00295}00295         \}}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00296}00296         \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}{"{}\%s"{}}, \mbox{\hyperlink{g__part__if_8m_aff5d3acc33944ecb11914d04ef06bb54}{name}});}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00297}00297         sc = \mbox{\hyperlink{geom_8h_a0f190247baa73dc863a79fea9d5f6b4f}{g\_malloc}}(\textcolor{keyword}{sizeof}(*sc), M\_WAITOK | M\_ZERO);}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00298}00298         mtx\_init(\&sc-\/>\mbox{\hyperlink{structg__mountver__softc_a62752624c25a4fb83120232103e83f33}{sc\_mtx}}, \textcolor{stringliteral}{"{}gmountver"{}}, NULL, MTX\_DEF | MTX\_RECURSE);}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00299}00299         TAILQ\_INIT(\&sc-\/>sc\_queue);}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00300}00300         sc-\/>\mbox{\hyperlink{structg__mountver__softc_abae8fef88516274b4c85e55dfc800098}{sc\_provider\_name}} = strdup(\mbox{\hyperlink{g__part__if_8m_a9bc7638f295763b77465c5ebebbd3442}{pp}}-\/>\mbox{\hyperlink{structg__provider_a2bffb416ee58cf4df7839c6fd5ec004a}{name}}, M\_GEOM);}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00301}00301         \mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}}-\/>\mbox{\hyperlink{structg__geom_aa83c08c83459420f6cbcfe64c6099466}{softc}} = sc;}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00302}00302         \mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}}-\/>\mbox{\hyperlink{structg__geom_a160a0c74f128936d97064e56052dc2ef}{start}} = \mbox{\hyperlink{g__mountver_8c_af1c5baa8c7ca23e9412ca665377053e7}{g\_mountver\_start}};}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00303}00303         \mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}}-\/>\mbox{\hyperlink{structg__geom_a67386b3b9a49233eca9f73d28bc70325}{orphan}} = \mbox{\hyperlink{g__mountver_8c_a343ef3ef7f6b95c4418a82961d76861e}{g\_mountver\_orphan}};}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00304}00304         \mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}}-\/>\mbox{\hyperlink{structg__geom_a409b63ae6b13027cd858840933685987}{resize}} = \mbox{\hyperlink{g__mountver_8c_aad2ee3efe2cef06e3a8d2b8d415d4d4e}{g\_mountver\_resize}};}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00305}00305         \mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}}-\/>\mbox{\hyperlink{structg__geom_aea05083928dcabdb4d343c6b9ee71cbd}{access}} = \mbox{\hyperlink{g__mountver_8c_aeb00bc1217bd9082623e6adc5abf2d8e}{g\_mountver\_access}};}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00306}00306         \mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}}-\/>\mbox{\hyperlink{structg__geom_a5944d44b6aba36f1a37c67f020b5588b}{dumpconf}} = \mbox{\hyperlink{g__mountver_8c_ac0b113060b96468198b2f1e6a62ac02f}{g\_mountver\_dumpconf}};}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00307}00307 }
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00308}00308         newpp = \mbox{\hyperlink{geom_8h_a79a5fe6e79cbc1a257454a3554fa11ef}{g\_new\_providerf}}(\mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}}, \textcolor{stringliteral}{"{}\%s"{}}, \mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}}-\/>\mbox{\hyperlink{structg__geom_af64450500f1fea18f639b191a5017107}{name}});}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00309}00309         newpp-\/>\mbox{\hyperlink{structg__provider_a8f47c464c78aa91fa4ca5143ed3cd15e}{mediasize}} = \mbox{\hyperlink{g__part__if_8m_a9bc7638f295763b77465c5ebebbd3442}{pp}}-\/>\mbox{\hyperlink{structg__provider_a8f47c464c78aa91fa4ca5143ed3cd15e}{mediasize}};}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00310}00310         newpp-\/>\mbox{\hyperlink{structg__provider_aea3cd43d41461790b8d0afcd8c49a355}{sectorsize}} = \mbox{\hyperlink{g__part__if_8m_a9bc7638f295763b77465c5ebebbd3442}{pp}}-\/>\mbox{\hyperlink{structg__provider_aea3cd43d41461790b8d0afcd8c49a355}{sectorsize}};}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00311}00311         newpp-\/>\mbox{\hyperlink{structg__provider_a2d2060ee918007b601780f93a39c30de}{flags}} |= \mbox{\hyperlink{geom_8h_a486656f757680c7ff0c7ca06b643eb2d}{G\_PF\_DIRECT\_SEND}} | \mbox{\hyperlink{geom_8h_a36e660dabad70e0fd2439be3ddca8d47}{G\_PF\_DIRECT\_RECEIVE}};}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00312}00312         LIST\_FOREACH(gap, \&\mbox{\hyperlink{g__part__if_8m_a9bc7638f295763b77465c5ebebbd3442}{pp}}-\/>aliases, ga\_next)}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00313}00313                 \mbox{\hyperlink{geom_8h_a14208f360ed869858f7e5878e8940470}{g\_provider\_add\_alias}}(newpp, \textcolor{stringliteral}{"{}\%s\%s"{}}, gap-\/>\mbox{\hyperlink{structg__geom__alias_ae11849a176b7dadc248ec9231ba2a992}{ga\_alias}}, \mbox{\hyperlink{g__mountver_8h_a5939b33c5036dcfb54eb92f5b75a4690}{G\_MOUNTVER\_SUFFIX}});}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00314}00314 }
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00315}00315         \textcolor{keywordflow}{if} ((\mbox{\hyperlink{g__part__if_8m_a9bc7638f295763b77465c5ebebbd3442}{pp}}-\/>\mbox{\hyperlink{structg__provider_a2d2060ee918007b601780f93a39c30de}{flags}} \& \mbox{\hyperlink{geom_8h_a82547ff81813e6e37dd57c36e530c7e2}{G\_PF\_ACCEPT\_UNMAPPED}}) != 0) \{}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00316}00316                 \mbox{\hyperlink{g__mountver_8h_abc63a513cd6997d62afff7257d29a046}{G\_MOUNTVER\_DEBUG}}(0, \textcolor{stringliteral}{"{}Unmapped supported for \%s."{}}, \mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}}-\/>\mbox{\hyperlink{structg__geom_af64450500f1fea18f639b191a5017107}{name}});}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00317}00317                 newpp-\/>\mbox{\hyperlink{structg__provider_a2d2060ee918007b601780f93a39c30de}{flags}} |= \mbox{\hyperlink{geom_8h_a82547ff81813e6e37dd57c36e530c7e2}{G\_PF\_ACCEPT\_UNMAPPED}};}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00318}00318         \} \textcolor{keywordflow}{else} \{}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00319}00319                 \mbox{\hyperlink{g__mountver_8h_abc63a513cd6997d62afff7257d29a046}{G\_MOUNTVER\_DEBUG}}(0, \textcolor{stringliteral}{"{}Unmapped unsupported for \%s."{}}, \mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}}-\/>\mbox{\hyperlink{structg__geom_af64450500f1fea18f639b191a5017107}{name}});}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00320}00320                 newpp-\/>\mbox{\hyperlink{structg__provider_a2d2060ee918007b601780f93a39c30de}{flags}} \&= \string~G\_PF\_ACCEPT\_UNMAPPED;}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00321}00321         \}}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00322}00322 }
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00323}00323         \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{g__mountver_8c_source_l00324}00324         \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{g__mountver_8c_source_l00325}00325         error = \mbox{\hyperlink{geom_8h_a7f6ee69db47bae6ff5284f6a9cfceb91}{g\_attach}}(\mbox{\hyperlink{g__part__if_8m_a294f18324585ff37641fb8aa1c9ccd82}{cp}}, \mbox{\hyperlink{g__part__if_8m_a9bc7638f295763b77465c5ebebbd3442}{pp}});}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00326}00326         \textcolor{keywordflow}{if} (error != 0) \{}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00327}00327                 \mbox{\hyperlink{geom_8h_a1d51201471b52be7e19a98b0fcb144de}{gctl\_error}}(\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}, \textcolor{stringliteral}{"{}Cannot attach to provider \%s."{}}, \mbox{\hyperlink{g__part__if_8m_a9bc7638f295763b77465c5ebebbd3442}{pp}}-\/>\mbox{\hyperlink{structg__provider_a2bffb416ee58cf4df7839c6fd5ec004a}{name}});}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00328}00328                 \textcolor{keywordflow}{goto} fail;}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00329}00329         \}}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00330}00330         error = \mbox{\hyperlink{geom_8h_a27b7c72cc3bc5a4d07ce5976e1aa1b58}{g\_access}}(\mbox{\hyperlink{g__part__if_8m_a294f18324585ff37641fb8aa1c9ccd82}{cp}}, 1, 0, 0);}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00331}00331         \textcolor{keywordflow}{if} (error != 0) \{}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00332}00332                 \mbox{\hyperlink{geom_8h_a1d51201471b52be7e19a98b0fcb144de}{gctl\_error}}(\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}, \textcolor{stringliteral}{"{}Cannot access provider \%s."{}}, \mbox{\hyperlink{g__part__if_8m_a9bc7638f295763b77465c5ebebbd3442}{pp}}-\/>\mbox{\hyperlink{structg__provider_a2bffb416ee58cf4df7839c6fd5ec004a}{name}});}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00333}00333                 \textcolor{keywordflow}{goto} fail;}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00334}00334         \}}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00335}00335         error = \mbox{\hyperlink{geom_8h_a63ec0c10c4635c215416171e7e804d17}{g\_io\_getattr}}(\textcolor{stringliteral}{"{}GEOM::ident"{}}, \mbox{\hyperlink{g__part__if_8m_a294f18324585ff37641fb8aa1c9ccd82}{cp}}, \&identsize, sc-\/>\mbox{\hyperlink{structg__mountver__softc_a503086e180e87710c1864c7bcd4e10ac}{sc\_ident}});}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00336}00336         \mbox{\hyperlink{geom_8h_a27b7c72cc3bc5a4d07ce5976e1aa1b58}{g\_access}}(\mbox{\hyperlink{g__part__if_8m_a294f18324585ff37641fb8aa1c9ccd82}{cp}}, -\/1, 0, 0);}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00337}00337         \textcolor{keywordflow}{if} (error != 0) \{}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00338}00338                 \textcolor{keywordflow}{if} (\mbox{\hyperlink{g__mountver_8c_a831a660c874b4804756deb4bd04a392f}{g\_mountver\_check\_ident}}) \{}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00339}00339                         \mbox{\hyperlink{geom_8h_a1d51201471b52be7e19a98b0fcb144de}{gctl\_error}}(\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}, \textcolor{stringliteral}{"{}Cannot get disk ident from \%s; error = \%d."{}}, \mbox{\hyperlink{g__part__if_8m_a9bc7638f295763b77465c5ebebbd3442}{pp}}-\/>\mbox{\hyperlink{structg__provider_a2bffb416ee58cf4df7839c6fd5ec004a}{name}}, error);}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00340}00340                         \textcolor{keywordflow}{goto} fail;}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00341}00341                 \}}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00342}00342 }
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00343}00343                 \mbox{\hyperlink{g__mountver_8h_abc63a513cd6997d62afff7257d29a046}{G\_MOUNTVER\_DEBUG}}(0, \textcolor{stringliteral}{"{}Cannot get disk ident from \%s; error = \%d."{}}, \mbox{\hyperlink{g__part__if_8m_a9bc7638f295763b77465c5ebebbd3442}{pp}}-\/>\mbox{\hyperlink{structg__provider_a2bffb416ee58cf4df7839c6fd5ec004a}{name}}, error);}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00344}00344                 sc-\/>\mbox{\hyperlink{structg__mountver__softc_a503086e180e87710c1864c7bcd4e10ac}{sc\_ident}}[0] = \textcolor{charliteral}{'\(\backslash\)0'};}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00345}00345         \}}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00346}00346 }
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00347}00347         \mbox{\hyperlink{geom_8h_a7a46b49361266e9bb4b1441aade2c48f}{g\_error\_provider}}(newpp, 0);}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00348}00348         \mbox{\hyperlink{g__mountver_8h_abc63a513cd6997d62afff7257d29a046}{G\_MOUNTVER\_DEBUG}}(0, \textcolor{stringliteral}{"{}Device \%s created."{}}, \mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}}-\/>\mbox{\hyperlink{structg__geom_af64450500f1fea18f639b191a5017107}{name}});}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00349}00349         \textcolor{keywordflow}{return} (0);}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00350}00350 fail:}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00351}00351         \mbox{\hyperlink{geom_8h_ad9924deb20de7b40cb6cf06e5ae28855}{g\_free}}(sc-\/>\mbox{\hyperlink{structg__mountver__softc_abae8fef88516274b4c85e55dfc800098}{sc\_provider\_name}});}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00352}00352         \textcolor{keywordflow}{if} (\mbox{\hyperlink{g__part__if_8m_a294f18324585ff37641fb8aa1c9ccd82}{cp}}-\/>\mbox{\hyperlink{structg__consumer_a6435d5aec0376e995dce3131fd3beb52}{provider}} != NULL)}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00353}00353                 \mbox{\hyperlink{geom_8h_a037802c2ec5d43fcf1222215f9f8a735}{g\_detach}}(\mbox{\hyperlink{g__part__if_8m_a294f18324585ff37641fb8aa1c9ccd82}{cp}});}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00354}00354         \mbox{\hyperlink{geom_8h_a9f53f6118c5e44ca2bcbd7ae548597b9}{g\_destroy\_consumer}}(\mbox{\hyperlink{g__part__if_8m_a294f18324585ff37641fb8aa1c9ccd82}{cp}});}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00355}00355         \mbox{\hyperlink{geom_8h_ab84a7760092168f95cb24fe16c926004}{g\_destroy\_provider}}(newpp);}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00356}00356         \mbox{\hyperlink{geom_8h_ad9924deb20de7b40cb6cf06e5ae28855}{g\_free}}(\mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}}-\/>\mbox{\hyperlink{structg__geom_aa83c08c83459420f6cbcfe64c6099466}{softc}});}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00357}00357         \mbox{\hyperlink{geom_8h_ac8307c99785f672632d3cf33134211ea}{g\_destroy\_geom}}(\mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}});}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00358}00358         \textcolor{keywordflow}{return} (error);}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00359}00359 \}}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00360}00360 }
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00361}00361 \textcolor{keyword}{static} \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00362}\mbox{\hyperlink{g__mountver_8c_a015487e71fb908991cc39c4e499006e6}{00362}} \mbox{\hyperlink{g__mountver_8c_a015487e71fb908991cc39c4e499006e6}{g\_mountver\_destroy}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structg__geom}{g\_geom}} *\mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}}, boolean\_t force)}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00363}00363 \{}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00364}00364         \textcolor{keyword}{struct }\mbox{\hyperlink{structg__mountver__softc}{g\_mountver\_softc}} *sc;}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00365}00365         \textcolor{keyword}{struct }\mbox{\hyperlink{structg__provider}{g\_provider}} *\mbox{\hyperlink{g__part__if_8m_a9bc7638f295763b77465c5ebebbd3442}{pp}};}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00366}00366 }
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00367}00367         \mbox{\hyperlink{geom_8h_a1898dc8c812faa5de231ab840e8562bf}{g\_topology\_assert}}();}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00368}00368         \textcolor{keywordflow}{if} (\mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}}-\/>\mbox{\hyperlink{structg__geom_aa83c08c83459420f6cbcfe64c6099466}{softc}} == NULL)}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00369}00369                 \textcolor{keywordflow}{return} (ENXIO);}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00370}00370         sc = \mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}}-\/>\mbox{\hyperlink{structg__geom_aa83c08c83459420f6cbcfe64c6099466}{softc}};}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00371}00371         \mbox{\hyperlink{g__part__if_8m_a9bc7638f295763b77465c5ebebbd3442}{pp}} = LIST\_FIRST(\&\mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}}-\/>provider);}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00372}00372         \textcolor{keywordflow}{if} (\mbox{\hyperlink{g__part__if_8m_a9bc7638f295763b77465c5ebebbd3442}{pp}} != NULL \&\& (\mbox{\hyperlink{g__part__if_8m_a9bc7638f295763b77465c5ebebbd3442}{pp}}-\/>\mbox{\hyperlink{structg__provider_a62d7db6055318331bae725b44d58c140}{acr}} != 0 || \mbox{\hyperlink{g__part__if_8m_a9bc7638f295763b77465c5ebebbd3442}{pp}}-\/>\mbox{\hyperlink{structg__provider_abc6824f999ce8b17107d833c908c83e6}{acw}} != 0 || \mbox{\hyperlink{g__part__if_8m_a9bc7638f295763b77465c5ebebbd3442}{pp}}-\/>\mbox{\hyperlink{structg__provider_ae46b0f6e935dcb33a2a06556dbcbeb4c}{ace}} != 0)) \{}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00373}00373                 \textcolor{keywordflow}{if} (force) \{}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00374}00374                         \mbox{\hyperlink{g__mountver_8h_abc63a513cd6997d62afff7257d29a046}{G\_MOUNTVER\_DEBUG}}(0, \textcolor{stringliteral}{"{}Device \%s is still open, so it "{}}}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00375}00375                             \textcolor{stringliteral}{"{}can't be definitely removed."{}}, \mbox{\hyperlink{g__part__if_8m_a9bc7638f295763b77465c5ebebbd3442}{pp}}-\/>\mbox{\hyperlink{structg__provider_a2bffb416ee58cf4df7839c6fd5ec004a}{name}});}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00376}00376                 \} \textcolor{keywordflow}{else} \{}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00377}00377                         \mbox{\hyperlink{g__mountver_8h_abc63a513cd6997d62afff7257d29a046}{G\_MOUNTVER\_DEBUG}}(1, \textcolor{stringliteral}{"{}Device \%s is still open (r\%dw\%de\%d)."{}},}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00378}00378                             \mbox{\hyperlink{g__part__if_8m_a9bc7638f295763b77465c5ebebbd3442}{pp}}-\/>\mbox{\hyperlink{structg__provider_a2bffb416ee58cf4df7839c6fd5ec004a}{name}}, \mbox{\hyperlink{g__part__if_8m_a9bc7638f295763b77465c5ebebbd3442}{pp}}-\/>\mbox{\hyperlink{structg__provider_a62d7db6055318331bae725b44d58c140}{acr}}, \mbox{\hyperlink{g__part__if_8m_a9bc7638f295763b77465c5ebebbd3442}{pp}}-\/>\mbox{\hyperlink{structg__provider_abc6824f999ce8b17107d833c908c83e6}{acw}}, \mbox{\hyperlink{g__part__if_8m_a9bc7638f295763b77465c5ebebbd3442}{pp}}-\/>\mbox{\hyperlink{structg__provider_ae46b0f6e935dcb33a2a06556dbcbeb4c}{ace}});}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00379}00379                         \textcolor{keywordflow}{return} (EBUSY);}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00380}00380                 \}}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00381}00381         \} \textcolor{keywordflow}{else} \{}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00382}00382                 \mbox{\hyperlink{g__mountver_8h_abc63a513cd6997d62afff7257d29a046}{G\_MOUNTVER\_DEBUG}}(0, \textcolor{stringliteral}{"{}Device \%s removed."{}}, \mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}}-\/>\mbox{\hyperlink{structg__geom_af64450500f1fea18f639b191a5017107}{name}});}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00383}00383         \}}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00384}00384         \textcolor{keywordflow}{if} (\mbox{\hyperlink{g__part__if_8m_a9bc7638f295763b77465c5ebebbd3442}{pp}} != NULL)}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00385}00385                 \mbox{\hyperlink{geom_8h_a164882713025c4e0cc58b1ac8501bcf0}{g\_wither\_provider}}(\mbox{\hyperlink{g__part__if_8m_a9bc7638f295763b77465c5ebebbd3442}{pp}}, ENXIO);}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00386}00386         \mbox{\hyperlink{g__mountver_8c_a585f02af772e29bb25686052ed0e9938}{g\_mountver\_discard\_queued}}(\mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}});}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00387}00387         \mbox{\hyperlink{geom_8h_ad9924deb20de7b40cb6cf06e5ae28855}{g\_free}}(sc-\/>\mbox{\hyperlink{structg__mountver__softc_abae8fef88516274b4c85e55dfc800098}{sc\_provider\_name}});}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00388}00388         \mbox{\hyperlink{geom_8h_ad9924deb20de7b40cb6cf06e5ae28855}{g\_free}}(\mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}}-\/>\mbox{\hyperlink{structg__geom_aa83c08c83459420f6cbcfe64c6099466}{softc}});}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00389}00389         \mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}}-\/>\mbox{\hyperlink{structg__geom_aa83c08c83459420f6cbcfe64c6099466}{softc}} = NULL;}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00390}00390         \mbox{\hyperlink{geom_8h_a87a0eb5de79ed5e49fcfec012f213c9b}{g\_wither\_geom}}(\mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}}, ENXIO);}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00391}00391 }
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00392}00392         \textcolor{keywordflow}{return} (0);}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00393}00393 \}}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00394}00394 }
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00395}00395 \textcolor{keyword}{static} \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00396}\mbox{\hyperlink{g__mountver_8c_a412b4d87d00ab8d6109fd2088073498d}{00396}} \mbox{\hyperlink{g__mountver_8c_a412b4d87d00ab8d6109fd2088073498d}{g\_mountver\_destroy\_geom}}(\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{g__mountver_8c_source_l00397}00397 \{}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00398}00398 }
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00399}00399         \textcolor{keywordflow}{return} (\mbox{\hyperlink{g__mountver_8c_a015487e71fb908991cc39c4e499006e6}{g\_mountver\_destroy}}(\mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}}, 0));}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00400}00400 \}}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00401}00401 }
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00402}00402 \textcolor{keyword}{static} \textcolor{keywordtype}{void}}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00403}\mbox{\hyperlink{g__mountver_8c_adae77fa112d92f3db5a1a7d78289a28b}{00403}} \mbox{\hyperlink{g__mountver_8c_adae77fa112d92f3db5a1a7d78289a28b}{g\_mountver\_ctl\_create}}(\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}})}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00404}00404 \{}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00405}00405         \textcolor{keyword}{struct }\mbox{\hyperlink{structg__provider}{g\_provider}} *\mbox{\hyperlink{g__part__if_8m_a9bc7638f295763b77465c5ebebbd3442}{pp}};}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00406}00406         \textcolor{keywordtype}{char} param[16];}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00407}00407         \textcolor{keywordtype}{int} i, *nargs;}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00408}00408 }
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00409}00409         \mbox{\hyperlink{geom_8h_a1898dc8c812faa5de231ab840e8562bf}{g\_topology\_assert}}();}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00410}00410 }
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00411}00411         nargs = \mbox{\hyperlink{geom_8h_ab762d12640f528d8f1f60eee92bf5f3b}{gctl\_get\_paraml}}(\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}, \textcolor{stringliteral}{"{}nargs"{}}, \textcolor{keyword}{sizeof}(*nargs));}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00412}00412         \textcolor{keywordflow}{if} (nargs == NULL) \{}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00413}00413                 \mbox{\hyperlink{geom_8h_a1d51201471b52be7e19a98b0fcb144de}{gctl\_error}}(\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}, \textcolor{stringliteral}{"{}No '\%s' argument"{}}, \textcolor{stringliteral}{"{}nargs"{}});}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00414}00414                 \textcolor{keywordflow}{return};}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00415}00415         \}}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00416}00416         \textcolor{keywordflow}{if} (*nargs <= 0) \{}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00417}00417                 \mbox{\hyperlink{geom_8h_a1d51201471b52be7e19a98b0fcb144de}{gctl\_error}}(\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}, \textcolor{stringliteral}{"{}Missing device(s)."{}});}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00418}00418                 \textcolor{keywordflow}{return};}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00419}00419         \}}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00420}00420         \textcolor{keywordflow}{for} (i = 0; i < *nargs; i++) \{}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00421}00421                 snprintf(param, \textcolor{keyword}{sizeof}(param), \textcolor{stringliteral}{"{}arg\%d"{}}, i);}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00422}00422                 \mbox{\hyperlink{g__part__if_8m_a9bc7638f295763b77465c5ebebbd3442}{pp}} = \mbox{\hyperlink{geom_8h_a02d62eea445edba7982f681b41c6c307}{gctl\_get\_provider}}(\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}, param);}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00423}00423                 \textcolor{keywordflow}{if} (\mbox{\hyperlink{g__part__if_8m_a9bc7638f295763b77465c5ebebbd3442}{pp}} == NULL)}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00424}00424                         \textcolor{keywordflow}{return};}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00425}00425                 \textcolor{keywordflow}{if} (\mbox{\hyperlink{g__mountver_8c_aafee6cfccf9d99c592a1ab71c4e9e35a}{g\_mountver\_create}}(\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}, \mbox{\hyperlink{g__raid__md__if_8m_a4f7502795edfd2493d3d223d0df33e1d}{mp}}, \mbox{\hyperlink{g__part__if_8m_a9bc7638f295763b77465c5ebebbd3442}{pp}}) != 0)}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00426}00426                         \textcolor{keywordflow}{return};}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00427}00427         \}}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00428}00428 \}}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00429}00429 }
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00430}00430 \textcolor{keyword}{static} \textcolor{keyword}{struct }\mbox{\hyperlink{structg__geom}{g\_geom}} *}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00431}\mbox{\hyperlink{g__mountver_8c_a4ce65bef4a132177eb7a8e96f72e23ea}{00431}} \mbox{\hyperlink{g__mountver_8c_a4ce65bef4a132177eb7a8e96f72e23ea}{g\_mountver\_find\_geom}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structg__class}{g\_class}} *\mbox{\hyperlink{g__raid__md__if_8m_a4f7502795edfd2493d3d223d0df33e1d}{mp}}, \textcolor{keyword}{const} \textcolor{keywordtype}{char} *\mbox{\hyperlink{g__part__if_8m_aff5d3acc33944ecb11914d04ef06bb54}{name}})}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00432}00432 \{}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00433}00433         \textcolor{keyword}{struct }\mbox{\hyperlink{structg__geom}{g\_geom}} *\mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}};}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00434}00434 }
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00435}00435         LIST\_FOREACH(\mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}}, \&\mbox{\hyperlink{g__raid__md__if_8m_a4f7502795edfd2493d3d223d0df33e1d}{mp}}-\/>geom, geom) \{}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00436}00436                 \textcolor{keywordflow}{if} (strcmp(\mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}}-\/>\mbox{\hyperlink{structg__geom_af64450500f1fea18f639b191a5017107}{name}}, \mbox{\hyperlink{g__part__if_8m_aff5d3acc33944ecb11914d04ef06bb54}{name}}) == 0)}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00437}00437                         \textcolor{keywordflow}{return} (\mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}});}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00438}00438         \}}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00439}00439         \textcolor{keywordflow}{return} (NULL);}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00440}00440 \}}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00441}00441 }
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00442}00442 \textcolor{keyword}{static} \textcolor{keywordtype}{void}}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00443}\mbox{\hyperlink{g__mountver_8c_a87c509cd37c91d81ec033e625d52fc05}{00443}} \mbox{\hyperlink{g__mountver_8c_a87c509cd37c91d81ec033e625d52fc05}{g\_mountver\_ctl\_destroy}}(\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}})}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00444}00444 \{}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00445}00445         \textcolor{keywordtype}{int} *nargs, *force, error, i;}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00446}00446         \textcolor{keyword}{struct }\mbox{\hyperlink{structg__geom}{g\_geom}} *\mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}};}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00447}00447         \textcolor{keyword}{const} \textcolor{keywordtype}{char} *\mbox{\hyperlink{g__part__if_8m_aff5d3acc33944ecb11914d04ef06bb54}{name}};}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00448}00448         \textcolor{keywordtype}{char} param[16];}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00449}00449 }
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00450}00450         \mbox{\hyperlink{geom_8h_a1898dc8c812faa5de231ab840e8562bf}{g\_topology\_assert}}();}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00451}00451 }
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00452}00452         nargs = \mbox{\hyperlink{geom_8h_ab762d12640f528d8f1f60eee92bf5f3b}{gctl\_get\_paraml}}(\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}, \textcolor{stringliteral}{"{}nargs"{}}, \textcolor{keyword}{sizeof}(*nargs));}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00453}00453         \textcolor{keywordflow}{if} (nargs == NULL) \{}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00454}00454                 \mbox{\hyperlink{geom_8h_a1d51201471b52be7e19a98b0fcb144de}{gctl\_error}}(\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}, \textcolor{stringliteral}{"{}No '\%s' argument"{}}, \textcolor{stringliteral}{"{}nargs"{}});}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00455}00455                 \textcolor{keywordflow}{return};}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00456}00456         \}}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00457}00457         \textcolor{keywordflow}{if} (*nargs <= 0) \{}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00458}00458                 \mbox{\hyperlink{geom_8h_a1d51201471b52be7e19a98b0fcb144de}{gctl\_error}}(\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}, \textcolor{stringliteral}{"{}Missing device(s)."{}});}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00459}00459                 \textcolor{keywordflow}{return};}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00460}00460         \}}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00461}00461         force = \mbox{\hyperlink{geom_8h_ab762d12640f528d8f1f60eee92bf5f3b}{gctl\_get\_paraml}}(\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}, \textcolor{stringliteral}{"{}force"{}}, \textcolor{keyword}{sizeof}(*force));}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00462}00462         \textcolor{keywordflow}{if} (force == NULL) \{}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00463}00463                 \mbox{\hyperlink{geom_8h_a1d51201471b52be7e19a98b0fcb144de}{gctl\_error}}(\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}, \textcolor{stringliteral}{"{}No 'force' argument"{}});}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00464}00464                 \textcolor{keywordflow}{return};}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00465}00465         \}}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00466}00466 }
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00467}00467         \textcolor{keywordflow}{for} (i = 0; i < *nargs; i++) \{}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00468}00468                 snprintf(param, \textcolor{keyword}{sizeof}(param), \textcolor{stringliteral}{"{}arg\%d"{}}, i);}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00469}00469                 \mbox{\hyperlink{g__part__if_8m_aff5d3acc33944ecb11914d04ef06bb54}{name}} = \mbox{\hyperlink{geom_8h_ada33526012aac8ee446617bb3749a07c}{gctl\_get\_asciiparam}}(\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}, param);}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00470}00470                 \textcolor{keywordflow}{if} (\mbox{\hyperlink{g__part__if_8m_aff5d3acc33944ecb11914d04ef06bb54}{name}} == NULL) \{}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00471}00471                         \mbox{\hyperlink{geom_8h_a1d51201471b52be7e19a98b0fcb144de}{gctl\_error}}(\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}, \textcolor{stringliteral}{"{}No 'arg\%d' argument"{}}, i);}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00472}00472                         \textcolor{keywordflow}{return};}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00473}00473                 \}}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00474}00474                 \textcolor{keywordflow}{if} (strncmp(\mbox{\hyperlink{g__part__if_8m_aff5d3acc33944ecb11914d04ef06bb54}{name}}, \mbox{\hyperlink{geom_8h_a9e429780e6e3bb32284b54630bc60a0d}{\_PATH\_DEV}}, strlen(\mbox{\hyperlink{geom_8h_a9e429780e6e3bb32284b54630bc60a0d}{\_PATH\_DEV}})) == 0)}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00475}00475                         \mbox{\hyperlink{g__part__if_8m_aff5d3acc33944ecb11914d04ef06bb54}{name}} += strlen(\mbox{\hyperlink{geom_8h_a9e429780e6e3bb32284b54630bc60a0d}{\_PATH\_DEV}});}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00476}00476                 \mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}} = \mbox{\hyperlink{g__mountver_8c_a4ce65bef4a132177eb7a8e96f72e23ea}{g\_mountver\_find\_geom}}(\mbox{\hyperlink{g__raid__md__if_8m_a4f7502795edfd2493d3d223d0df33e1d}{mp}}, \mbox{\hyperlink{g__part__if_8m_aff5d3acc33944ecb11914d04ef06bb54}{name}});}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00477}00477                 \textcolor{keywordflow}{if} (\mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}} == NULL) \{}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00478}00478                         \mbox{\hyperlink{g__mountver_8h_abc63a513cd6997d62afff7257d29a046}{G\_MOUNTVER\_DEBUG}}(1, \textcolor{stringliteral}{"{}Device \%s is invalid."{}}, \mbox{\hyperlink{g__part__if_8m_aff5d3acc33944ecb11914d04ef06bb54}{name}});}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00479}00479                         \mbox{\hyperlink{geom_8h_a1d51201471b52be7e19a98b0fcb144de}{gctl\_error}}(\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}, \textcolor{stringliteral}{"{}Device \%s is invalid."{}}, \mbox{\hyperlink{g__part__if_8m_aff5d3acc33944ecb11914d04ef06bb54}{name}});}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00480}00480                         \textcolor{keywordflow}{return};}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00481}00481                 \}}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00482}00482                 error = \mbox{\hyperlink{g__mountver_8c_a015487e71fb908991cc39c4e499006e6}{g\_mountver\_destroy}}(\mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}}, *force);}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00483}00483                 \textcolor{keywordflow}{if} (error != 0) \{}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00484}00484                         \mbox{\hyperlink{geom_8h_a1d51201471b52be7e19a98b0fcb144de}{gctl\_error}}(\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}, \textcolor{stringliteral}{"{}Cannot destroy device \%s (error=\%d)."{}},}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00485}00485                             \mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}}-\/>\mbox{\hyperlink{structg__geom_af64450500f1fea18f639b191a5017107}{name}}, error);}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00486}00486                         \textcolor{keywordflow}{return};}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00487}00487                 \}}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00488}00488         \}}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00489}00489 \}}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00490}00490 }
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00491}00491 \textcolor{keyword}{static} \textcolor{keywordtype}{void}}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00492}\mbox{\hyperlink{g__mountver_8c_a343ef3ef7f6b95c4418a82961d76861e}{00492}} \mbox{\hyperlink{g__mountver_8c_a343ef3ef7f6b95c4418a82961d76861e}{g\_mountver\_orphan}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structg__consumer}{g\_consumer}} *\mbox{\hyperlink{g__part__if_8m_a294f18324585ff37641fb8aa1c9ccd82}{cp}})}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00493}00493 \{}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00494}00494         \textcolor{keyword}{struct }\mbox{\hyperlink{structg__mountver__softc}{g\_mountver\_softc}} *sc;}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00495}00495         \textcolor{keywordtype}{int} done;}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00496}00496 }
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00497}00497         \mbox{\hyperlink{geom_8h_a1898dc8c812faa5de231ab840e8562bf}{g\_topology\_assert}}();}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00498}00498 }
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00499}00499         sc = \mbox{\hyperlink{g__part__if_8m_a294f18324585ff37641fb8aa1c9ccd82}{cp}}-\/>\mbox{\hyperlink{structg__consumer_a75734fc8cd22ffc4209c36cc0a459cba}{geom}}-\/>\mbox{\hyperlink{structg__geom_aa83c08c83459420f6cbcfe64c6099466}{softc}};}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00500}00500         mtx\_lock(\&sc-\/>\mbox{\hyperlink{structg__mountver__softc_a62752624c25a4fb83120232103e83f33}{sc\_mtx}});}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00501}00501         sc-\/>\mbox{\hyperlink{structg__mountver__softc_a2c5cf0149852300a107e60f4b5a6f3d6}{sc\_orphaned}} = 1;}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00502}00502         done = (\mbox{\hyperlink{g__part__if_8m_a294f18324585ff37641fb8aa1c9ccd82}{cp}}-\/>\mbox{\hyperlink{structg__consumer_a0bd70ab96dc6a56c4e0db0608af9c9a4}{index}} == 0);}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00503}00503         mtx\_unlock(\&sc-\/>\mbox{\hyperlink{structg__mountver__softc_a62752624c25a4fb83120232103e83f33}{sc\_mtx}});}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00504}00504         \textcolor{keywordflow}{if} (done)}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00505}00505                 \mbox{\hyperlink{g__mountver_8c_aefc17334455e40a50dd2d3a0c122caad}{g\_mountver\_detach}}(\mbox{\hyperlink{g__part__if_8m_a294f18324585ff37641fb8aa1c9ccd82}{cp}}, 0);}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00506}00506         \mbox{\hyperlink{g__mountver_8h_abc63a513cd6997d62afff7257d29a046}{G\_MOUNTVER\_DEBUG}}(0, \textcolor{stringliteral}{"{}\%s is offline.  Mount verification in progress."{}}, sc-\/>\mbox{\hyperlink{structg__mountver__softc_abae8fef88516274b4c85e55dfc800098}{sc\_provider\_name}});}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00507}00507 \}}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00508}00508 }
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00509}00509 \textcolor{keyword}{static} \textcolor{keywordtype}{void}}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00510}\mbox{\hyperlink{g__mountver_8c_aad2ee3efe2cef06e3a8d2b8d415d4d4e}{00510}} \mbox{\hyperlink{g__mountver_8c_aad2ee3efe2cef06e3a8d2b8d415d4d4e}{g\_mountver\_resize}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structg__consumer}{g\_consumer}} *\mbox{\hyperlink{g__part__if_8m_a294f18324585ff37641fb8aa1c9ccd82}{cp}})}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00511}00511 \{}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00512}00512         \textcolor{keyword}{struct }\mbox{\hyperlink{structg__geom}{g\_geom}} *\mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}};}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00513}00513         \textcolor{keyword}{struct }\mbox{\hyperlink{structg__provider}{g\_provider}} *\mbox{\hyperlink{g__part__if_8m_a9bc7638f295763b77465c5ebebbd3442}{pp}};}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00514}00514 }
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00515}00515         \mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}} = \mbox{\hyperlink{g__part__if_8m_a294f18324585ff37641fb8aa1c9ccd82}{cp}}-\/>\mbox{\hyperlink{structg__consumer_a75734fc8cd22ffc4209c36cc0a459cba}{geom}};}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00516}00516 }
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00517}00517         LIST\_FOREACH(\mbox{\hyperlink{g__part__if_8m_a9bc7638f295763b77465c5ebebbd3442}{pp}}, \&\mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}}-\/>provider, provider)}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00518}00518                 \mbox{\hyperlink{geom_8h_a72d479d3ccd8dec427b97c90557f3a4f}{g\_resize\_provider}}(\mbox{\hyperlink{g__part__if_8m_a9bc7638f295763b77465c5ebebbd3442}{pp}}, \mbox{\hyperlink{g__part__if_8m_a294f18324585ff37641fb8aa1c9ccd82}{cp}}-\/>\mbox{\hyperlink{structg__consumer_a6435d5aec0376e995dce3131fd3beb52}{provider}}-\/>\mbox{\hyperlink{structg__provider_a8f47c464c78aa91fa4ca5143ed3cd15e}{mediasize}});}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00519}00519 \}}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00520}00520 }
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00521}00521 \textcolor{keyword}{static} \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00522}\mbox{\hyperlink{g__mountver_8c_a2434643cb75528b61586bebb4fb7817e}{00522}} \mbox{\hyperlink{g__mountver_8c_a2434643cb75528b61586bebb4fb7817e}{g\_mountver\_ident\_matches}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structg__geom}{g\_geom}} *\mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}})}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00523}00523 \{}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00524}00524         \textcolor{keyword}{struct }\mbox{\hyperlink{structg__consumer}{g\_consumer}} *\mbox{\hyperlink{g__part__if_8m_a294f18324585ff37641fb8aa1c9ccd82}{cp}};}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00525}00525         \textcolor{keyword}{struct }\mbox{\hyperlink{structg__mountver__softc}{g\_mountver\_softc}} *sc;}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00526}00526         \textcolor{keywordtype}{char} ident[DISK\_IDENT\_SIZE];}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00527}00527         \textcolor{keywordtype}{int} error, identsize = DISK\_IDENT\_SIZE;}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00528}00528 }
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00529}00529         sc = \mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}}-\/>\mbox{\hyperlink{structg__geom_aa83c08c83459420f6cbcfe64c6099466}{softc}};}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00530}00530         \mbox{\hyperlink{g__part__if_8m_a294f18324585ff37641fb8aa1c9ccd82}{cp}} = LIST\_FIRST(\&\mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}}-\/>consumer);}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00531}00531 }
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00532}00532         \textcolor{keywordflow}{if} (\mbox{\hyperlink{g__mountver_8c_a831a660c874b4804756deb4bd04a392f}{g\_mountver\_check\_ident}} == 0)}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00533}00533                 \textcolor{keywordflow}{return} (0);}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00534}00534 }
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00535}00535         error = \mbox{\hyperlink{geom_8h_a27b7c72cc3bc5a4d07ce5976e1aa1b58}{g\_access}}(\mbox{\hyperlink{g__part__if_8m_a294f18324585ff37641fb8aa1c9ccd82}{cp}}, 1, 0, 0);}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00536}00536         \textcolor{keywordflow}{if} (error != 0) \{}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00537}00537                 \mbox{\hyperlink{g__mountver_8h_abc63a513cd6997d62afff7257d29a046}{G\_MOUNTVER\_DEBUG}}(0, \textcolor{stringliteral}{"{}Cannot access \%s; "{}}}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00538}00538                     \textcolor{stringliteral}{"{}not attaching; error = \%d."{}}, \mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}}-\/>\mbox{\hyperlink{structg__geom_af64450500f1fea18f639b191a5017107}{name}}, error);}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00539}00539                 \textcolor{keywordflow}{return} (1);}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00540}00540         \}}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00541}00541         error = \mbox{\hyperlink{geom_8h_a63ec0c10c4635c215416171e7e804d17}{g\_io\_getattr}}(\textcolor{stringliteral}{"{}GEOM::ident"{}}, \mbox{\hyperlink{g__part__if_8m_a294f18324585ff37641fb8aa1c9ccd82}{cp}}, \&identsize, ident);}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00542}00542         \mbox{\hyperlink{geom_8h_a27b7c72cc3bc5a4d07ce5976e1aa1b58}{g\_access}}(\mbox{\hyperlink{g__part__if_8m_a294f18324585ff37641fb8aa1c9ccd82}{cp}}, -\/1, 0, 0);}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00543}00543         \textcolor{keywordflow}{if} (error != 0) \{}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00544}00544                 \mbox{\hyperlink{g__mountver_8h_abc63a513cd6997d62afff7257d29a046}{G\_MOUNTVER\_DEBUG}}(0, \textcolor{stringliteral}{"{}Cannot get disk ident for \%s; "{}}}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00545}00545                     \textcolor{stringliteral}{"{}not attaching; error = \%d."{}}, \mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}}-\/>\mbox{\hyperlink{structg__geom_af64450500f1fea18f639b191a5017107}{name}}, error);}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00546}00546                 \textcolor{keywordflow}{return} (1);}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00547}00547         \}}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00548}00548         \textcolor{keywordflow}{if} (strcmp(ident, sc-\/>\mbox{\hyperlink{structg__mountver__softc_a503086e180e87710c1864c7bcd4e10ac}{sc\_ident}}) != 0) \{}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00549}00549                 \mbox{\hyperlink{g__mountver_8h_abc63a513cd6997d62afff7257d29a046}{G\_MOUNTVER\_DEBUG}}(1, \textcolor{stringliteral}{"{}Disk ident for \%s (\(\backslash\)"{}\%s\(\backslash\)"{}) is different "{}}}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00550}00550                     \textcolor{stringliteral}{"{}from expected \(\backslash\)"{}\%s\(\backslash\)"{}, not attaching."{}}, \mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}}-\/>\mbox{\hyperlink{structg__geom_af64450500f1fea18f639b191a5017107}{name}}, ident,}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00551}00551                     sc-\/>\mbox{\hyperlink{structg__mountver__softc_a503086e180e87710c1864c7bcd4e10ac}{sc\_ident}});}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00552}00552                 \textcolor{keywordflow}{return} (1);}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00553}00553         \}}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00554}00554 }
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00555}00555         \textcolor{keywordflow}{return} (0);}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00556}00556 \}}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00557}00557 }
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00558}00558 \textcolor{keyword}{static} \textcolor{keyword}{struct }\mbox{\hyperlink{structg__geom}{g\_geom}} *}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00559}\mbox{\hyperlink{g__mountver_8c_acf20f2fd13a7a1956b282f7ce00d1f81}{00559}} \mbox{\hyperlink{g__mountver_8c_a414c4186660cc50ac87460980b2cd292}{g\_mountver\_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{g__mountver_8c_source_l00560}00560 \{}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00561}00561         \textcolor{keyword}{struct }\mbox{\hyperlink{structg__mountver__softc}{g\_mountver\_softc}} *sc;}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00562}00562         \textcolor{keyword}{struct }\mbox{\hyperlink{structg__consumer}{g\_consumer}} *\mbox{\hyperlink{g__part__if_8m_a294f18324585ff37641fb8aa1c9ccd82}{cp}};}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00563}00563         \textcolor{keyword}{struct }\mbox{\hyperlink{structg__geom}{g\_geom}} *\mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}};}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00564}00564         \textcolor{keywordtype}{int} error;}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00565}00565 }
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00566}00566         \mbox{\hyperlink{geom_8h_a1898dc8c812faa5de231ab840e8562bf}{g\_topology\_assert}}();}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00567}00567         \mbox{\hyperlink{geom_8h_a7588d7ea7fbf7180b345df84b8797166}{g\_trace}}(\mbox{\hyperlink{geom_8h_a7f1804ff1a11f763a1ab5bdbd3e1287c}{G\_T\_TOPOLOGY}}, \textcolor{stringliteral}{"{}\%s(\%s, \%s)"{}}, \_\_func\_\_, \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{g__mountver_8c_source_l00568}00568         \mbox{\hyperlink{g__mountver_8h_abc63a513cd6997d62afff7257d29a046}{G\_MOUNTVER\_DEBUG}}(2, \textcolor{stringliteral}{"{}Tasting \%s."{}}, \mbox{\hyperlink{g__part__if_8m_a9bc7638f295763b77465c5ebebbd3442}{pp}}-\/>\mbox{\hyperlink{structg__provider_a2bffb416ee58cf4df7839c6fd5ec004a}{name}});}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00569}00569 }
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00570}00570         \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00571}00571 \textcolor{comment}{         * Let's check if device already exists.}}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00572}00572 \textcolor{comment}{         */}}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00573}00573         LIST\_FOREACH(\mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}}, \&\mbox{\hyperlink{g__raid__md__if_8m_a4f7502795edfd2493d3d223d0df33e1d}{mp}}-\/>geom, geom) \{}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00574}00574                 sc = \mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}}-\/>\mbox{\hyperlink{structg__geom_aa83c08c83459420f6cbcfe64c6099466}{softc}};}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00575}00575                 \textcolor{keywordflow}{if} (sc == NULL)}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00576}00576                         \textcolor{keywordflow}{continue};}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00577}00577 }
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00578}00578                 \textcolor{comment}{/* Already attached? */}}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00579}00579                 \textcolor{keywordflow}{if} (\mbox{\hyperlink{g__part__if_8m_a9bc7638f295763b77465c5ebebbd3442}{pp}} == LIST\_FIRST(\&\mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}}-\/>provider))}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00580}00580                         \textcolor{keywordflow}{return} (NULL);}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00581}00581 }
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00582}00582                 \textcolor{keywordflow}{if} (sc-\/>\mbox{\hyperlink{structg__mountver__softc_a2c5cf0149852300a107e60f4b5a6f3d6}{sc\_orphaned}} \&\& strcmp(\mbox{\hyperlink{g__part__if_8m_a9bc7638f295763b77465c5ebebbd3442}{pp}}-\/>\mbox{\hyperlink{structg__provider_a2bffb416ee58cf4df7839c6fd5ec004a}{name}}, sc-\/>\mbox{\hyperlink{structg__mountver__softc_abae8fef88516274b4c85e55dfc800098}{sc\_provider\_name}}) == 0)}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00583}00583                         \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00584}00584         \}}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00585}00585         \textcolor{keywordflow}{if} (\mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}} == NULL)}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00586}00586                 \textcolor{keywordflow}{return} (NULL);}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00587}00587 }
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00588}00588         \mbox{\hyperlink{g__part__if_8m_a294f18324585ff37641fb8aa1c9ccd82}{cp}} = LIST\_FIRST(\&\mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}}-\/>consumer);}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00589}00589         error = \mbox{\hyperlink{geom_8h_a7f6ee69db47bae6ff5284f6a9cfceb91}{g\_attach}}(\mbox{\hyperlink{g__part__if_8m_a294f18324585ff37641fb8aa1c9ccd82}{cp}}, \mbox{\hyperlink{g__part__if_8m_a9bc7638f295763b77465c5ebebbd3442}{pp}});}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00590}00590         \textcolor{keywordflow}{if} (error != 0) \{}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00591}00591                 \mbox{\hyperlink{g__mountver_8h_abc63a513cd6997d62afff7257d29a046}{G\_MOUNTVER\_DEBUG}}(0, \textcolor{stringliteral}{"{}Cannot attach to \%s; error = \%d."{}}, \mbox{\hyperlink{g__part__if_8m_a9bc7638f295763b77465c5ebebbd3442}{pp}}-\/>\mbox{\hyperlink{structg__provider_a2bffb416ee58cf4df7839c6fd5ec004a}{name}}, error);}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00592}00592                 \textcolor{keywordflow}{return} (NULL);}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00593}00593         \}}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00594}00594 }
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00595}00595         error = \mbox{\hyperlink{g__mountver_8c_a2434643cb75528b61586bebb4fb7817e}{g\_mountver\_ident\_matches}}(\mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}});}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00596}00596         \textcolor{keywordflow}{if} (error != 0) \{}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00597}00597                 \mbox{\hyperlink{geom_8h_a037802c2ec5d43fcf1222215f9f8a735}{g\_detach}}(\mbox{\hyperlink{g__part__if_8m_a294f18324585ff37641fb8aa1c9ccd82}{cp}});}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00598}00598                 \textcolor{keywordflow}{return} (NULL);}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00599}00599         \}}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00600}00600         \textcolor{keywordflow}{if} (sc-\/>\mbox{\hyperlink{structg__mountver__softc_a65c471b2cdd12db18b8cb6d9469bc345}{sc\_access\_r}} > 0 || sc-\/>\mbox{\hyperlink{structg__mountver__softc_ab10eaafdc2c20be91ed92607ad7753cd}{sc\_access\_w}} > 0 || sc-\/>\mbox{\hyperlink{structg__mountver__softc_a0169ab0d1726e1fdc6b8963389208de3}{sc\_access\_e}} > 0) \{}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00601}00601                 error = \mbox{\hyperlink{geom_8h_a27b7c72cc3bc5a4d07ce5976e1aa1b58}{g\_access}}(\mbox{\hyperlink{g__part__if_8m_a294f18324585ff37641fb8aa1c9ccd82}{cp}}, sc-\/>\mbox{\hyperlink{structg__mountver__softc_a65c471b2cdd12db18b8cb6d9469bc345}{sc\_access\_r}}, sc-\/>\mbox{\hyperlink{structg__mountver__softc_ab10eaafdc2c20be91ed92607ad7753cd}{sc\_access\_w}}, sc-\/>\mbox{\hyperlink{structg__mountver__softc_a0169ab0d1726e1fdc6b8963389208de3}{sc\_access\_e}});}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00602}00602                 \textcolor{keywordflow}{if} (error != 0) \{}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00603}00603                         \mbox{\hyperlink{g__mountver_8h_abc63a513cd6997d62afff7257d29a046}{G\_MOUNTVER\_DEBUG}}(0, \textcolor{stringliteral}{"{}Cannot access \%s; error = \%d."{}}, \mbox{\hyperlink{g__part__if_8m_a9bc7638f295763b77465c5ebebbd3442}{pp}}-\/>\mbox{\hyperlink{structg__provider_a2bffb416ee58cf4df7839c6fd5ec004a}{name}}, error);}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00604}00604                         \mbox{\hyperlink{geom_8h_a037802c2ec5d43fcf1222215f9f8a735}{g\_detach}}(\mbox{\hyperlink{g__part__if_8m_a294f18324585ff37641fb8aa1c9ccd82}{cp}});}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00605}00605                         \textcolor{keywordflow}{return} (NULL);}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00606}00606                 \}}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00607}00607         \}}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00608}00608         sc-\/>\mbox{\hyperlink{structg__mountver__softc_a2c5cf0149852300a107e60f4b5a6f3d6}{sc\_orphaned}} = 0;}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00609}00609         \mbox{\hyperlink{g__mountver_8c_a12f024e29dbfe459439f8bea1c58e835}{g\_mountver\_send\_queued}}(\mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}});}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00610}00610         \mbox{\hyperlink{g__mountver_8h_abc63a513cd6997d62afff7257d29a046}{G\_MOUNTVER\_DEBUG}}(0, \textcolor{stringliteral}{"{}\%s has completed mount verification."{}}, sc-\/>\mbox{\hyperlink{structg__mountver__softc_abae8fef88516274b4c85e55dfc800098}{sc\_provider\_name}});}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00611}00611 }
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00612}00612         \textcolor{keywordflow}{return} (\mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}});}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00613}00613 \}}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00614}00614 }
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00615}00615 \textcolor{keyword}{static} \textcolor{keywordtype}{void}}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00616}\mbox{\hyperlink{g__mountver_8c_ad5bf7dbf675b81b43c018a59f10c3ec1}{00616}} \mbox{\hyperlink{g__mountver_8c_ad5bf7dbf675b81b43c018a59f10c3ec1}{g\_mountver\_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{keyword}{const} \textcolor{keywordtype}{char} *verb)}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00617}00617 \{}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00618}00618         uint32\_t *version;}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00619}00619 }
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00620}00620         \mbox{\hyperlink{geom_8h_a1898dc8c812faa5de231ab840e8562bf}{g\_topology\_assert}}();}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00621}00621 }
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00622}00622         version = \mbox{\hyperlink{geom_8h_ab762d12640f528d8f1f60eee92bf5f3b}{gctl\_get\_paraml}}(\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}, \textcolor{stringliteral}{"{}version"{}}, \textcolor{keyword}{sizeof}(*version));}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00623}00623         \textcolor{keywordflow}{if} (version == NULL) \{}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00624}00624                 \mbox{\hyperlink{geom_8h_a1d51201471b52be7e19a98b0fcb144de}{gctl\_error}}(\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}, \textcolor{stringliteral}{"{}No '\%s' argument."{}}, \textcolor{stringliteral}{"{}version"{}});}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00625}00625                 \textcolor{keywordflow}{return};}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00626}00626         \}}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00627}00627         \textcolor{keywordflow}{if} (*version != \mbox{\hyperlink{g__mountver_8h_a681a7022f7d40eb24857e289fb586b49}{G\_MOUNTVER\_VERSION}}) \{}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00628}00628                 \mbox{\hyperlink{geom_8h_a1d51201471b52be7e19a98b0fcb144de}{gctl\_error}}(\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}, \textcolor{stringliteral}{"{}Userland and kernel parts are out of sync."{}});}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00629}00629                 \textcolor{keywordflow}{return};}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00630}00630         \}}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00631}00631 }
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00632}00632         \textcolor{keywordflow}{if} (strcmp(verb, \textcolor{stringliteral}{"{}create"{}}) == 0) \{}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00633}00633                 \mbox{\hyperlink{g__mountver_8c_adae77fa112d92f3db5a1a7d78289a28b}{g\_mountver\_ctl\_create}}(\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}, \mbox{\hyperlink{g__raid__md__if_8m_a4f7502795edfd2493d3d223d0df33e1d}{mp}});}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00634}00634                 \textcolor{keywordflow}{return};}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00635}00635         \} \textcolor{keywordflow}{else} \textcolor{keywordflow}{if} (strcmp(verb, \textcolor{stringliteral}{"{}destroy"{}}) == 0) \{}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00636}00636                 \mbox{\hyperlink{g__mountver_8c_a87c509cd37c91d81ec033e625d52fc05}{g\_mountver\_ctl\_destroy}}(\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}, \mbox{\hyperlink{g__raid__md__if_8m_a4f7502795edfd2493d3d223d0df33e1d}{mp}});}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00637}00637                 \textcolor{keywordflow}{return};}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00638}00638         \}}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00639}00639 }
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00640}00640         \mbox{\hyperlink{geom_8h_a1d51201471b52be7e19a98b0fcb144de}{gctl\_error}}(\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}}, \textcolor{stringliteral}{"{}Unknown verb."{}});}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00641}00641 \}}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00642}00642 }
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00643}00643 \textcolor{keyword}{static} \textcolor{keywordtype}{void}}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00644}\mbox{\hyperlink{g__mountver_8c_ac0b113060b96468198b2f1e6a62ac02f}{00644}} \mbox{\hyperlink{g__mountver_8c_ac0b113060b96468198b2f1e6a62ac02f}{g\_mountver\_dumpconf}}(\textcolor{keyword}{struct} sbuf *\mbox{\hyperlink{g__part__if_8m_a4c23eb4bab5aa5d69bd84384b94d1f79}{sb}}, \textcolor{keyword}{const} \textcolor{keywordtype}{char} *\mbox{\hyperlink{g__part__if_8m_a9a0d9ba518bc8db9a623d0a6ab81f81c}{indent}}, \textcolor{keyword}{struct} \mbox{\hyperlink{structg__geom}{g\_geom}} *\mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}},}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00645}00645     \textcolor{keyword}{struct} \mbox{\hyperlink{structg__consumer}{g\_consumer}} *\mbox{\hyperlink{g__part__if_8m_a294f18324585ff37641fb8aa1c9ccd82}{cp}}, \textcolor{keyword}{struct} \mbox{\hyperlink{structg__provider}{g\_provider}} *\mbox{\hyperlink{g__part__if_8m_a9bc7638f295763b77465c5ebebbd3442}{pp}})}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00646}00646 \{}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00647}00647         \textcolor{keyword}{struct }\mbox{\hyperlink{structg__mountver__softc}{g\_mountver\_softc}} *sc;}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00648}00648 }
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00649}00649         \textcolor{keywordflow}{if} (\mbox{\hyperlink{g__part__if_8m_a9bc7638f295763b77465c5ebebbd3442}{pp}} != NULL || \mbox{\hyperlink{g__part__if_8m_a294f18324585ff37641fb8aa1c9ccd82}{cp}} != NULL)}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00650}00650                 \textcolor{keywordflow}{return};}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00651}00651 }
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00652}00652         sc = \mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}}-\/>\mbox{\hyperlink{structg__geom_aa83c08c83459420f6cbcfe64c6099466}{softc}};}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00653}00653         sbuf\_printf(\mbox{\hyperlink{g__part__if_8m_a4c23eb4bab5aa5d69bd84384b94d1f79}{sb}}, \textcolor{stringliteral}{"{}\%s<State>\%s</State>\(\backslash\)n"{}}, \mbox{\hyperlink{g__part__if_8m_a9a0d9ba518bc8db9a623d0a6ab81f81c}{indent}},}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00654}00654             sc-\/>\mbox{\hyperlink{structg__mountver__softc_a2c5cf0149852300a107e60f4b5a6f3d6}{sc\_orphaned}} ? \textcolor{stringliteral}{"{}OFFLINE"{}} : \textcolor{stringliteral}{"{}ONLINE"{}});}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00655}00655         sbuf\_printf(\mbox{\hyperlink{g__part__if_8m_a4c23eb4bab5aa5d69bd84384b94d1f79}{sb}}, \textcolor{stringliteral}{"{}\%s<Provider-\/Name>\%s</Provider-\/Name>\(\backslash\)n"{}}, \mbox{\hyperlink{g__part__if_8m_a9a0d9ba518bc8db9a623d0a6ab81f81c}{indent}}, sc-\/>\mbox{\hyperlink{structg__mountver__softc_abae8fef88516274b4c85e55dfc800098}{sc\_provider\_name}});}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00656}00656         sbuf\_printf(\mbox{\hyperlink{g__part__if_8m_a4c23eb4bab5aa5d69bd84384b94d1f79}{sb}}, \textcolor{stringliteral}{"{}\%s<Disk-\/Ident>\%s</Disk-\/Ident>\(\backslash\)n"{}}, \mbox{\hyperlink{g__part__if_8m_a9a0d9ba518bc8db9a623d0a6ab81f81c}{indent}}, sc-\/>\mbox{\hyperlink{structg__mountver__softc_a503086e180e87710c1864c7bcd4e10ac}{sc\_ident}});}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00657}00657 \}}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00658}00658 }
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00659}00659 \textcolor{keyword}{static} \textcolor{keywordtype}{void}}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00660}\mbox{\hyperlink{g__mountver_8c_a6f3bd994adff250550df7f523cc8273c}{00660}} \mbox{\hyperlink{g__mountver_8c_a6f3bd994adff250550df7f523cc8273c}{g\_mountver\_shutdown\_pre\_sync}}(\textcolor{keywordtype}{void} *arg, \textcolor{keywordtype}{int} howto)}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00661}00661 \{}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00662}00662         \textcolor{keyword}{struct }\mbox{\hyperlink{structg__mountver__softc}{g\_mountver\_softc}} *sc;}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00663}00663         \textcolor{keyword}{struct }\mbox{\hyperlink{structg__class}{g\_class}} *\mbox{\hyperlink{g__raid__md__if_8m_a4f7502795edfd2493d3d223d0df33e1d}{mp}};}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00664}00664         \textcolor{keyword}{struct }\mbox{\hyperlink{structg__geom}{g\_geom}} *\mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}}, *gp2;}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00665}00665 }
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00666}00666         \mbox{\hyperlink{g__raid__md__if_8m_a4f7502795edfd2493d3d223d0df33e1d}{mp}} = arg;}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00667}00667         \mbox{\hyperlink{geom_8h_a232419d2cfa06ff3f4ff7551041aed31}{g\_topology\_lock}}();}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00668}00668         LIST\_FOREACH\_SAFE(\mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}}, \&\mbox{\hyperlink{g__raid__md__if_8m_a4f7502795edfd2493d3d223d0df33e1d}{mp}}-\/>geom, geom, gp2) \{}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00669}00669                 \textcolor{keywordflow}{if} (\mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}}-\/>\mbox{\hyperlink{structg__geom_aa83c08c83459420f6cbcfe64c6099466}{softc}} == NULL)}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00670}00670                         \textcolor{keywordflow}{continue};}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00671}00671                 sc = \mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}}-\/>\mbox{\hyperlink{structg__geom_aa83c08c83459420f6cbcfe64c6099466}{softc}};}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00672}00672                 sc-\/>\mbox{\hyperlink{structg__mountver__softc_a59fd7f1c819b3c2a306086be135ee9bc}{sc\_shutting\_down}} = 1;}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00673}00673                 \textcolor{keywordflow}{if} (sc-\/>\mbox{\hyperlink{structg__mountver__softc_a2c5cf0149852300a107e60f4b5a6f3d6}{sc\_orphaned}})}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00674}00674                         \mbox{\hyperlink{g__mountver_8c_a015487e71fb908991cc39c4e499006e6}{g\_mountver\_destroy}}(\mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}}, 1);}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00675}00675         \}}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00676}00676         \mbox{\hyperlink{geom_8h_a4628d4de49ba84e7a6126cc30d23b83a}{g\_topology\_unlock}}();}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00677}00677 \}}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00678}00678 }
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00679}00679 \textcolor{keyword}{static} \textcolor{keywordtype}{void}}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00680}\mbox{\hyperlink{g__mountver_8c_a14e7b139e78b18fc05b8c86bff70faba}{00680}} \mbox{\hyperlink{g__mountver_8c_a14e7b139e78b18fc05b8c86bff70faba}{g\_mountver\_init}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structg__class}{g\_class}} *\mbox{\hyperlink{g__raid__md__if_8m_a4f7502795edfd2493d3d223d0df33e1d}{mp}})}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00681}00681 \{}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00682}00682 }
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00683}00683         \mbox{\hyperlink{g__mountver_8c_acf15820eeca452b0ff19594424919ac5}{g\_mountver\_pre\_sync}} = EVENTHANDLER\_REGISTER(shutdown\_pre\_sync,}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00684}00684             \mbox{\hyperlink{g__mountver_8c_a6f3bd994adff250550df7f523cc8273c}{g\_mountver\_shutdown\_pre\_sync}}, \mbox{\hyperlink{g__raid__md__if_8m_a4f7502795edfd2493d3d223d0df33e1d}{mp}}, SHUTDOWN\_PRI\_FIRST);}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00685}00685         \textcolor{keywordflow}{if} (\mbox{\hyperlink{g__mountver_8c_acf15820eeca452b0ff19594424919ac5}{g\_mountver\_pre\_sync}} == NULL)}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00686}00686                 \mbox{\hyperlink{g__mountver_8h_abc63a513cd6997d62afff7257d29a046}{G\_MOUNTVER\_DEBUG}}(0, \textcolor{stringliteral}{"{}Warning! Cannot register shutdown event."{}});}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00687}00687 \}}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00688}00688 }
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00689}00689 \textcolor{keyword}{static} \textcolor{keywordtype}{void}}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00690}\mbox{\hyperlink{g__mountver_8c_a28502cc720f0a57de7c4f79b117d101a}{00690}} \mbox{\hyperlink{g__mountver_8c_a28502cc720f0a57de7c4f79b117d101a}{g\_mountver\_fini}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structg__class}{g\_class}} *\mbox{\hyperlink{g__raid__md__if_8m_a4f7502795edfd2493d3d223d0df33e1d}{mp}})}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00691}00691 \{}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00692}00692 }
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00693}00693         \textcolor{keywordflow}{if} (\mbox{\hyperlink{g__mountver_8c_acf15820eeca452b0ff19594424919ac5}{g\_mountver\_pre\_sync}} != NULL)}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00694}00694                 EVENTHANDLER\_DEREGISTER(shutdown\_pre\_sync, \mbox{\hyperlink{g__mountver_8c_acf15820eeca452b0ff19594424919ac5}{g\_mountver\_pre\_sync}});}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00695}00695 \}}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00696}00696 }
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00697}\mbox{\hyperlink{g__mountver_8c_abc60685bf39df659418c2d298f839437}{00697}} \mbox{\hyperlink{g__mountver_8c_abc60685bf39df659418c2d298f839437}{DECLARE\_GEOM\_CLASS}}(\mbox{\hyperlink{g__mountver_8c_a72bb9438bebac77095feae406e359f06}{g\_mountver\_class}}, g\_mountver);}
\DoxyCodeLine{\Hypertarget{g__mountver_8c_source_l00698}\mbox{\hyperlink{g__mountver_8c_ae398528996d3c358508dd499b19c386a}{00698}} \mbox{\hyperlink{g__mountver_8c_ae398528996d3c358508dd499b19c386a}{MODULE\_VERSION}}(geom\_mountver, 0);}

\end{DoxyCode}
