\hypertarget{g__linux__lvm_8c_source}{}\doxysection{g\+\_\+linux\+\_\+lvm.\+c}
\label{g__linux__lvm_8c_source}\index{geom/linux\_lvm/g\_linux\_lvm.c@{geom/linux\_lvm/g\_linux\_lvm.c}}
\mbox{\hyperlink{g__linux__lvm_8c}{Go to the documentation of this file.}}
\begin{DoxyCode}{0}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00001}00001 \textcolor{comment}{/*-\/}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00002}00002 \textcolor{comment}{ * SPDX-\/License-\/Identifier: BSD-\/2-\/Clause-\/FreeBSD}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00003}00003 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00004}00004 \textcolor{comment}{ * Copyright (c) 2008 Andrew Thompson <thompsa@FreeBSD.org>}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00005}00005 \textcolor{comment}{ * All rights reserved.}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00006}00006 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00007}00007 \textcolor{comment}{ * Redistribution and use in source and binary forms, with or without}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00008}00008 \textcolor{comment}{ * modification, are permitted provided that the following conditions}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00009}00009 \textcolor{comment}{ * are met:}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00010}00010 \textcolor{comment}{ * 1. Redistributions of source code must retain the above copyright}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00011}00011 \textcolor{comment}{ *    notice, this list of conditions and the following disclaimer.}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00012}00012 \textcolor{comment}{ * 2. Redistributions in binary form must reproduce the above copyright}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00013}00013 \textcolor{comment}{ *    notice, this list of conditions and the following disclaimer in the}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00014}00014 \textcolor{comment}{ *    documentation and/or other materials provided with the distribution.}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00015}00015 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00016}00016 \textcolor{comment}{ * THIS SOFTWARE IS PROVIDED BY THE AUTHORS AND CONTRIBUTORS ``AS IS'' AND}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00017}00017 \textcolor{comment}{ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00018}00018 \textcolor{comment}{ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00019}00019 \textcolor{comment}{ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00020}00020 \textcolor{comment}{ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00021}00021 \textcolor{comment}{ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00022}00022 \textcolor{comment}{ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00023}00023 \textcolor{comment}{ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00024}00024 \textcolor{comment}{ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00025}00025 \textcolor{comment}{ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00026}00026 \textcolor{comment}{ * SUCH DAMAGE.}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00027}00027 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00028}00028 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00029}00029 \textcolor{preprocessor}{\#include <sys/cdefs.h>}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00030}\mbox{\hyperlink{g__linux__lvm_8c_a8c3ef283470a68cd30afe9b8a72cb60f}{00030}} \mbox{\hyperlink{g__linux__lvm_8c_a8c3ef283470a68cd30afe9b8a72cb60f}{\_\_FBSDID}}(\textcolor{stringliteral}{"{}\$FreeBSD\$"{}});}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00031}00031 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00032}00032 \textcolor{preprocessor}{\#include <sys/ctype.h>}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00033}00033 \textcolor{preprocessor}{\#include <sys/param.h>}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00034}00034 \textcolor{preprocessor}{\#include <sys/bio.h>}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00035}00035 \textcolor{preprocessor}{\#include <sys/kernel.h>}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00036}00036 \textcolor{preprocessor}{\#include <sys/limits.h>}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00037}00037 \textcolor{preprocessor}{\#include <sys/malloc.h>}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00038}00038 \textcolor{preprocessor}{\#include <sys/queue.h>}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00039}00039 \textcolor{preprocessor}{\#include <sys/sysctl.h>}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00040}00040 \textcolor{preprocessor}{\#include <sys/systm.h>}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00041}00041 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00042}00042 \textcolor{preprocessor}{\#include <\mbox{\hyperlink{geom_8h}{geom/geom.h}}>}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00043}00043 \textcolor{preprocessor}{\#include <\mbox{\hyperlink{geom__dbg_8h}{geom/geom\_dbg.h}}>}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00044}00044 \textcolor{preprocessor}{\#include <sys/endian.h>}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00045}00045 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00046}00046 \textcolor{preprocessor}{\#include <\mbox{\hyperlink{g__linux__lvm_8h}{geom/linux\_lvm/g\_linux\_lvm.h}}>}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00047}00047 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00048}\mbox{\hyperlink{g__linux__lvm_8c_a4f72c23e9e8b15d3df03720ddfe70c6e}{00048}} \mbox{\hyperlink{g__linux__lvm_8c_a4f72c23e9e8b15d3df03720ddfe70c6e}{FEATURE}}(geom\_linux\_lvm, \textcolor{stringliteral}{"{}GEOM Linux LVM partitioning support"{}});}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00049}00049 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00050}00050 \textcolor{comment}{/* Declare malloc(9) label */}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00051}\mbox{\hyperlink{g__linux__lvm_8c_ae0f0408bd8f4c503d686b1cfe454a8ea}{00051}} \textcolor{keyword}{static} \mbox{\hyperlink{g__linux__lvm_8c_ae0f0408bd8f4c503d686b1cfe454a8ea}{MALLOC\_DEFINE}}(M\_GLLVM, \textcolor{stringliteral}{"{}gllvm"{}}, \textcolor{stringliteral}{"{}GEOM\_LINUX\_LVM Data"{}});}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00052}00052 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00053}00053 \textcolor{comment}{/* GEOM class methods */}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00054}\mbox{\hyperlink{g__linux__lvm_8c_a684a500bd9cb7c91a7c8778a9fdfe6b9}{00054}} \textcolor{keyword}{static} \mbox{\hyperlink{geom_8h_a68544c65a4d728ce733305aeba2f335b}{g\_access\_t}} \mbox{\hyperlink{g__linux__lvm_8c_a684a500bd9cb7c91a7c8778a9fdfe6b9}{g\_llvm\_access}};}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00055}\mbox{\hyperlink{g__linux__lvm_8c_af4426f7ef90df4f534a71da98a164597}{00055}} \textcolor{keyword}{static} \mbox{\hyperlink{geom_8h_a09dc421fa3e0bcccdf6ba9154976971d}{g\_init\_t}} \mbox{\hyperlink{g__linux__lvm_8c_af4426f7ef90df4f534a71da98a164597}{g\_llvm\_init}};}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00056}\mbox{\hyperlink{g__linux__lvm_8c_ada2ed4217f4239416cff6d5fb7f2f742}{00056}} \textcolor{keyword}{static} \mbox{\hyperlink{geom_8h_aa5c4a4aeb29f435dd74719b92e830c89}{g\_orphan\_t}} \mbox{\hyperlink{g__linux__lvm_8c_ada2ed4217f4239416cff6d5fb7f2f742}{g\_llvm\_orphan}};}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00057}\mbox{\hyperlink{g__linux__lvm_8c_a1584471c773177e932587570acd3cea6}{00057}} \textcolor{keyword}{static} \mbox{\hyperlink{geom_8h_aa5c4a4aeb29f435dd74719b92e830c89}{g\_orphan\_t}} \mbox{\hyperlink{g__linux__lvm_8c_a1584471c773177e932587570acd3cea6}{g\_llvm\_taste\_orphan}};}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00058}\mbox{\hyperlink{g__linux__lvm_8c_a9381addd3f833a1f25fa795dbba899cc}{00058}} \textcolor{keyword}{static} \mbox{\hyperlink{geom_8h_a2a6559adb145f83df6a58cfbc2be6759}{g\_start\_t}} \mbox{\hyperlink{g__linux__lvm_8c_a9381addd3f833a1f25fa795dbba899cc}{g\_llvm\_start}};}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00059}\mbox{\hyperlink{g__linux__lvm_8c_acacb1263ab2c0097b820e9bf49017c3e}{00059}} \textcolor{keyword}{static} \mbox{\hyperlink{geom_8h_a631656592e7bd0d9b508904254e8e7a7}{g\_taste\_t}} \mbox{\hyperlink{g__linux__lvm_8c_acacb1263ab2c0097b820e9bf49017c3e}{g\_llvm\_taste}};}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00060}\mbox{\hyperlink{g__linux__lvm_8c_a5cefdb4f9ac435030f1553b4d93ce025}{00060}} \textcolor{keyword}{static} \mbox{\hyperlink{geom_8h_a2baa59f23394427341e5311df530abb1}{g\_ctl\_destroy\_geom\_t}} \mbox{\hyperlink{g__linux__lvm_8c_a5cefdb4f9ac435030f1553b4d93ce025}{g\_llvm\_destroy\_geom}};}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00061}00061 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00062}00062 \textcolor{keyword}{static} \textcolor{keywordtype}{void}     \mbox{\hyperlink{g__linux__lvm_8c_aace847dea65b1f8a30e84692e9ac669c}{g\_llvm\_done}}(\textcolor{keyword}{struct} bio *);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00063}00063 \textcolor{keyword}{static} \textcolor{keywordtype}{void}     \mbox{\hyperlink{g__linux__lvm_8c_a05ed786deab83e8b38daac9843f98ffe}{g\_llvm\_remove\_disk}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structg__llvm__vg}{g\_llvm\_vg}} *, \textcolor{keyword}{struct} \mbox{\hyperlink{structg__consumer}{g\_consumer}} *);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00064}00064 \textcolor{keyword}{static} \textcolor{keywordtype}{int}      \mbox{\hyperlink{g__linux__lvm_8c_ae30cefd394a002a95e0868d965efa46e}{g\_llvm\_activate\_lv}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structg__llvm__vg}{g\_llvm\_vg}} *, \textcolor{keyword}{struct} \mbox{\hyperlink{structg__llvm__lv}{g\_llvm\_lv}} *);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00065}00065 \textcolor{keyword}{static} \textcolor{keywordtype}{int}      \mbox{\hyperlink{g__linux__lvm_8c_a08c8ef9f12db2ed7bdd98b52e808ba64}{g\_llvm\_add\_disk}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structg__llvm__vg}{g\_llvm\_vg}} *, \textcolor{keyword}{struct} \mbox{\hyperlink{structg__provider}{g\_provider}} *, \textcolor{keywordtype}{char} *);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00066}00066 \textcolor{keyword}{static} \textcolor{keywordtype}{void}     \mbox{\hyperlink{g__linux__lvm_8c_a7fc9f437be163bbbd497f64bd5c4a453}{g\_llvm\_free\_vg}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structg__llvm__vg}{g\_llvm\_vg}} *);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00067}00067 \textcolor{keyword}{static} \textcolor{keywordtype}{int}      \mbox{\hyperlink{g__linux__lvm_8c_a3327f9476e6e068a546ba1cfbbece8e2}{g\_llvm\_destroy}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structg__llvm__vg}{g\_llvm\_vg}} *, \textcolor{keywordtype}{int});}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00068}00068 \textcolor{keyword}{static} \textcolor{keywordtype}{int}      \mbox{\hyperlink{g__linux__lvm_8c_ae15ad838ac4297bbb90ba722150f7756}{g\_llvm\_read\_label}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structg__consumer}{g\_consumer}} *, \textcolor{keyword}{struct} \mbox{\hyperlink{structg__llvm__label}{g\_llvm\_label}} *);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00069}00069 \textcolor{keyword}{static} \textcolor{keywordtype}{int}      \mbox{\hyperlink{g__linux__lvm_8c_ac5d651cdcf00d7b5b4ee1e5787739527}{g\_llvm\_read\_md}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structg__consumer}{g\_consumer}} *, \textcolor{keyword}{struct} \mbox{\hyperlink{structg__llvm__metadata}{g\_llvm\_metadata}} *,}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00070}00070                     \textcolor{keyword}{struct} \mbox{\hyperlink{structg__llvm__label}{g\_llvm\_label}} *);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00071}00071 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00072}00072 \textcolor{keyword}{static} \textcolor{keywordtype}{int}      \mbox{\hyperlink{g__linux__lvm_8c_a99933b6e96c9bad89f54b40e6fd94674}{llvm\_label\_decode}}(\textcolor{keyword}{const} u\_char *, \textcolor{keyword}{struct} \mbox{\hyperlink{structg__llvm__label}{g\_llvm\_label}} *, \textcolor{keywordtype}{int});}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00073}00073 \textcolor{keyword}{static} \textcolor{keywordtype}{int}      \mbox{\hyperlink{g__linux__lvm_8c_a0acd0279e1f1024d3acac27dbe639680}{llvm\_md\_decode}}(\textcolor{keyword}{const} u\_char *, \textcolor{keyword}{struct} \mbox{\hyperlink{structg__llvm__metadata}{g\_llvm\_metadata}} *,}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00074}00074                     \textcolor{keyword}{struct} \mbox{\hyperlink{structg__llvm__label}{g\_llvm\_label}} *);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00075}00075 \textcolor{keyword}{static} \textcolor{keywordtype}{int}      \mbox{\hyperlink{g__linux__lvm_8c_aabed835ad1381f8eb6efb707efd5ae8d}{llvm\_textconf\_decode}}(u\_char *, \textcolor{keywordtype}{int},}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00076}00076                     \textcolor{keyword}{struct} \mbox{\hyperlink{structg__llvm__metadata}{g\_llvm\_metadata}} *);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00077}00077 \textcolor{keyword}{static} \textcolor{keywordtype}{int}      \mbox{\hyperlink{g__linux__lvm_8c_a4869baeaa60fe163bad304e0bdf7d1d5}{llvm\_textconf\_decode\_pv}}(\textcolor{keywordtype}{char} **, \textcolor{keywordtype}{char} *, \textcolor{keyword}{struct} \mbox{\hyperlink{structg__llvm__vg}{g\_llvm\_vg}} *);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00078}00078 \textcolor{keyword}{static} \textcolor{keywordtype}{int}      \mbox{\hyperlink{g__linux__lvm_8c_ae5febcf7c94abe976671ead3a2922f65}{llvm\_textconf\_decode\_lv}}(\textcolor{keywordtype}{char} **, \textcolor{keywordtype}{char} *, \textcolor{keyword}{struct} \mbox{\hyperlink{structg__llvm__vg}{g\_llvm\_vg}} *);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00079}00079 \textcolor{keyword}{static} \textcolor{keywordtype}{int}      \mbox{\hyperlink{g__linux__lvm_8c_afdd26aa10d92b5924d2c47fbf6ad6d59}{llvm\_textconf\_decode\_sg}}(\textcolor{keywordtype}{char} **, \textcolor{keywordtype}{char} *, \textcolor{keyword}{struct} \mbox{\hyperlink{structg__llvm__lv}{g\_llvm\_lv}} *);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00080}00080 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00081}\mbox{\hyperlink{g__linux__lvm_8c_a1e69eaa2ef6048550eaeebcf775a3d0f}{00081}} \mbox{\hyperlink{g__linux__lvm_8c_a1e69eaa2ef6048550eaeebcf775a3d0f}{SYSCTL\_DECL}}(\_kern\_geom);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00082}\mbox{\hyperlink{g__linux__lvm_8c_af81d0c79ae9c6da33d682e50b4afe5e6}{00082}} \mbox{\hyperlink{g__linux__lvm_8c_af81d0c79ae9c6da33d682e50b4afe5e6}{SYSCTL\_NODE}}(\_kern\_geom, OID\_AUTO, linux\_lvm, CTLFLAG\_RW | CTLFLAG\_MPSAFE, 0,}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00083}00083     \textcolor{stringliteral}{"{}GEOM\_LINUX\_LVM stuff"{}});}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00084}\mbox{\hyperlink{g__linux__lvm_8c_a0e218f0b6bd67ee64e00f053dfe4f842}{00084}} \textcolor{keyword}{static} u\_int \mbox{\hyperlink{g__linux__lvm_8c_a0e218f0b6bd67ee64e00f053dfe4f842}{g\_llvm\_debug}} = 0;}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00085}\mbox{\hyperlink{g__linux__lvm_8c_a267e6f2e4a66efdec4f71ad71b812565}{00085}} \mbox{\hyperlink{g__linux__lvm_8c_a267e6f2e4a66efdec4f71ad71b812565}{SYSCTL\_UINT}}(\_kern\_geom\_linux\_lvm, OID\_AUTO, debug, CTLFLAG\_RWTUN, \&\mbox{\hyperlink{g__linux__lvm_8c_a0e218f0b6bd67ee64e00f053dfe4f842}{g\_llvm\_debug}}, 0,}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00086}00086     \textcolor{stringliteral}{"{}Debug level"{}});}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00087}00087 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00088}\mbox{\hyperlink{g__linux__lvm_8c_af7354712de181c7d004690f294b49fb7}{00088}} \mbox{\hyperlink{g__linux__lvm_8c_af7354712de181c7d004690f294b49fb7}{LIST\_HEAD}}(, \mbox{\hyperlink{structg__llvm__vg}{g\_llvm\_vg}}) vg\_list;}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00089}00089 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00090}00090 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00091}00091 \textcolor{comment}{ * Called to notify geom when it's been opened, and for what intent}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00092}00092 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00093}00093 \textcolor{keyword}{static} \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00094}00094 \mbox{\hyperlink{g__linux__lvm_8c_a684a500bd9cb7c91a7c8778a9fdfe6b9}{g\_llvm\_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__linux__lvm_8c_source_l00095}00095 \{}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00096}00096         \textcolor{keyword}{struct }\mbox{\hyperlink{structg__consumer}{g\_consumer}} *c;}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00097}00097         \textcolor{keyword}{struct }\mbox{\hyperlink{structg__llvm__vg}{g\_llvm\_vg}} *vg;}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00098}00098         \textcolor{keyword}{struct }\mbox{\hyperlink{structg__geom}{g\_geom}} *\mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}};}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00099}00099         \textcolor{keywordtype}{int} error;}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00100}00100 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00101}00101         KASSERT(\mbox{\hyperlink{g__part__if_8m_a9bc7638f295763b77465c5ebebbd3442}{pp}} != NULL, (\textcolor{stringliteral}{"{}\%s: NULL provider"{}}, \_\_func\_\_));}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00102}00102         \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__linux__lvm_8c_source_l00103}00103         KASSERT(\mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}} != NULL, (\textcolor{stringliteral}{"{}\%s: NULL geom"{}}, \_\_func\_\_));}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00104}00104         vg = \mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}}-\/>\mbox{\hyperlink{structg__geom_aa83c08c83459420f6cbcfe64c6099466}{softc}};}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00105}00105 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00106}00106         \textcolor{keywordflow}{if} (vg == NULL) \{}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00107}00107                 \textcolor{comment}{/* It seems that .access can be called with negative dr,dw,dx}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00108}00108 \textcolor{comment}{                 * in this case but I want to check for myself */}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00109}00109                 \mbox{\hyperlink{g__linux__lvm_8h_abe555a5a23bcc665cf30724891fd5ee2}{G\_LLVM\_DEBUG}}(0, \textcolor{stringliteral}{"{}access(\%d, \%d, \%d) for \%s"{}},}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00110}00110                     dr, dw, de, \mbox{\hyperlink{g__part__if_8m_a9bc7638f295763b77465c5ebebbd3442}{pp}}-\/>\mbox{\hyperlink{structg__provider_a2bffb416ee58cf4df7839c6fd5ec004a}{name}});}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00111}00111 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00112}00112                 \textcolor{comment}{/* This should only happen when geom is withered so}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00113}00113 \textcolor{comment}{                 * allow only negative requests */}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00114}00114                 KASSERT(dr <= 0 \&\& dw <= 0 \&\& de <= 0,}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00115}00115                     (\textcolor{stringliteral}{"{}\%s: Positive access for \%s"{}}, \_\_func\_\_, \mbox{\hyperlink{g__part__if_8m_a9bc7638f295763b77465c5ebebbd3442}{pp}}-\/>\mbox{\hyperlink{structg__provider_a2bffb416ee58cf4df7839c6fd5ec004a}{name}}));}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00116}00116                 \textcolor{keywordflow}{if} (\mbox{\hyperlink{g__part__if_8m_a9bc7638f295763b77465c5ebebbd3442}{pp}}-\/>\mbox{\hyperlink{structg__provider_a62d7db6055318331bae725b44d58c140}{acr}} + dr == 0 \&\& \mbox{\hyperlink{g__part__if_8m_a9bc7638f295763b77465c5ebebbd3442}{pp}}-\/>\mbox{\hyperlink{structg__provider_abc6824f999ce8b17107d833c908c83e6}{acw}} + dw == 0 \&\& \mbox{\hyperlink{g__part__if_8m_a9bc7638f295763b77465c5ebebbd3442}{pp}}-\/>\mbox{\hyperlink{structg__provider_ae46b0f6e935dcb33a2a06556dbcbeb4c}{ace}} + de == 0)}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00117}00117                         \mbox{\hyperlink{g__linux__lvm_8h_abe555a5a23bcc665cf30724891fd5ee2}{G\_LLVM\_DEBUG}}(0,}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00118}00118                             \textcolor{stringliteral}{"{}Device \%s definitely destroyed"{}}, \mbox{\hyperlink{g__part__if_8m_a9bc7638f295763b77465c5ebebbd3442}{pp}}-\/>\mbox{\hyperlink{structg__provider_a2bffb416ee58cf4df7839c6fd5ec004a}{name}});}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00119}00119                 \textcolor{keywordflow}{return} (0);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00120}00120         \}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00121}00121 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00122}00122         \textcolor{comment}{/* Grab an exclusive bit to propagate on our consumers on first open */}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00123}00123         \textcolor{keywordflow}{if} (\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__linux__lvm_8c_source_l00124}00124                 de++;}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00125}00125         \textcolor{comment}{/* ... drop it on close */}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00126}00126         \textcolor{keywordflow}{if} (\mbox{\hyperlink{g__part__if_8m_a9bc7638f295763b77465c5ebebbd3442}{pp}}-\/>\mbox{\hyperlink{structg__provider_a62d7db6055318331bae725b44d58c140}{acr}} + dr == 0 \&\& \mbox{\hyperlink{g__part__if_8m_a9bc7638f295763b77465c5ebebbd3442}{pp}}-\/>\mbox{\hyperlink{structg__provider_abc6824f999ce8b17107d833c908c83e6}{acw}} + dw == 0 \&\& \mbox{\hyperlink{g__part__if_8m_a9bc7638f295763b77465c5ebebbd3442}{pp}}-\/>\mbox{\hyperlink{structg__provider_ae46b0f6e935dcb33a2a06556dbcbeb4c}{ace}} + de == 0)}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00127}00127                 de-\/-\/;}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00128}00128 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00129}00129         error = ENXIO;}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00130}00130         LIST\_FOREACH(c, \&\mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}}-\/>consumer, consumer) \{}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00131}00131                 KASSERT(c != NULL, (\textcolor{stringliteral}{"{}\%s: consumer is NULL"{}}, \_\_func\_\_));}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00132}00132                 error = \mbox{\hyperlink{geom_8h_a27b7c72cc3bc5a4d07ce5976e1aa1b58}{g\_access}}(c, dr, dw, de);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00133}00133                 \textcolor{keywordflow}{if} (error != 0) \{}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00134}00134                         \textcolor{keyword}{struct }\mbox{\hyperlink{structg__consumer}{g\_consumer}} *c2;}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00135}00135 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00136}00136                         \textcolor{comment}{/* Backout earlier changes */}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00137}00137                         LIST\_FOREACH(c2, \&\mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}}-\/>consumer, consumer) \{}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00138}00138                                 \textcolor{keywordflow}{if} (c2 == c) \textcolor{comment}{/* all eariler components fixed */}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00139}00139                                         \textcolor{keywordflow}{return} (error);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00140}00140                                 \mbox{\hyperlink{geom_8h_a27b7c72cc3bc5a4d07ce5976e1aa1b58}{g\_access}}(c2, -\/dr, -\/dw, -\/de);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00141}00141                         \}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00142}00142                 \}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00143}00143         \}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00144}00144 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00145}00145         \textcolor{keywordflow}{return} (error);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00146}00146 \}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00147}00147 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00148}00148 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00149}00149 \textcolor{comment}{ * Dismantle bio\_queue and destroy its components}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00150}00150 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00151}00151 \textcolor{keyword}{static} \textcolor{keywordtype}{void}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00152}\mbox{\hyperlink{g__linux__lvm_8c_a014cf9b2db370f61e1182fde2cf88361}{00152}} \mbox{\hyperlink{g__linux__lvm_8c_a014cf9b2db370f61e1182fde2cf88361}{bioq\_dismantle}}(\textcolor{keyword}{struct} bio\_queue\_head *bq)}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00153}00153 \{}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00154}00154         \textcolor{keyword}{struct }bio *b;}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00155}00155 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00156}00156         \textcolor{keywordflow}{for} (b = bioq\_first(bq); b != NULL; b = bioq\_first(bq)) \{}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00157}00157                 bioq\_remove(bq, b);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00158}00158                 \mbox{\hyperlink{geom_8h_ae3cbea7d4bf48f25bb609df3d3f0bb28}{g\_destroy\_bio}}(b);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00159}00159         \}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00160}00160 \}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00161}00161 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00162}00162 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00163}00163 \textcolor{comment}{ * GEOM .done handler}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00164}00164 \textcolor{comment}{ * Can't use standard handler because one requested IO may}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00165}00165 \textcolor{comment}{ * fork into additional data IOs}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00166}00166 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00167}00167 \textcolor{keyword}{static} \textcolor{keywordtype}{void}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00168}\mbox{\hyperlink{g__linux__lvm_8c_aace847dea65b1f8a30e84692e9ac669c}{00168}} \mbox{\hyperlink{g__linux__lvm_8c_aace847dea65b1f8a30e84692e9ac669c}{g\_llvm\_done}}(\textcolor{keyword}{struct} bio *b)}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00169}00169 \{}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00170}00170         \textcolor{keyword}{struct }bio *parent\_b;}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00171}00171 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00172}00172         parent\_b = b-\/>bio\_parent;}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00173}00173 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00174}00174         \textcolor{keywordflow}{if} (b-\/>bio\_error != 0) \{}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00175}00175                 \mbox{\hyperlink{g__linux__lvm_8h_abe555a5a23bcc665cf30724891fd5ee2}{G\_LLVM\_DEBUG}}(0, \textcolor{stringliteral}{"{}Error \%d for offset=\%ju, length=\%ju on \%s"{}},}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00176}00176                     b-\/>bio\_error, b-\/>bio\_offset, b-\/>bio\_length,}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00177}00177                     b-\/>bio\_to-\/>name);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00178}00178                 \textcolor{keywordflow}{if} (parent\_b-\/>bio\_error == 0)}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00179}00179                         parent\_b-\/>bio\_error = b-\/>bio\_error;}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00180}00180         \}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00181}00181 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00182}00182         parent\_b-\/>bio\_inbed++;}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00183}00183         parent\_b-\/>bio\_completed += b-\/>bio\_completed;}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00184}00184 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00185}00185         \textcolor{keywordflow}{if} (parent\_b-\/>bio\_children == parent\_b-\/>bio\_inbed) \{}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00186}00186                 parent\_b-\/>bio\_completed = parent\_b-\/>bio\_length;}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00187}00187                 \mbox{\hyperlink{geom_8h_a0975be2dcd40a26a56a1a9bfc80433e1}{g\_io\_deliver}}(parent\_b, parent\_b-\/>bio\_error);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00188}00188         \}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00189}00189         \mbox{\hyperlink{geom_8h_ae3cbea7d4bf48f25bb609df3d3f0bb28}{g\_destroy\_bio}}(b);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00190}00190 \}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00191}00191 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00192}00192 \textcolor{keyword}{static} \textcolor{keywordtype}{void}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00193}\mbox{\hyperlink{g__linux__lvm_8c_a59ed5f420859e343a44fbc6eb1c7a491}{00193}} \mbox{\hyperlink{g__linux__lvm_8c_a9381addd3f833a1f25fa795dbba899cc}{g\_llvm\_start}}(\textcolor{keyword}{struct} bio *\mbox{\hyperlink{g__part__if_8m_a3786db8db96c32f69df9f7cd325a7507}{bp}})}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00194}00194 \{}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00195}00195         \textcolor{keyword}{struct }\mbox{\hyperlink{structg__provider}{g\_provider}} *\mbox{\hyperlink{g__part__if_8m_a9bc7638f295763b77465c5ebebbd3442}{pp}};}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00196}00196         \textcolor{keyword}{struct }\mbox{\hyperlink{structg__llvm__vg}{g\_llvm\_vg}} *vg;}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00197}00197         \textcolor{keyword}{struct }\mbox{\hyperlink{structg__llvm__pv}{g\_llvm\_pv}} *pv;}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00198}00198         \textcolor{keyword}{struct }\mbox{\hyperlink{structg__llvm__lv}{g\_llvm\_lv}} *lv;}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00199}00199         \textcolor{keyword}{struct }\mbox{\hyperlink{structg__llvm__segment}{g\_llvm\_segment}} *sg;}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00200}00200         \textcolor{keyword}{struct }bio *cb;}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00201}00201         \textcolor{keyword}{struct }bio\_queue\_head bq;}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00202}00202         \textcolor{keywordtype}{size\_t} chunk\_size;}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00203}00203         off\_t \mbox{\hyperlink{g__raid__tr__if_8m_ad5f0842c40c7e46344fd8df70187fa0f}{offset}}, \mbox{\hyperlink{g__raid__tr__if_8m_ae809d5359ac030c60a30a8f0b2294b82}{length}};}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00204}00204         \textcolor{keywordtype}{char} *addr;}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00205}00205         u\_int count;}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00206}00206 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00207}00207         \mbox{\hyperlink{g__part__if_8m_a9bc7638f295763b77465c5ebebbd3442}{pp}} = \mbox{\hyperlink{g__part__if_8m_a3786db8db96c32f69df9f7cd325a7507}{bp}}-\/>bio\_to;}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00208}00208         lv = \mbox{\hyperlink{g__part__if_8m_a9bc7638f295763b77465c5ebebbd3442}{pp}}-\/>\mbox{\hyperlink{structg__provider_a5516d1ee51e75b228f047f827f46431b}{private}};}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00209}00209         vg = \mbox{\hyperlink{g__part__if_8m_a9bc7638f295763b77465c5ebebbd3442}{pp}}-\/>\mbox{\hyperlink{structg__provider_afe5c92b8a2a9e4cdf1cab6daa96923c1}{geom}}-\/>\mbox{\hyperlink{structg__geom_aa83c08c83459420f6cbcfe64c6099466}{softc}};}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00210}00210 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00211}00211         \textcolor{keywordflow}{switch} (\mbox{\hyperlink{g__part__if_8m_a3786db8db96c32f69df9f7cd325a7507}{bp}}-\/>bio\_cmd) \{}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00212}00212         \textcolor{keywordflow}{case} BIO\_READ:}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00213}00213         \textcolor{keywordflow}{case} BIO\_WRITE:}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00214}00214         \textcolor{keywordflow}{case} BIO\_DELETE:}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00215}00215         \textcolor{comment}{/* XXX BIO\_GETATTR allowed? */}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00216}00216                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00217}00217         \textcolor{keywordflow}{default}:}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00218}00218                 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00219}00219 \textcolor{comment}{                 * BIO\_SPEEDUP and BIO\_FLUSH should pass through to all sg}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00220}00220 \textcolor{comment}{                 * elements, but aren't.}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00221}00221 \textcolor{comment}{                 */}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00222}00222                 \mbox{\hyperlink{geom_8h_a0975be2dcd40a26a56a1a9bfc80433e1}{g\_io\_deliver}}(\mbox{\hyperlink{g__part__if_8m_a3786db8db96c32f69df9f7cd325a7507}{bp}}, EOPNOTSUPP);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00223}00223                 \textcolor{keywordflow}{return};}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00224}00224         \}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00225}00225 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00226}00226         bioq\_init(\&bq);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00227}00227 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00228}00228         chunk\_size = vg-\/>\mbox{\hyperlink{structg__llvm__vg_a87954f0e05608dc938c9b71ca58961aa}{vg\_extentsize}};}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00229}00229         addr = \mbox{\hyperlink{g__part__if_8m_a3786db8db96c32f69df9f7cd325a7507}{bp}}-\/>bio\_data;}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00230}00230         \mbox{\hyperlink{g__raid__tr__if_8m_ad5f0842c40c7e46344fd8df70187fa0f}{offset}} = \mbox{\hyperlink{g__part__if_8m_a3786db8db96c32f69df9f7cd325a7507}{bp}}-\/>bio\_offset;        \textcolor{comment}{/* virtual offset and length */}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00231}00231         \mbox{\hyperlink{g__raid__tr__if_8m_ae809d5359ac030c60a30a8f0b2294b82}{length}} = \mbox{\hyperlink{g__part__if_8m_a3786db8db96c32f69df9f7cd325a7507}{bp}}-\/>bio\_length;}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00232}00232 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00233}00233         \textcolor{keywordflow}{while} (\mbox{\hyperlink{g__raid__tr__if_8m_ae809d5359ac030c60a30a8f0b2294b82}{length}} > 0) \{}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00234}00234                 \textcolor{keywordtype}{size\_t} chunk\_index, in\_chunk\_offset, in\_chunk\_length;}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00235}00235 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00236}00236                 pv = NULL;}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00237}00237                 cb = \mbox{\hyperlink{geom_8h_a4ef26e4ec68e35e8f892692c524a3d4f}{g\_clone\_bio}}(\mbox{\hyperlink{g__part__if_8m_a3786db8db96c32f69df9f7cd325a7507}{bp}});}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00238}00238                 \textcolor{keywordflow}{if} (cb == NULL) \{}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00239}00239                         \mbox{\hyperlink{g__linux__lvm_8c_a014cf9b2db370f61e1182fde2cf88361}{bioq\_dismantle}}(\&bq);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00240}00240                         \textcolor{keywordflow}{if} (\mbox{\hyperlink{g__part__if_8m_a3786db8db96c32f69df9f7cd325a7507}{bp}}-\/>bio\_error == 0)}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00241}00241                                 \mbox{\hyperlink{g__part__if_8m_a3786db8db96c32f69df9f7cd325a7507}{bp}}-\/>bio\_error = ENOMEM;}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00242}00242                         \mbox{\hyperlink{geom_8h_a0975be2dcd40a26a56a1a9bfc80433e1}{g\_io\_deliver}}(\mbox{\hyperlink{g__part__if_8m_a3786db8db96c32f69df9f7cd325a7507}{bp}}, \mbox{\hyperlink{g__part__if_8m_a3786db8db96c32f69df9f7cd325a7507}{bp}}-\/>bio\_error);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00243}00243                         \textcolor{keywordflow}{return};}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00244}00244                 \}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00245}00245 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00246}00246                 \textcolor{comment}{/* get the segment and the pv */}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00247}00247                 \textcolor{keywordflow}{if} (lv-\/>\mbox{\hyperlink{structg__llvm__lv_a6cd6da05e7a992f4409d50de351b32c0}{lv\_sgcount}} == 1) \{}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00248}00248                         \textcolor{comment}{/* skip much of the calculations for a single sg */}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00249}00249                         chunk\_index = 0;}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00250}00250                         in\_chunk\_offset = 0;}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00251}00251                         in\_chunk\_length = \mbox{\hyperlink{g__raid__tr__if_8m_ae809d5359ac030c60a30a8f0b2294b82}{length}};}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00252}00252                         sg = lv-\/>\mbox{\hyperlink{structg__llvm__lv_ab4a1fa241dbfb2464069e4afd8bf361a}{lv\_firstsg}};}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00253}00253                         pv = sg-\/>\mbox{\hyperlink{structg__llvm__segment_a330e87fff21ee539f464bb9701e13a1b}{sg\_pv}};}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00254}00254                         cb-\/>bio\_offset = \mbox{\hyperlink{g__raid__tr__if_8m_ad5f0842c40c7e46344fd8df70187fa0f}{offset}} + sg-\/>\mbox{\hyperlink{structg__llvm__segment_af5b44581bcdff9166dfcbf110058c68c}{sg\_pvoffset}};}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00255}00255                 \} \textcolor{keywordflow}{else} \{}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00256}00256                         chunk\_index = \mbox{\hyperlink{g__raid__tr__if_8m_ad5f0842c40c7e46344fd8df70187fa0f}{offset}} / chunk\_size; \textcolor{comment}{/* round downwards */}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00257}00257                         in\_chunk\_offset = \mbox{\hyperlink{g__raid__tr__if_8m_ad5f0842c40c7e46344fd8df70187fa0f}{offset}} \% chunk\_size;}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00258}00258                         in\_chunk\_length =}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00259}00259                             min(\mbox{\hyperlink{g__raid__tr__if_8m_ae809d5359ac030c60a30a8f0b2294b82}{length}}, chunk\_size -\/ in\_chunk\_offset);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00260}00260 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00261}00261                         \textcolor{comment}{/* XXX could be faster */}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00262}00262                         LIST\_FOREACH(sg, \&lv-\/>lv\_segs, sg\_next) \{}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00263}00263                                 \textcolor{keywordflow}{if} (chunk\_index >= sg-\/>\mbox{\hyperlink{structg__llvm__segment_aeea7fe162f320e20d066827dc77e3762}{sg\_start}} \&\&}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00264}00264                                     chunk\_index <= sg-\/>sg\_end) \{}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00265}00265                                         \textcolor{comment}{/* adjust chunk index for sg start */}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00266}00266                                         chunk\_index -\/= sg-\/>\mbox{\hyperlink{structg__llvm__segment_aeea7fe162f320e20d066827dc77e3762}{sg\_start}};}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00267}00267                                         pv = sg-\/>\mbox{\hyperlink{structg__llvm__segment_a330e87fff21ee539f464bb9701e13a1b}{sg\_pv}};}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00268}00268                                         \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00269}00269                                 \}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00270}00270                         \}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00271}00271                         cb-\/>bio\_offset =}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00272}00272                             (off\_t)chunk\_index * (off\_t)chunk\_size}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00273}00273                             + in\_chunk\_offset + sg-\/>\mbox{\hyperlink{structg__llvm__segment_af5b44581bcdff9166dfcbf110058c68c}{sg\_pvoffset}};}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00274}00274                 \}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00275}00275 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00276}00276                 KASSERT(pv != NULL, (\textcolor{stringliteral}{"{}Can't find PV for chunk \%zu"{}},}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00277}00277                     chunk\_index));}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00278}00278 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00279}00279                 cb-\/>bio\_to = pv-\/>\mbox{\hyperlink{structg__llvm__pv_a548c697ea7d82fcda35b2cbe1b345fa3}{pv\_gprov}};}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00280}00280                 cb-\/>bio\_done = \mbox{\hyperlink{g__linux__lvm_8c_aace847dea65b1f8a30e84692e9ac669c}{g\_llvm\_done}};}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00281}00281                 cb-\/>bio\_length = in\_chunk\_length;}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00282}00282                 cb-\/>bio\_data = addr;}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00283}00283                 cb-\/>bio\_caller1 = pv;}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00284}00284                 bioq\_disksort(\&bq, cb);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00285}00285 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00286}00286                 \mbox{\hyperlink{g__linux__lvm_8h_abe555a5a23bcc665cf30724891fd5ee2}{G\_LLVM\_DEBUG}}(5,}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00287}00287                     \textcolor{stringliteral}{"{}Mapped \%s(\%ju, \%ju) on \%s to \%zu(\%zu,\%zu) @ \%s:\%ju"{}},}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00288}00288                     \mbox{\hyperlink{g__part__if_8m_a3786db8db96c32f69df9f7cd325a7507}{bp}}-\/>bio\_cmd == BIO\_READ ? \textcolor{stringliteral}{"{}R"{}} : \textcolor{stringliteral}{"{}W"{}},}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00289}00289                     \mbox{\hyperlink{g__raid__tr__if_8m_ad5f0842c40c7e46344fd8df70187fa0f}{offset}}, \mbox{\hyperlink{g__raid__tr__if_8m_ae809d5359ac030c60a30a8f0b2294b82}{length}}, lv-\/>\mbox{\hyperlink{structg__llvm__lv_ad62058768e37fb94265210e2fd7e9d2b}{lv\_name}},}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00290}00290                     chunk\_index, in\_chunk\_offset, in\_chunk\_length,}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00291}00291                     pv-\/>\mbox{\hyperlink{structg__llvm__pv_a9eec0a3fa237d4e6849111f5905bcdd8}{pv\_name}}, cb-\/>bio\_offset);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00292}00292 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00293}00293                 addr += in\_chunk\_length;}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00294}00294                 \mbox{\hyperlink{g__raid__tr__if_8m_ae809d5359ac030c60a30a8f0b2294b82}{length}} -\/= in\_chunk\_length;}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00295}00295                 \mbox{\hyperlink{g__raid__tr__if_8m_ad5f0842c40c7e46344fd8df70187fa0f}{offset}} += in\_chunk\_length;}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00296}00296         \}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00297}00297 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00298}00298         \textcolor{comment}{/* Fire off bio's here */}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00299}00299         count = 0;}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00300}00300         \textcolor{keywordflow}{for} (cb = bioq\_first(\&bq); cb != NULL; cb = bioq\_first(\&bq)) \{}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00301}00301                 bioq\_remove(\&bq, cb);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00302}00302                 pv = cb-\/>bio\_caller1;}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00303}00303                 cb-\/>bio\_caller1 = NULL;}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00304}00304                 \mbox{\hyperlink{g__linux__lvm_8h_abe555a5a23bcc665cf30724891fd5ee2}{G\_LLVM\_DEBUG}}(6, \textcolor{stringliteral}{"{}firing bio to \%s, offset=\%ju, length=\%ju"{}},}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00305}00305                     cb-\/>bio\_to-\/>name, cb-\/>bio\_offset, cb-\/>bio\_length);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00306}00306                 \mbox{\hyperlink{geom_8h_aa433c0ba9e8cad7c7da1f9e17b46eb7a}{g\_io\_request}}(cb, pv-\/>\mbox{\hyperlink{structg__llvm__pv_a24dd6808d1436d8a0add656ae3791312}{pv\_gcons}});}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00307}00307                 count++;}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00308}00308         \}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00309}00309         \textcolor{keywordflow}{if} (count == 0) \{ \textcolor{comment}{/* We handled everything locally */}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00310}00310                 \mbox{\hyperlink{g__part__if_8m_a3786db8db96c32f69df9f7cd325a7507}{bp}}-\/>bio\_completed = \mbox{\hyperlink{g__part__if_8m_a3786db8db96c32f69df9f7cd325a7507}{bp}}-\/>bio\_length;}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00311}00311                 \mbox{\hyperlink{geom_8h_a0975be2dcd40a26a56a1a9bfc80433e1}{g\_io\_deliver}}(\mbox{\hyperlink{g__part__if_8m_a3786db8db96c32f69df9f7cd325a7507}{bp}}, 0);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00312}00312         \}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00313}00313 \}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00314}00314 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00315}00315 \textcolor{keyword}{static} \textcolor{keywordtype}{void}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00316}\mbox{\hyperlink{g__linux__lvm_8c_a05ed786deab83e8b38daac9843f98ffe}{00316}} \mbox{\hyperlink{g__linux__lvm_8c_a05ed786deab83e8b38daac9843f98ffe}{g\_llvm\_remove\_disk}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structg__llvm__vg}{g\_llvm\_vg}} *vg, \textcolor{keyword}{struct} \mbox{\hyperlink{structg__consumer}{g\_consumer}} *\mbox{\hyperlink{g__part__if_8m_a294f18324585ff37641fb8aa1c9ccd82}{cp}})}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00317}00317 \{}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00318}00318         \textcolor{keyword}{struct }\mbox{\hyperlink{structg__llvm__pv}{g\_llvm\_pv}} *pv;}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00319}00319         \textcolor{keyword}{struct }\mbox{\hyperlink{structg__llvm__lv}{g\_llvm\_lv}} *lv;}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00320}00320         \textcolor{keyword}{struct }\mbox{\hyperlink{structg__llvm__segment}{g\_llvm\_segment}} *sg;}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00321}00321         \textcolor{keywordtype}{int} found;}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00322}00322 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00323}00323         KASSERT(\mbox{\hyperlink{g__part__if_8m_a294f18324585ff37641fb8aa1c9ccd82}{cp}} != NULL, (\textcolor{stringliteral}{"{}Non-\/valid disk in \%s."{}}, \_\_func\_\_));}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00324}00324         pv = (\textcolor{keyword}{struct }\mbox{\hyperlink{structg__llvm__pv}{g\_llvm\_pv}} *)\mbox{\hyperlink{g__part__if_8m_a294f18324585ff37641fb8aa1c9ccd82}{cp}}-\/>\mbox{\hyperlink{structg__consumer_a11273c1281d0cffbc3383eb4e49e7010}{private}};}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00325}00325 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00326}00326         \mbox{\hyperlink{g__linux__lvm_8h_abe555a5a23bcc665cf30724891fd5ee2}{G\_LLVM\_DEBUG}}(0, \textcolor{stringliteral}{"{}Disk \%s removed from \%s."{}}, \mbox{\hyperlink{g__part__if_8m_a294f18324585ff37641fb8aa1c9ccd82}{cp}}-\/>\mbox{\hyperlink{structg__consumer_a6435d5aec0376e995dce3131fd3beb52}{provider}}-\/>\mbox{\hyperlink{structg__provider_a2bffb416ee58cf4df7839c6fd5ec004a}{name}},}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00327}00327             pv-\/>\mbox{\hyperlink{structg__llvm__pv_a9eec0a3fa237d4e6849111f5905bcdd8}{pv\_name}});}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00328}00328 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00329}00329         LIST\_FOREACH(lv, \&vg-\/>vg\_lvs, lv\_next) \{}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00330}00330                 \textcolor{comment}{/* Find segments that map to this disk */}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00331}00331                 found = 0;}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00332}00332                 LIST\_FOREACH(sg, \&lv-\/>lv\_segs, sg\_next) \{}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00333}00333                         \textcolor{keywordflow}{if} (sg-\/>\mbox{\hyperlink{structg__llvm__segment_a330e87fff21ee539f464bb9701e13a1b}{sg\_pv}} == pv) \{}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00334}00334                                 sg-\/>\mbox{\hyperlink{structg__llvm__segment_a330e87fff21ee539f464bb9701e13a1b}{sg\_pv}} = NULL;}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00335}00335                                 lv-\/>\mbox{\hyperlink{structg__llvm__lv_a8e17b5c56578692976d2297ff26a65d6}{lv\_sgactive}}-\/-\/;}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00336}00336                                 found = 1;}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00337}00337                                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00338}00338                         \}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00339}00339                 \}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00340}00340                 \textcolor{keywordflow}{if} (found) \{}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00341}00341                         \mbox{\hyperlink{g__linux__lvm_8h_abe555a5a23bcc665cf30724891fd5ee2}{G\_LLVM\_DEBUG}}(0, \textcolor{stringliteral}{"{}Device \%s removed."{}},}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00342}00342                             lv-\/>\mbox{\hyperlink{structg__llvm__lv_a66f55bf9935432bc1d78a48232695992}{lv\_gprov}}-\/>\mbox{\hyperlink{structg__provider_a2bffb416ee58cf4df7839c6fd5ec004a}{name}});}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00343}00343                         \mbox{\hyperlink{geom_8h_a164882713025c4e0cc58b1ac8501bcf0}{g\_wither\_provider}}(lv-\/>\mbox{\hyperlink{structg__llvm__lv_a66f55bf9935432bc1d78a48232695992}{lv\_gprov}}, ENXIO);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00344}00344                         lv-\/>\mbox{\hyperlink{structg__llvm__lv_a66f55bf9935432bc1d78a48232695992}{lv\_gprov}} = NULL;}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00345}00345                 \}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00346}00346         \}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00347}00347 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00348}00348         \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__linux__lvm_8c_source_l00349}00349                 \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__linux__lvm_8c_source_l00350}00350         \mbox{\hyperlink{geom_8h_a037802c2ec5d43fcf1222215f9f8a735}{g\_detach}}(\mbox{\hyperlink{g__part__if_8m_a294f18324585ff37641fb8aa1c9ccd82}{cp}});}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00351}00351         \mbox{\hyperlink{geom_8h_a9f53f6118c5e44ca2bcbd7ae548597b9}{g\_destroy\_consumer}}(\mbox{\hyperlink{g__part__if_8m_a294f18324585ff37641fb8aa1c9ccd82}{cp}});}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00352}00352 \}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00353}00353 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00354}00354 \textcolor{keyword}{static} \textcolor{keywordtype}{void}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00355}\mbox{\hyperlink{g__linux__lvm_8c_a3f4833298029097c9e3aaa27c2c19582}{00355}} \mbox{\hyperlink{g__linux__lvm_8c_ada2ed4217f4239416cff6d5fb7f2f742}{g\_llvm\_orphan}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structg__consumer}{g\_consumer}} *\mbox{\hyperlink{g__part__if_8m_a294f18324585ff37641fb8aa1c9ccd82}{cp}})}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00356}00356 \{}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00357}00357         \textcolor{keyword}{struct }\mbox{\hyperlink{structg__llvm__vg}{g\_llvm\_vg}} *vg;}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00358}00358         \textcolor{keyword}{struct }\mbox{\hyperlink{structg__geom}{g\_geom}} *\mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}};}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00359}00359 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00360}00360         \mbox{\hyperlink{geom_8h_a1898dc8c812faa5de231ab840e8562bf}{g\_topology\_assert}}();}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00361}00361         \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__linux__lvm_8c_source_l00362}00362         vg = \mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}}-\/>\mbox{\hyperlink{structg__geom_aa83c08c83459420f6cbcfe64c6099466}{softc}};}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00363}00363         \textcolor{keywordflow}{if} (vg == NULL)}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00364}00364                 \textcolor{keywordflow}{return};}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00365}00365 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00366}00366         \mbox{\hyperlink{g__linux__lvm_8c_a05ed786deab83e8b38daac9843f98ffe}{g\_llvm\_remove\_disk}}(vg, \mbox{\hyperlink{g__part__if_8m_a294f18324585ff37641fb8aa1c9ccd82}{cp}});}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00367}00367         \mbox{\hyperlink{g__linux__lvm_8c_a3327f9476e6e068a546ba1cfbbece8e2}{g\_llvm\_destroy}}(vg, 1);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00368}00368 \}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00369}00369 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00370}00370 \textcolor{keyword}{static} \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00371}\mbox{\hyperlink{g__linux__lvm_8c_ae30cefd394a002a95e0868d965efa46e}{00371}} \mbox{\hyperlink{g__linux__lvm_8c_ae30cefd394a002a95e0868d965efa46e}{g\_llvm\_activate\_lv}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structg__llvm__vg}{g\_llvm\_vg}} *vg, \textcolor{keyword}{struct} \mbox{\hyperlink{structg__llvm__lv}{g\_llvm\_lv}} *lv)}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00372}00372 \{}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00373}00373         \textcolor{keyword}{struct }\mbox{\hyperlink{structg__geom}{g\_geom}} *\mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}};}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00374}00374         \textcolor{keyword}{struct }\mbox{\hyperlink{structg__provider}{g\_provider}} *\mbox{\hyperlink{g__part__if_8m_a9bc7638f295763b77465c5ebebbd3442}{pp}};}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00375}00375 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00376}00376         \mbox{\hyperlink{geom_8h_a1898dc8c812faa5de231ab840e8562bf}{g\_topology\_assert}}();}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00377}00377 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00378}00378         KASSERT(lv-\/>\mbox{\hyperlink{structg__llvm__lv_a8e17b5c56578692976d2297ff26a65d6}{lv\_sgactive}} == lv-\/>\mbox{\hyperlink{structg__llvm__lv_a6cd6da05e7a992f4409d50de351b32c0}{lv\_sgcount}}, (\textcolor{stringliteral}{"{}segment missing"{}}));}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00379}00379 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00380}00380         \mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}} = vg-\/>\mbox{\hyperlink{structg__llvm__vg_a60a5b1e0d8a140d0d6a2bb3210720896}{vg\_geom}};}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00381}00381         \mbox{\hyperlink{g__part__if_8m_a9bc7638f295763b77465c5ebebbd3442}{pp}} = \mbox{\hyperlink{geom_8h_a79a5fe6e79cbc1a257454a3554fa11ef}{g\_new\_providerf}}(\mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}}, \textcolor{stringliteral}{"{}linux\_lvm/\%s-\/\%s"{}}, vg-\/>\mbox{\hyperlink{structg__llvm__vg_aaf9fb264c1bba09456e6f58f1c12bf2f}{vg\_name}}, lv-\/>\mbox{\hyperlink{structg__llvm__lv_ad62058768e37fb94265210e2fd7e9d2b}{lv\_name}});}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00382}00382         \mbox{\hyperlink{g__part__if_8m_a9bc7638f295763b77465c5ebebbd3442}{pp}}-\/>\mbox{\hyperlink{structg__provider_a8f47c464c78aa91fa4ca5143ed3cd15e}{mediasize}} = vg-\/>\mbox{\hyperlink{structg__llvm__vg_a87954f0e05608dc938c9b71ca58961aa}{vg\_extentsize}} * (off\_t)lv-\/>\mbox{\hyperlink{structg__llvm__lv_ac19efabe057ae6f42c91e694f4b45043}{lv\_extentcount}};}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00383}00383         \mbox{\hyperlink{g__part__if_8m_a9bc7638f295763b77465c5ebebbd3442}{pp}}-\/>\mbox{\hyperlink{structg__provider_aea3cd43d41461790b8d0afcd8c49a355}{sectorsize}} = vg-\/>\mbox{\hyperlink{structg__llvm__vg_a9d3c74a639a7f65b42cebcb6fdc0a9c6}{vg\_sectorsize}};}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00384}00384         \mbox{\hyperlink{geom_8h_a7a46b49361266e9bb4b1441aade2c48f}{g\_error\_provider}}(\mbox{\hyperlink{g__part__if_8m_a9bc7638f295763b77465c5ebebbd3442}{pp}}, 0);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00385}00385         lv-\/>\mbox{\hyperlink{structg__llvm__lv_a66f55bf9935432bc1d78a48232695992}{lv\_gprov}} = \mbox{\hyperlink{g__part__if_8m_a9bc7638f295763b77465c5ebebbd3442}{pp}};}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00386}00386         \mbox{\hyperlink{g__part__if_8m_a9bc7638f295763b77465c5ebebbd3442}{pp}}-\/>\mbox{\hyperlink{structg__provider_a5516d1ee51e75b228f047f827f46431b}{private}} = lv;}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00387}00387 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00388}00388         \mbox{\hyperlink{g__linux__lvm_8h_abe555a5a23bcc665cf30724891fd5ee2}{G\_LLVM\_DEBUG}}(1, \textcolor{stringliteral}{"{}Created \%s, \%juM"{}}, \mbox{\hyperlink{g__part__if_8m_a9bc7638f295763b77465c5ebebbd3442}{pp}}-\/>\mbox{\hyperlink{structg__provider_a2bffb416ee58cf4df7839c6fd5ec004a}{name}},}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00389}00389             \mbox{\hyperlink{g__part__if_8m_a9bc7638f295763b77465c5ebebbd3442}{pp}}-\/>\mbox{\hyperlink{structg__provider_a8f47c464c78aa91fa4ca5143ed3cd15e}{mediasize}} / (1024*1024));}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00390}00390 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00391}00391         \textcolor{keywordflow}{return} (0);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00392}00392 \}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00393}00393 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00394}00394 \textcolor{keyword}{static} \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00395}\mbox{\hyperlink{g__linux__lvm_8c_a08c8ef9f12db2ed7bdd98b52e808ba64}{00395}} \mbox{\hyperlink{g__linux__lvm_8c_a08c8ef9f12db2ed7bdd98b52e808ba64}{g\_llvm\_add\_disk}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structg__llvm__vg}{g\_llvm\_vg}} *vg, \textcolor{keyword}{struct} \mbox{\hyperlink{structg__provider}{g\_provider}} *\mbox{\hyperlink{g__part__if_8m_a9bc7638f295763b77465c5ebebbd3442}{pp}}, \textcolor{keywordtype}{char} *uuid)}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00396}00396 \{}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00397}00397         \textcolor{keyword}{struct }\mbox{\hyperlink{structg__geom}{g\_geom}} *\mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}};}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00398}00398         \textcolor{keyword}{struct }\mbox{\hyperlink{structg__consumer}{g\_consumer}} *\mbox{\hyperlink{g__part__if_8m_a294f18324585ff37641fb8aa1c9ccd82}{cp}}, *fcp;}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00399}00399         \textcolor{keyword}{struct }\mbox{\hyperlink{structg__llvm__pv}{g\_llvm\_pv}} *pv;}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00400}00400         \textcolor{keyword}{struct }\mbox{\hyperlink{structg__llvm__lv}{g\_llvm\_lv}} *lv;}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00401}00401         \textcolor{keyword}{struct }\mbox{\hyperlink{structg__llvm__segment}{g\_llvm\_segment}} *sg;}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00402}00402         \textcolor{keywordtype}{int} error;}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00403}00403 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00404}00404         \mbox{\hyperlink{geom_8h_a1898dc8c812faa5de231ab840e8562bf}{g\_topology\_assert}}();}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00405}00405 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00406}00406         LIST\_FOREACH(pv, \&vg-\/>vg\_pvs, pv\_next) \{}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00407}00407                 \textcolor{keywordflow}{if} (strcmp(pv-\/>\mbox{\hyperlink{structg__llvm__pv_afcd7611c079aea584d2712ae799ed887}{pv\_uuid}}, uuid) == 0)}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00408}00408                         \textcolor{keywordflow}{break};  \textcolor{comment}{/* found it */}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00409}00409         \}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00410}00410         \textcolor{keywordflow}{if} (pv == NULL) \{}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00411}00411                 \mbox{\hyperlink{g__linux__lvm_8h_abe555a5a23bcc665cf30724891fd5ee2}{G\_LLVM\_DEBUG}}(3, \textcolor{stringliteral}{"{}uuid \%s not found in pv list"{}}, uuid);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00412}00412                 \textcolor{keywordflow}{return} (ENOENT);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00413}00413         \}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00414}00414         \textcolor{keywordflow}{if} (pv-\/>\mbox{\hyperlink{structg__llvm__pv_a548c697ea7d82fcda35b2cbe1b345fa3}{pv\_gprov}} != NULL) \{}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00415}00415                 \mbox{\hyperlink{g__linux__lvm_8h_abe555a5a23bcc665cf30724891fd5ee2}{G\_LLVM\_DEBUG}}(0, \textcolor{stringliteral}{"{}disk \%s already initialised in \%s"{}},}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00416}00416                     pv-\/>\mbox{\hyperlink{structg__llvm__pv_a9eec0a3fa237d4e6849111f5905bcdd8}{pv\_name}}, vg-\/>\mbox{\hyperlink{structg__llvm__vg_aaf9fb264c1bba09456e6f58f1c12bf2f}{vg\_name}});}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00417}00417                 \textcolor{keywordflow}{return} (EEXIST);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00418}00418         \}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00419}00419 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00420}00420         pv-\/>\mbox{\hyperlink{structg__llvm__pv_ae9e2591557cda65c3ab0fa12d566d5b2}{pv\_start}} *= vg-\/>\mbox{\hyperlink{structg__llvm__vg_a9d3c74a639a7f65b42cebcb6fdc0a9c6}{vg\_sectorsize}};}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00421}00421         \mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}} = vg-\/>\mbox{\hyperlink{structg__llvm__vg_a60a5b1e0d8a140d0d6a2bb3210720896}{vg\_geom}};}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00422}00422         fcp = LIST\_FIRST(\&\mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}}-\/>consumer);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00423}00423 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00424}00424         \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__linux__lvm_8c_source_l00425}00425         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__linux__lvm_8c_source_l00426}00426         \mbox{\hyperlink{g__linux__lvm_8h_abe555a5a23bcc665cf30724891fd5ee2}{G\_LLVM\_DEBUG}}(1, \textcolor{stringliteral}{"{}Attached \%s to \%s at offset \%ju"{}},}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00427}00427             \mbox{\hyperlink{g__part__if_8m_a9bc7638f295763b77465c5ebebbd3442}{pp}}-\/>\mbox{\hyperlink{structg__provider_a2bffb416ee58cf4df7839c6fd5ec004a}{name}}, pv-\/>\mbox{\hyperlink{structg__llvm__pv_a9eec0a3fa237d4e6849111f5905bcdd8}{pv\_name}}, pv-\/>\mbox{\hyperlink{structg__llvm__pv_ae9e2591557cda65c3ab0fa12d566d5b2}{pv\_start}});}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00428}00428 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00429}00429         \textcolor{keywordflow}{if} (error != 0) \{}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00430}00430                 \mbox{\hyperlink{g__linux__lvm_8h_abe555a5a23bcc665cf30724891fd5ee2}{G\_LLVM\_DEBUG}}(0, \textcolor{stringliteral}{"{}cannot attach \%s to \%s"{}},}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00431}00431                     \mbox{\hyperlink{g__part__if_8m_a9bc7638f295763b77465c5ebebbd3442}{pp}}-\/>\mbox{\hyperlink{structg__provider_a2bffb416ee58cf4df7839c6fd5ec004a}{name}}, vg-\/>\mbox{\hyperlink{structg__llvm__vg_aaf9fb264c1bba09456e6f58f1c12bf2f}{vg\_name}});}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00432}00432                 \mbox{\hyperlink{geom_8h_a9f53f6118c5e44ca2bcbd7ae548597b9}{g\_destroy\_consumer}}(\mbox{\hyperlink{g__part__if_8m_a294f18324585ff37641fb8aa1c9ccd82}{cp}});}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00433}00433                 \textcolor{keywordflow}{return} (error);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00434}00434         \}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00435}00435 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00436}00436         \textcolor{keywordflow}{if} (fcp != NULL) \{}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00437}00437                 \textcolor{keywordflow}{if} (fcp-\/>\mbox{\hyperlink{structg__consumer_a6435d5aec0376e995dce3131fd3beb52}{provider}}-\/>\mbox{\hyperlink{structg__provider_aea3cd43d41461790b8d0afcd8c49a355}{sectorsize}} != \mbox{\hyperlink{g__part__if_8m_a9bc7638f295763b77465c5ebebbd3442}{pp}}-\/>\mbox{\hyperlink{structg__provider_aea3cd43d41461790b8d0afcd8c49a355}{sectorsize}}) \{}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00438}00438                         \mbox{\hyperlink{g__linux__lvm_8h_abe555a5a23bcc665cf30724891fd5ee2}{G\_LLVM\_DEBUG}}(0, \textcolor{stringliteral}{"{}Provider \%s of \%s has invalid "{}}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00439}00439                             \textcolor{stringliteral}{"{}sector size (\%d)"{}}, \mbox{\hyperlink{g__part__if_8m_a9bc7638f295763b77465c5ebebbd3442}{pp}}-\/>\mbox{\hyperlink{structg__provider_a2bffb416ee58cf4df7839c6fd5ec004a}{name}}, vg-\/>\mbox{\hyperlink{structg__llvm__vg_aaf9fb264c1bba09456e6f58f1c12bf2f}{vg\_name}},}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00440}00440                             \mbox{\hyperlink{g__part__if_8m_a9bc7638f295763b77465c5ebebbd3442}{pp}}-\/>\mbox{\hyperlink{structg__provider_aea3cd43d41461790b8d0afcd8c49a355}{sectorsize}});}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00441}00441                         \textcolor{keywordflow}{return} (EINVAL);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00442}00442                 \}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00443}00443                 \textcolor{keywordflow}{if} (fcp-\/>\mbox{\hyperlink{structg__consumer_a40c3b377327dc07731eaf19340004033}{acr}} > 0 || fcp-\/>\mbox{\hyperlink{structg__consumer_a28f563df0299e7e1ab9a1121b6e483eb}{acw}} || fcp-\/>\mbox{\hyperlink{structg__consumer_ace7a7f6859bd4cf00ff910bda08bb05a}{ace}} > 0) \{}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00444}00444                         \textcolor{comment}{/* Replicate access permissions from first "{}live"{}}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00445}00445 \textcolor{comment}{                         * consumer to the new one */}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00446}00446                         error = \mbox{\hyperlink{geom_8h_a27b7c72cc3bc5a4d07ce5976e1aa1b58}{g\_access}}(\mbox{\hyperlink{g__part__if_8m_a294f18324585ff37641fb8aa1c9ccd82}{cp}}, fcp-\/>\mbox{\hyperlink{structg__consumer_a40c3b377327dc07731eaf19340004033}{acr}}, fcp-\/>\mbox{\hyperlink{structg__consumer_a28f563df0299e7e1ab9a1121b6e483eb}{acw}}, fcp-\/>\mbox{\hyperlink{structg__consumer_ace7a7f6859bd4cf00ff910bda08bb05a}{ace}});}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00447}00447                         \textcolor{keywordflow}{if} (error != 0) \{}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00448}00448                                 \mbox{\hyperlink{geom_8h_a037802c2ec5d43fcf1222215f9f8a735}{g\_detach}}(\mbox{\hyperlink{g__part__if_8m_a294f18324585ff37641fb8aa1c9ccd82}{cp}});}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00449}00449                                 \mbox{\hyperlink{geom_8h_a9f53f6118c5e44ca2bcbd7ae548597b9}{g\_destroy\_consumer}}(\mbox{\hyperlink{g__part__if_8m_a294f18324585ff37641fb8aa1c9ccd82}{cp}});}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00450}00450                                 \textcolor{keywordflow}{return} (error);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00451}00451                         \}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00452}00452                 \}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00453}00453         \}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00454}00454 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00455}00455         \mbox{\hyperlink{g__part__if_8m_a294f18324585ff37641fb8aa1c9ccd82}{cp}}-\/>\mbox{\hyperlink{structg__consumer_a11273c1281d0cffbc3383eb4e49e7010}{private}} = pv;}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00456}00456         pv-\/>\mbox{\hyperlink{structg__llvm__pv_a24dd6808d1436d8a0add656ae3791312}{pv\_gcons}} = \mbox{\hyperlink{g__part__if_8m_a294f18324585ff37641fb8aa1c9ccd82}{cp}};}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00457}00457         pv-\/>\mbox{\hyperlink{structg__llvm__pv_a548c697ea7d82fcda35b2cbe1b345fa3}{pv\_gprov}} = \mbox{\hyperlink{g__part__if_8m_a9bc7638f295763b77465c5ebebbd3442}{pp}};}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00458}00458 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00459}00459         LIST\_FOREACH(lv, \&vg-\/>vg\_lvs, lv\_next) \{}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00460}00460                 \textcolor{comment}{/* Find segments that map to this disk */}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00461}00461                 LIST\_FOREACH(sg, \&lv-\/>lv\_segs, sg\_next) \{}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00462}00462                         \textcolor{keywordflow}{if} (strcmp(sg-\/>\mbox{\hyperlink{structg__llvm__segment_a3c47e1836d9cbfc2857bec1c8718333a}{sg\_pvname}}, pv-\/>\mbox{\hyperlink{structg__llvm__pv_a9eec0a3fa237d4e6849111f5905bcdd8}{pv\_name}}) == 0) \{}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00463}00463                                 \textcolor{comment}{/* avtivate the segment */}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00464}00464                                 KASSERT(sg-\/>\mbox{\hyperlink{structg__llvm__segment_a330e87fff21ee539f464bb9701e13a1b}{sg\_pv}} == NULL,}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00465}00465                                     (\textcolor{stringliteral}{"{}segment already mapped"{}}));}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00466}00466                                 sg-\/>\mbox{\hyperlink{structg__llvm__segment_af5b44581bcdff9166dfcbf110058c68c}{sg\_pvoffset}} =}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00467}00467                                     (off\_t)sg-\/>\mbox{\hyperlink{structg__llvm__segment_acf75f1294eab9fc6d725135c8104f47a}{sg\_pvstart}} * vg-\/>\mbox{\hyperlink{structg__llvm__vg_a87954f0e05608dc938c9b71ca58961aa}{vg\_extentsize}}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00468}00468                                     + pv-\/>\mbox{\hyperlink{structg__llvm__pv_ae9e2591557cda65c3ab0fa12d566d5b2}{pv\_start}};}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00469}00469                                 sg-\/>\mbox{\hyperlink{structg__llvm__segment_a330e87fff21ee539f464bb9701e13a1b}{sg\_pv}} = pv;}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00470}00470                                 lv-\/>\mbox{\hyperlink{structg__llvm__lv_a8e17b5c56578692976d2297ff26a65d6}{lv\_sgactive}}++;}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00471}00471 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00472}00472                                 \mbox{\hyperlink{g__linux__lvm_8h_abe555a5a23bcc665cf30724891fd5ee2}{G\_LLVM\_DEBUG}}(2, \textcolor{stringliteral}{"{}\%s: \%d to \%d @ \%s:\%d"{}}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00473}00473                                     \textcolor{stringliteral}{"{} offset \%ju sector \%ju"{}},}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00474}00474                                     lv-\/>\mbox{\hyperlink{structg__llvm__lv_ad62058768e37fb94265210e2fd7e9d2b}{lv\_name}}, sg-\/>\mbox{\hyperlink{structg__llvm__segment_aeea7fe162f320e20d066827dc77e3762}{sg\_start}}, sg-\/>\mbox{\hyperlink{structg__llvm__segment_ab3caecb92d4c043e7d2470785861b71d}{sg\_end}},}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00475}00475                                     sg-\/>\mbox{\hyperlink{structg__llvm__segment_a3c47e1836d9cbfc2857bec1c8718333a}{sg\_pvname}}, sg-\/>\mbox{\hyperlink{structg__llvm__segment_acf75f1294eab9fc6d725135c8104f47a}{sg\_pvstart}},}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00476}00476                                     sg-\/>\mbox{\hyperlink{structg__llvm__segment_af5b44581bcdff9166dfcbf110058c68c}{sg\_pvoffset}},}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00477}00477                                     sg-\/>\mbox{\hyperlink{structg__llvm__segment_af5b44581bcdff9166dfcbf110058c68c}{sg\_pvoffset}} / vg-\/>\mbox{\hyperlink{structg__llvm__vg_a9d3c74a639a7f65b42cebcb6fdc0a9c6}{vg\_sectorsize}});}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00478}00478                         \}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00479}00479                 \}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00480}00480                 \textcolor{comment}{/* Activate any lvs waiting on this disk */}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00481}00481                 \textcolor{keywordflow}{if} (lv-\/>\mbox{\hyperlink{structg__llvm__lv_a66f55bf9935432bc1d78a48232695992}{lv\_gprov}} == NULL \&\& lv-\/>\mbox{\hyperlink{structg__llvm__lv_a8e17b5c56578692976d2297ff26a65d6}{lv\_sgactive}} == lv-\/>\mbox{\hyperlink{structg__llvm__lv_a6cd6da05e7a992f4409d50de351b32c0}{lv\_sgcount}}) \{}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00482}00482                         error = \mbox{\hyperlink{g__linux__lvm_8c_ae30cefd394a002a95e0868d965efa46e}{g\_llvm\_activate\_lv}}(vg, lv);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00483}00483                         \textcolor{keywordflow}{if} (error)}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00484}00484                                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00485}00485                 \}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00486}00486         \}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00487}00487         \textcolor{keywordflow}{return} (error);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00488}00488 \}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00489}00489 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00490}00490 \textcolor{keyword}{static} \textcolor{keywordtype}{void}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00491}\mbox{\hyperlink{g__linux__lvm_8c_a0559d62520c6eaabdfbb77dbf22432c8}{00491}} \mbox{\hyperlink{g__linux__lvm_8c_af4426f7ef90df4f534a71da98a164597}{g\_llvm\_init}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structg__class}{g\_class}} *\mbox{\hyperlink{g__raid__md__if_8m_a4f7502795edfd2493d3d223d0df33e1d}{mp}})}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00492}00492 \{}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00493}00493         LIST\_INIT(\&vg\_list);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00494}00494 \}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00495}00495 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00496}00496 \textcolor{keyword}{static} \textcolor{keywordtype}{void}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00497}\mbox{\hyperlink{g__linux__lvm_8c_a7fc9f437be163bbbd497f64bd5c4a453}{00497}} \mbox{\hyperlink{g__linux__lvm_8c_a7fc9f437be163bbbd497f64bd5c4a453}{g\_llvm\_free\_vg}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structg__llvm__vg}{g\_llvm\_vg}} *vg)}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00498}00498 \{}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00499}00499         \textcolor{keyword}{struct }\mbox{\hyperlink{structg__llvm__pv}{g\_llvm\_pv}} *pv;}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00500}00500         \textcolor{keyword}{struct }\mbox{\hyperlink{structg__llvm__lv}{g\_llvm\_lv}} *lv;}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00501}00501         \textcolor{keyword}{struct }\mbox{\hyperlink{structg__llvm__segment}{g\_llvm\_segment}} *sg;}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00502}00502 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00503}00503         \textcolor{comment}{/* Free all the structures */}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00504}00504         \textcolor{keywordflow}{while} ((pv = LIST\_FIRST(\&vg-\/>vg\_pvs)) != NULL) \{}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00505}00505                 LIST\_REMOVE(pv, pv\_next);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00506}00506                 \mbox{\hyperlink{g__raid__md__if_8m_a4df9edb2717b3f7e4c3c903878577a54}{free}}(pv, M\_GLLVM);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00507}00507         \}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00508}00508         \textcolor{keywordflow}{while} ((lv = LIST\_FIRST(\&vg-\/>vg\_lvs)) != NULL) \{}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00509}00509                 \textcolor{keywordflow}{while} ((sg = LIST\_FIRST(\&lv-\/>lv\_segs)) != NULL) \{}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00510}00510                         LIST\_REMOVE(sg, sg\_next);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00511}00511                         \mbox{\hyperlink{g__raid__md__if_8m_a4df9edb2717b3f7e4c3c903878577a54}{free}}(sg, M\_GLLVM);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00512}00512                 \}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00513}00513                 LIST\_REMOVE(lv, lv\_next);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00514}00514                 \mbox{\hyperlink{g__raid__md__if_8m_a4df9edb2717b3f7e4c3c903878577a54}{free}}(lv, M\_GLLVM);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00515}00515         \}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00516}00516         LIST\_REMOVE(vg, vg\_next);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00517}00517         \mbox{\hyperlink{g__raid__md__if_8m_a4df9edb2717b3f7e4c3c903878577a54}{free}}(vg, M\_GLLVM);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00518}00518 \}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00519}00519 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00520}00520 \textcolor{keyword}{static} \textcolor{keywordtype}{void}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00521}\mbox{\hyperlink{g__linux__lvm_8c_adda9ea024fe21efd9cafb58cf9c83ed4}{00521}} \mbox{\hyperlink{g__linux__lvm_8c_a1584471c773177e932587570acd3cea6}{g\_llvm\_taste\_orphan}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structg__consumer}{g\_consumer}} *\mbox{\hyperlink{g__part__if_8m_a294f18324585ff37641fb8aa1c9ccd82}{cp}})}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00522}00522 \{}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00523}00523 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00524}00524         KASSERT(1 == 0, (\textcolor{stringliteral}{"{}\%s called while tasting \%s."{}}, \_\_func\_\_,}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00525}00525             \mbox{\hyperlink{g__part__if_8m_a294f18324585ff37641fb8aa1c9ccd82}{cp}}-\/>\mbox{\hyperlink{structg__consumer_a6435d5aec0376e995dce3131fd3beb52}{provider}}-\/>\mbox{\hyperlink{structg__provider_a2bffb416ee58cf4df7839c6fd5ec004a}{name}}));}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00526}00526 \}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00527}00527 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00528}00528 \textcolor{keyword}{static} \textcolor{keyword}{struct }\mbox{\hyperlink{structg__geom}{g\_geom}} *}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00529}\mbox{\hyperlink{g__linux__lvm_8c_a7deb597dcd9a1c64d6bdc989ea7a46c4}{00529}} \mbox{\hyperlink{g__linux__lvm_8c_acacb1263ab2c0097b820e9bf49017c3e}{g\_llvm\_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__linux__lvm_8c_source_l00530}00530 \{}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00531}00531         \textcolor{keyword}{struct }\mbox{\hyperlink{structg__consumer}{g\_consumer}} *\mbox{\hyperlink{g__part__if_8m_a294f18324585ff37641fb8aa1c9ccd82}{cp}};}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00532}00532         \textcolor{keyword}{struct }\mbox{\hyperlink{structg__geom}{g\_geom}} *\mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}};}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00533}00533         \textcolor{keyword}{struct }\mbox{\hyperlink{structg__llvm__label}{g\_llvm\_label}} ll;}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00534}00534         \textcolor{keyword}{struct }\mbox{\hyperlink{structg__llvm__metadata}{g\_llvm\_metadata}} md;}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00535}00535         \textcolor{keyword}{struct }\mbox{\hyperlink{structg__llvm__vg}{g\_llvm\_vg}} *vg;}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00536}00536         \textcolor{keywordtype}{int} error;}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00537}00537 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00538}00538         bzero(\&md, \textcolor{keyword}{sizeof}(md));}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00539}00539 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00540}00540         \mbox{\hyperlink{geom_8h_a1898dc8c812faa5de231ab840e8562bf}{g\_topology\_assert}}();}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00541}00541         \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__linux__lvm_8c_source_l00542}00542         \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}{"{}linux\_lvm:taste"{}});}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00543}00543         \textcolor{comment}{/* This orphan function should be never called. */}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00544}00544         \mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}}-\/>\mbox{\hyperlink{structg__geom_a67386b3b9a49233eca9f73d28bc70325}{orphan}} = \mbox{\hyperlink{g__linux__lvm_8c_a1584471c773177e932587570acd3cea6}{g\_llvm\_taste\_orphan}};}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00545}00545         \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__linux__lvm_8c_source_l00546}00546         \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__linux__lvm_8c_source_l00547}00547         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__linux__lvm_8c_source_l00548}00548         \textcolor{keywordflow}{if} (error == 0) \{}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00549}00549                 error = \mbox{\hyperlink{g__linux__lvm_8c_ae15ad838ac4297bbb90ba722150f7756}{g\_llvm\_read\_label}}(\mbox{\hyperlink{g__part__if_8m_a294f18324585ff37641fb8aa1c9ccd82}{cp}}, \&ll);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00550}00550                 \textcolor{keywordflow}{if} (error == 0)}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00551}00551                         error = \mbox{\hyperlink{g__linux__lvm_8c_ac5d651cdcf00d7b5b4ee1e5787739527}{g\_llvm\_read\_md}}(\mbox{\hyperlink{g__part__if_8m_a294f18324585ff37641fb8aa1c9ccd82}{cp}}, \&md, \&ll);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00552}00552                 \mbox{\hyperlink{geom_8h_a037802c2ec5d43fcf1222215f9f8a735}{g\_detach}}(\mbox{\hyperlink{g__part__if_8m_a294f18324585ff37641fb8aa1c9ccd82}{cp}});}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00553}00553         \}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00554}00554         \mbox{\hyperlink{geom_8h_a9f53f6118c5e44ca2bcbd7ae548597b9}{g\_destroy\_consumer}}(\mbox{\hyperlink{g__part__if_8m_a294f18324585ff37641fb8aa1c9ccd82}{cp}});}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00555}00555         \mbox{\hyperlink{geom_8h_ac8307c99785f672632d3cf33134211ea}{g\_destroy\_geom}}(\mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}});}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00556}00556         \textcolor{keywordflow}{if} (error != 0)}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00557}00557                 \textcolor{keywordflow}{return} (NULL);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00558}00558 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00559}00559         vg = md.\mbox{\hyperlink{structg__llvm__metadata_ab9f5dab1ef15703bad42e5546dd5d496}{md\_vg}};}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00560}00560         \textcolor{keywordflow}{if} (vg-\/>\mbox{\hyperlink{structg__llvm__vg_a60a5b1e0d8a140d0d6a2bb3210720896}{vg\_geom}} == NULL) \{}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00561}00561                 \textcolor{comment}{/* new volume group */}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00562}00562                 \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"{}}, vg-\/>\mbox{\hyperlink{structg__llvm__vg_aaf9fb264c1bba09456e6f58f1c12bf2f}{vg\_name}});}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00563}00563                 \mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}}-\/>\mbox{\hyperlink{structg__geom_a160a0c74f128936d97064e56052dc2ef}{start}} = \mbox{\hyperlink{g__linux__lvm_8c_a9381addd3f833a1f25fa795dbba899cc}{g\_llvm\_start}};}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00564}00564                 \mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}}-\/>\mbox{\hyperlink{structg__geom_a0a74cfab0860e32fcfd20a3846b401a7}{spoiled}} = \mbox{\hyperlink{g__linux__lvm_8c_ada2ed4217f4239416cff6d5fb7f2f742}{g\_llvm\_orphan}};}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00565}00565                 \mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}}-\/>\mbox{\hyperlink{structg__geom_a67386b3b9a49233eca9f73d28bc70325}{orphan}} = \mbox{\hyperlink{g__linux__lvm_8c_ada2ed4217f4239416cff6d5fb7f2f742}{g\_llvm\_orphan}};}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00566}00566                 \mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}}-\/>\mbox{\hyperlink{structg__geom_aea05083928dcabdb4d343c6b9ee71cbd}{access}} = \mbox{\hyperlink{g__linux__lvm_8c_a684a500bd9cb7c91a7c8778a9fdfe6b9}{g\_llvm\_access}};}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00567}00567                 vg-\/>\mbox{\hyperlink{structg__llvm__vg_a9d3c74a639a7f65b42cebcb6fdc0a9c6}{vg\_sectorsize}} = \mbox{\hyperlink{g__part__if_8m_a9bc7638f295763b77465c5ebebbd3442}{pp}}-\/>\mbox{\hyperlink{structg__provider_aea3cd43d41461790b8d0afcd8c49a355}{sectorsize}};}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00568}00568                 vg-\/>\mbox{\hyperlink{structg__llvm__vg_a87954f0e05608dc938c9b71ca58961aa}{vg\_extentsize}} *= vg-\/>\mbox{\hyperlink{structg__llvm__vg_a9d3c74a639a7f65b42cebcb6fdc0a9c6}{vg\_sectorsize}};}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00569}00569                 vg-\/>\mbox{\hyperlink{structg__llvm__vg_a60a5b1e0d8a140d0d6a2bb3210720896}{vg\_geom}} = \mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}};}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00570}00570                 \mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}}-\/>\mbox{\hyperlink{structg__geom_aa83c08c83459420f6cbcfe64c6099466}{softc}} = vg;}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00571}00571                 \mbox{\hyperlink{g__linux__lvm_8h_abe555a5a23bcc665cf30724891fd5ee2}{G\_LLVM\_DEBUG}}(1, \textcolor{stringliteral}{"{}Created volume \%s, extent size \%zuK"{}},}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00572}00572                     vg-\/>\mbox{\hyperlink{structg__llvm__vg_aaf9fb264c1bba09456e6f58f1c12bf2f}{vg\_name}}, vg-\/>\mbox{\hyperlink{structg__llvm__vg_a87954f0e05608dc938c9b71ca58961aa}{vg\_extentsize}} / 1024);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00573}00573         \}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00574}00574 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00575}00575         \textcolor{comment}{/* initialise this disk in the volume group */}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00576}00576         \mbox{\hyperlink{g__linux__lvm_8c_a08c8ef9f12db2ed7bdd98b52e808ba64}{g\_llvm\_add\_disk}}(vg, \mbox{\hyperlink{g__part__if_8m_a9bc7638f295763b77465c5ebebbd3442}{pp}}, ll.\mbox{\hyperlink{structg__llvm__label_a4b6a2d6a08d3d5b9700da1c79b2cc291}{ll\_uuid}});}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00577}00577         \textcolor{keywordflow}{return} (vg-\/>\mbox{\hyperlink{structg__llvm__vg_a60a5b1e0d8a140d0d6a2bb3210720896}{vg\_geom}});}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00578}00578 \}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00579}00579 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00580}00580 \textcolor{keyword}{static} \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00581}\mbox{\hyperlink{g__linux__lvm_8c_a3327f9476e6e068a546ba1cfbbece8e2}{00581}} \mbox{\hyperlink{g__linux__lvm_8c_a3327f9476e6e068a546ba1cfbbece8e2}{g\_llvm\_destroy}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structg__llvm__vg}{g\_llvm\_vg}} *vg, \textcolor{keywordtype}{int} force)}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00582}00582 \{}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00583}00583         \textcolor{keyword}{struct }\mbox{\hyperlink{structg__provider}{g\_provider}} *\mbox{\hyperlink{g__part__if_8m_a9bc7638f295763b77465c5ebebbd3442}{pp}};}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00584}00584         \textcolor{keyword}{struct }\mbox{\hyperlink{structg__geom}{g\_geom}} *\mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}};}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00585}00585 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00586}00586         \mbox{\hyperlink{geom_8h_a1898dc8c812faa5de231ab840e8562bf}{g\_topology\_assert}}();}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00587}00587         \textcolor{keywordflow}{if} (vg == NULL)}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00588}00588                 \textcolor{keywordflow}{return} (ENXIO);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00589}00589         \mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}} = vg-\/>\mbox{\hyperlink{structg__llvm__vg_a60a5b1e0d8a140d0d6a2bb3210720896}{vg\_geom}};}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00590}00590 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00591}00591         LIST\_FOREACH(\mbox{\hyperlink{g__part__if_8m_a9bc7638f295763b77465c5ebebbd3442}{pp}}, \&\mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}}-\/>provider, provider) \{}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00592}00592                 \textcolor{keywordflow}{if} (\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__linux__lvm_8c_source_l00593}00593                         \mbox{\hyperlink{g__linux__lvm_8h_abe555a5a23bcc665cf30724891fd5ee2}{G\_LLVM\_DEBUG}}(1, \textcolor{stringliteral}{"{}Device \%s is still open (r\%dw\%de\%d)"{}},}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00594}00594                             \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__linux__lvm_8c_source_l00595}00595                         \textcolor{keywordflow}{if} (!force)}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00596}00596                                 \textcolor{keywordflow}{return} (EBUSY);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00597}00597                 \}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00598}00598         \}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00599}00599 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00600}00600         \mbox{\hyperlink{g__linux__lvm_8c_a7fc9f437be163bbbd497f64bd5c4a453}{g\_llvm\_free\_vg}}(\mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}}-\/>\mbox{\hyperlink{structg__geom_aa83c08c83459420f6cbcfe64c6099466}{softc}});}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00601}00601         \mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}}-\/>\mbox{\hyperlink{structg__geom_aa83c08c83459420f6cbcfe64c6099466}{softc}} = NULL;}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00602}00602         \mbox{\hyperlink{geom_8h_a87a0eb5de79ed5e49fcfec012f213c9b}{g\_wither\_geom}}(\mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}}, ENXIO);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00603}00603         \textcolor{keywordflow}{return} (0);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00604}00604 \}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00605}00605 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00606}00606 \textcolor{keyword}{static} \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00607}\mbox{\hyperlink{g__linux__lvm_8c_afb2fd5ddee3fb8f32beb4bb23bacdd47}{00607}} \mbox{\hyperlink{g__linux__lvm_8c_a5cefdb4f9ac435030f1553b4d93ce025}{g\_llvm\_destroy\_geom}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structgctl__req}{gctl\_req}} *\mbox{\hyperlink{g__part__if_8m_a7a9f20c97e75f805eb506910bd3e70d3}{req}} \_\_unused, \textcolor{keyword}{struct} \mbox{\hyperlink{structg__class}{g\_class}} *\mbox{\hyperlink{g__raid__md__if_8m_a4f7502795edfd2493d3d223d0df33e1d}{mp}} \_\_unused,}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00608}00608     \textcolor{keyword}{struct} \mbox{\hyperlink{structg__geom}{g\_geom}} *\mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}})}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00609}00609 \{}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00610}00610         \textcolor{keyword}{struct }\mbox{\hyperlink{structg__llvm__vg}{g\_llvm\_vg}} *vg;}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00611}00611 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00612}00612         vg = \mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}}-\/>\mbox{\hyperlink{structg__geom_aa83c08c83459420f6cbcfe64c6099466}{softc}};}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00613}00613         \textcolor{keywordflow}{return} (\mbox{\hyperlink{g__linux__lvm_8c_a3327f9476e6e068a546ba1cfbbece8e2}{g\_llvm\_destroy}}(vg, 0));}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00614}00614 \}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00615}00615 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00616}00616 \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00617}\mbox{\hyperlink{g__linux__lvm_8c_ae15ad838ac4297bbb90ba722150f7756}{00617}} \mbox{\hyperlink{g__linux__lvm_8c_ae15ad838ac4297bbb90ba722150f7756}{g\_llvm\_read\_label}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structg__consumer}{g\_consumer}} *\mbox{\hyperlink{g__part__if_8m_a294f18324585ff37641fb8aa1c9ccd82}{cp}}, \textcolor{keyword}{struct} \mbox{\hyperlink{structg__llvm__label}{g\_llvm\_label}} *ll)}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00618}00618 \{}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00619}00619         \textcolor{keyword}{struct }\mbox{\hyperlink{structg__provider}{g\_provider}} *\mbox{\hyperlink{g__part__if_8m_a9bc7638f295763b77465c5ebebbd3442}{pp}};}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00620}00620         u\_char *\mbox{\hyperlink{g__part__if_8m_ac14417684334d01b4e1e807a19d92816}{buf}};}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00621}00621         \textcolor{keywordtype}{int} i, \mbox{\hyperlink{structg__provider_acacf1ee18cb6edbcfedc185846696e7f}{error}} = 0;}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00622}00622 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00623}00623         \mbox{\hyperlink{geom_8h_a1898dc8c812faa5de231ab840e8562bf}{g\_topology\_assert}}();}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00624}00624 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00625}00625         \textcolor{comment}{/* The LVM label is stored on the first four sectors */}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00626}00626         \mbox{\hyperlink{structg__provider_acacf1ee18cb6edbcfedc185846696e7f}{error}} = \mbox{\hyperlink{geom_8h_a27b7c72cc3bc5a4d07ce5976e1aa1b58}{g\_access}}(\mbox{\hyperlink{g__part__if_8m_a294f18324585ff37641fb8aa1c9ccd82}{cp}}, 1, 0, 0);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00627}00627         \textcolor{keywordflow}{if} (\mbox{\hyperlink{structg__provider_acacf1ee18cb6edbcfedc185846696e7f}{error}} != 0)}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00628}00628                 \textcolor{keywordflow}{return} (\mbox{\hyperlink{structg__provider_acacf1ee18cb6edbcfedc185846696e7f}{error}});}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00629}00629         \mbox{\hyperlink{g__part__if_8m_a9bc7638f295763b77465c5ebebbd3442}{pp}} = \mbox{\hyperlink{g__part__if_8m_a294f18324585ff37641fb8aa1c9ccd82}{cp}}-\/>\mbox{\hyperlink{structg__consumer_a6435d5aec0376e995dce3131fd3beb52}{provider}};}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00630}00630         \mbox{\hyperlink{geom_8h_a4628d4de49ba84e7a6126cc30d23b83a}{g\_topology\_unlock}}();}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00631}00631         \mbox{\hyperlink{g__part__if_8m_ac14417684334d01b4e1e807a19d92816}{buf}} = \mbox{\hyperlink{geom_8h_a550c2071f79908eea3d1ccbf821c4e4f}{g\_read\_data}}(\mbox{\hyperlink{g__part__if_8m_a294f18324585ff37641fb8aa1c9ccd82}{cp}}, 0, \mbox{\hyperlink{g__part__if_8m_a9bc7638f295763b77465c5ebebbd3442}{pp}}-\/>\mbox{\hyperlink{structg__provider_aea3cd43d41461790b8d0afcd8c49a355}{sectorsize}} * 4, \&\mbox{\hyperlink{structg__provider_acacf1ee18cb6edbcfedc185846696e7f}{error}});}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00632}00632         \mbox{\hyperlink{geom_8h_a232419d2cfa06ff3f4ff7551041aed31}{g\_topology\_lock}}();}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00633}00633         \mbox{\hyperlink{geom_8h_a27b7c72cc3bc5a4d07ce5976e1aa1b58}{g\_access}}(\mbox{\hyperlink{g__part__if_8m_a294f18324585ff37641fb8aa1c9ccd82}{cp}}, -\/1, 0, 0);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00634}00634         \textcolor{keywordflow}{if} (\mbox{\hyperlink{g__part__if_8m_ac14417684334d01b4e1e807a19d92816}{buf}} == NULL) \{}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00635}00635                 \mbox{\hyperlink{g__linux__lvm_8h_abe555a5a23bcc665cf30724891fd5ee2}{G\_LLVM\_DEBUG}}(1, \textcolor{stringliteral}{"{}Cannot read metadata from \%s (error=\%d)"{}},}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00636}00636                     \mbox{\hyperlink{g__part__if_8m_a9bc7638f295763b77465c5ebebbd3442}{pp}}-\/>\mbox{\hyperlink{structg__provider_a2bffb416ee58cf4df7839c6fd5ec004a}{name}}, \mbox{\hyperlink{structg__provider_acacf1ee18cb6edbcfedc185846696e7f}{error}});}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00637}00637                 \textcolor{keywordflow}{return} (\mbox{\hyperlink{structg__provider_acacf1ee18cb6edbcfedc185846696e7f}{error}});}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00638}00638         \}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00639}00639 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00640}00640         \textcolor{comment}{/* Search the four sectors for the LVM label. */}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00641}00641         \textcolor{keywordflow}{for} (i = 0; i < 4; i++) \{}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00642}00642                 \mbox{\hyperlink{structg__provider_acacf1ee18cb6edbcfedc185846696e7f}{error}} = \mbox{\hyperlink{g__linux__lvm_8c_a99933b6e96c9bad89f54b40e6fd94674}{llvm\_label\_decode}}(\&\mbox{\hyperlink{g__part__if_8m_ac14417684334d01b4e1e807a19d92816}{buf}}[i * \mbox{\hyperlink{g__part__if_8m_a9bc7638f295763b77465c5ebebbd3442}{pp}}-\/>\mbox{\hyperlink{structg__provider_aea3cd43d41461790b8d0afcd8c49a355}{sectorsize}}], ll, i);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00643}00643                 \textcolor{keywordflow}{if} (\mbox{\hyperlink{structg__provider_acacf1ee18cb6edbcfedc185846696e7f}{error}} == 0)}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00644}00644                         \textcolor{keywordflow}{break};  \textcolor{comment}{/* found it */}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00645}00645         \}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00646}00646         \mbox{\hyperlink{geom_8h_ad9924deb20de7b40cb6cf06e5ae28855}{g\_free}}(\mbox{\hyperlink{g__part__if_8m_ac14417684334d01b4e1e807a19d92816}{buf}});}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00647}00647         \textcolor{keywordflow}{return} (\mbox{\hyperlink{structg__provider_acacf1ee18cb6edbcfedc185846696e7f}{error}});}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00648}00648 \}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00649}00649 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00650}00650 \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00651}\mbox{\hyperlink{g__linux__lvm_8c_ac5d651cdcf00d7b5b4ee1e5787739527}{00651}} \mbox{\hyperlink{g__linux__lvm_8c_ac5d651cdcf00d7b5b4ee1e5787739527}{g\_llvm\_read\_md}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structg__consumer}{g\_consumer}} *\mbox{\hyperlink{g__part__if_8m_a294f18324585ff37641fb8aa1c9ccd82}{cp}}, \textcolor{keyword}{struct} \mbox{\hyperlink{structg__llvm__metadata}{g\_llvm\_metadata}} *md,}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00652}00652     \textcolor{keyword}{struct} \mbox{\hyperlink{structg__llvm__label}{g\_llvm\_label}} *ll)}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00653}00653 \{}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00654}00654         \textcolor{keyword}{struct }\mbox{\hyperlink{structg__provider}{g\_provider}} *\mbox{\hyperlink{g__part__if_8m_a9bc7638f295763b77465c5ebebbd3442}{pp}};}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00655}00655         u\_char *\mbox{\hyperlink{g__part__if_8m_ac14417684334d01b4e1e807a19d92816}{buf}};}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00656}00656         \textcolor{keywordtype}{int} \mbox{\hyperlink{structg__provider_acacf1ee18cb6edbcfedc185846696e7f}{error}};}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00657}00657         \textcolor{keywordtype}{int} size;}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00658}00658 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00659}00659         \mbox{\hyperlink{geom_8h_a1898dc8c812faa5de231ab840e8562bf}{g\_topology\_assert}}();}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00660}00660 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00661}00661         \mbox{\hyperlink{structg__provider_acacf1ee18cb6edbcfedc185846696e7f}{error}} = \mbox{\hyperlink{geom_8h_a27b7c72cc3bc5a4d07ce5976e1aa1b58}{g\_access}}(\mbox{\hyperlink{g__part__if_8m_a294f18324585ff37641fb8aa1c9ccd82}{cp}}, 1, 0, 0);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00662}00662         \textcolor{keywordflow}{if} (\mbox{\hyperlink{structg__provider_acacf1ee18cb6edbcfedc185846696e7f}{error}} != 0)}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00663}00663                 \textcolor{keywordflow}{return} (\mbox{\hyperlink{structg__provider_acacf1ee18cb6edbcfedc185846696e7f}{error}});}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00664}00664         \mbox{\hyperlink{g__part__if_8m_a9bc7638f295763b77465c5ebebbd3442}{pp}} = \mbox{\hyperlink{g__part__if_8m_a294f18324585ff37641fb8aa1c9ccd82}{cp}}-\/>\mbox{\hyperlink{structg__consumer_a6435d5aec0376e995dce3131fd3beb52}{provider}};}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00665}00665         \mbox{\hyperlink{geom_8h_a4628d4de49ba84e7a6126cc30d23b83a}{g\_topology\_unlock}}();}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00666}00666         \mbox{\hyperlink{g__part__if_8m_ac14417684334d01b4e1e807a19d92816}{buf}} = \mbox{\hyperlink{geom_8h_a550c2071f79908eea3d1ccbf821c4e4f}{g\_read\_data}}(\mbox{\hyperlink{g__part__if_8m_a294f18324585ff37641fb8aa1c9ccd82}{cp}}, ll-\/>\mbox{\hyperlink{structg__llvm__label_a26d4227b553cad96074abef6b48e59c5}{ll\_md\_offset}}, \mbox{\hyperlink{g__part__if_8m_a9bc7638f295763b77465c5ebebbd3442}{pp}}-\/>\mbox{\hyperlink{structg__provider_aea3cd43d41461790b8d0afcd8c49a355}{sectorsize}}, \&\mbox{\hyperlink{structg__provider_acacf1ee18cb6edbcfedc185846696e7f}{error}});}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00667}00667         \mbox{\hyperlink{geom_8h_a232419d2cfa06ff3f4ff7551041aed31}{g\_topology\_lock}}();}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00668}00668         \mbox{\hyperlink{geom_8h_a27b7c72cc3bc5a4d07ce5976e1aa1b58}{g\_access}}(\mbox{\hyperlink{g__part__if_8m_a294f18324585ff37641fb8aa1c9ccd82}{cp}}, -\/1, 0, 0);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00669}00669         \textcolor{keywordflow}{if} (\mbox{\hyperlink{g__part__if_8m_ac14417684334d01b4e1e807a19d92816}{buf}} == NULL) \{}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00670}00670                 \mbox{\hyperlink{g__linux__lvm_8h_abe555a5a23bcc665cf30724891fd5ee2}{G\_LLVM\_DEBUG}}(0, \textcolor{stringliteral}{"{}Cannot read metadata from \%s (error=\%d)"{}},}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00671}00671                     \mbox{\hyperlink{g__part__if_8m_a294f18324585ff37641fb8aa1c9ccd82}{cp}}-\/>\mbox{\hyperlink{structg__consumer_a6435d5aec0376e995dce3131fd3beb52}{provider}}-\/>\mbox{\hyperlink{structg__provider_a2bffb416ee58cf4df7839c6fd5ec004a}{name}}, \mbox{\hyperlink{structg__provider_acacf1ee18cb6edbcfedc185846696e7f}{error}});}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00672}00672                 \textcolor{keywordflow}{return} (\mbox{\hyperlink{structg__provider_acacf1ee18cb6edbcfedc185846696e7f}{error}});}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00673}00673         \}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00674}00674 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00675}00675         \mbox{\hyperlink{structg__provider_acacf1ee18cb6edbcfedc185846696e7f}{error}} = \mbox{\hyperlink{g__linux__lvm_8c_a0acd0279e1f1024d3acac27dbe639680}{llvm\_md\_decode}}(\mbox{\hyperlink{g__part__if_8m_ac14417684334d01b4e1e807a19d92816}{buf}}, md, ll);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00676}00676         \mbox{\hyperlink{geom_8h_ad9924deb20de7b40cb6cf06e5ae28855}{g\_free}}(\mbox{\hyperlink{g__part__if_8m_ac14417684334d01b4e1e807a19d92816}{buf}});}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00677}00677         \textcolor{keywordflow}{if} (\mbox{\hyperlink{structg__provider_acacf1ee18cb6edbcfedc185846696e7f}{error}} != 0) \{}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00678}00678                 \textcolor{keywordflow}{return} (\mbox{\hyperlink{structg__provider_acacf1ee18cb6edbcfedc185846696e7f}{error}});}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00679}00679         \}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00680}00680 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00681}00681         \mbox{\hyperlink{g__linux__lvm_8h_abe555a5a23bcc665cf30724891fd5ee2}{G\_LLVM\_DEBUG}}(1, \textcolor{stringliteral}{"{}reading LVM2 config @ \%s:\%ju"{}}, \mbox{\hyperlink{g__part__if_8m_a9bc7638f295763b77465c5ebebbd3442}{pp}}-\/>\mbox{\hyperlink{structg__provider_a2bffb416ee58cf4df7839c6fd5ec004a}{name}},}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00682}00682                     ll-\/>\mbox{\hyperlink{structg__llvm__label_a26d4227b553cad96074abef6b48e59c5}{ll\_md\_offset}} + md-\/>\mbox{\hyperlink{structg__llvm__metadata_a6590d5eceed03a9012861c1107573cee}{md\_reloffset}});}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00683}00683         \mbox{\hyperlink{structg__provider_acacf1ee18cb6edbcfedc185846696e7f}{error}} = \mbox{\hyperlink{geom_8h_a27b7c72cc3bc5a4d07ce5976e1aa1b58}{g\_access}}(\mbox{\hyperlink{g__part__if_8m_a294f18324585ff37641fb8aa1c9ccd82}{cp}}, 1, 0, 0);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00684}00684         \textcolor{keywordflow}{if} (\mbox{\hyperlink{structg__provider_acacf1ee18cb6edbcfedc185846696e7f}{error}} != 0)}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00685}00685                 \textcolor{keywordflow}{return} (\mbox{\hyperlink{structg__provider_acacf1ee18cb6edbcfedc185846696e7f}{error}});}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00686}00686         \mbox{\hyperlink{g__part__if_8m_a9bc7638f295763b77465c5ebebbd3442}{pp}} = \mbox{\hyperlink{g__part__if_8m_a294f18324585ff37641fb8aa1c9ccd82}{cp}}-\/>\mbox{\hyperlink{structg__consumer_a6435d5aec0376e995dce3131fd3beb52}{provider}};}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00687}00687         \mbox{\hyperlink{geom_8h_a4628d4de49ba84e7a6126cc30d23b83a}{g\_topology\_unlock}}();}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00688}00688         \textcolor{comment}{/* round up to the nearest sector */}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00689}00689         size = md-\/>\mbox{\hyperlink{structg__llvm__metadata_a0d5fac560c84d7ff4630521a18e7fdf5}{md\_relsize}} +}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00690}00690             (\mbox{\hyperlink{g__part__if_8m_a9bc7638f295763b77465c5ebebbd3442}{pp}}-\/>\mbox{\hyperlink{structg__provider_aea3cd43d41461790b8d0afcd8c49a355}{sectorsize}} -\/ md-\/>\mbox{\hyperlink{structg__llvm__metadata_a0d5fac560c84d7ff4630521a18e7fdf5}{md\_relsize}} \% \mbox{\hyperlink{g__part__if_8m_a9bc7638f295763b77465c5ebebbd3442}{pp}}-\/>\mbox{\hyperlink{structg__provider_aea3cd43d41461790b8d0afcd8c49a355}{sectorsize}});}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00691}00691         \mbox{\hyperlink{g__part__if_8m_ac14417684334d01b4e1e807a19d92816}{buf}} = \mbox{\hyperlink{geom_8h_a550c2071f79908eea3d1ccbf821c4e4f}{g\_read\_data}}(\mbox{\hyperlink{g__part__if_8m_a294f18324585ff37641fb8aa1c9ccd82}{cp}}, ll-\/>\mbox{\hyperlink{structg__llvm__label_a26d4227b553cad96074abef6b48e59c5}{ll\_md\_offset}} + md-\/>\mbox{\hyperlink{structg__llvm__metadata_a6590d5eceed03a9012861c1107573cee}{md\_reloffset}}, size, \&\mbox{\hyperlink{structg__provider_acacf1ee18cb6edbcfedc185846696e7f}{error}});}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00692}00692         \mbox{\hyperlink{geom_8h_a232419d2cfa06ff3f4ff7551041aed31}{g\_topology\_lock}}();}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00693}00693         \mbox{\hyperlink{geom_8h_a27b7c72cc3bc5a4d07ce5976e1aa1b58}{g\_access}}(\mbox{\hyperlink{g__part__if_8m_a294f18324585ff37641fb8aa1c9ccd82}{cp}}, -\/1, 0, 0);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00694}00694         \textcolor{keywordflow}{if} (\mbox{\hyperlink{g__part__if_8m_ac14417684334d01b4e1e807a19d92816}{buf}} == NULL) \{}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00695}00695                 \mbox{\hyperlink{g__linux__lvm_8h_abe555a5a23bcc665cf30724891fd5ee2}{G\_LLVM\_DEBUG}}(0, \textcolor{stringliteral}{"{}Cannot read LVM2 config from \%s (error=\%d)"{}},}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00696}00696                     \mbox{\hyperlink{g__part__if_8m_a9bc7638f295763b77465c5ebebbd3442}{pp}}-\/>\mbox{\hyperlink{structg__provider_a2bffb416ee58cf4df7839c6fd5ec004a}{name}}, \mbox{\hyperlink{structg__provider_acacf1ee18cb6edbcfedc185846696e7f}{error}});}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00697}00697                 \textcolor{keywordflow}{return} (\mbox{\hyperlink{structg__provider_acacf1ee18cb6edbcfedc185846696e7f}{error}});}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00698}00698         \}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00699}00699         \mbox{\hyperlink{g__part__if_8m_ac14417684334d01b4e1e807a19d92816}{buf}}[md-\/>\mbox{\hyperlink{structg__llvm__metadata_a0d5fac560c84d7ff4630521a18e7fdf5}{md\_relsize}}] = \textcolor{charliteral}{'\(\backslash\)0'};}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00700}00700         \mbox{\hyperlink{g__linux__lvm_8h_abe555a5a23bcc665cf30724891fd5ee2}{G\_LLVM\_DEBUG}}(10, \textcolor{stringliteral}{"{}LVM config:\(\backslash\)n\%s\(\backslash\)n"{}}, \mbox{\hyperlink{g__part__if_8m_ac14417684334d01b4e1e807a19d92816}{buf}});}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00701}00701         \mbox{\hyperlink{structg__provider_acacf1ee18cb6edbcfedc185846696e7f}{error}} = \mbox{\hyperlink{g__linux__lvm_8c_aabed835ad1381f8eb6efb707efd5ae8d}{llvm\_textconf\_decode}}(\mbox{\hyperlink{g__part__if_8m_ac14417684334d01b4e1e807a19d92816}{buf}}, md-\/>\mbox{\hyperlink{structg__llvm__metadata_a0d5fac560c84d7ff4630521a18e7fdf5}{md\_relsize}}, md);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00702}00702         \mbox{\hyperlink{geom_8h_ad9924deb20de7b40cb6cf06e5ae28855}{g\_free}}(\mbox{\hyperlink{g__part__if_8m_ac14417684334d01b4e1e807a19d92816}{buf}});}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00703}00703 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00704}00704         \textcolor{keywordflow}{return} (\mbox{\hyperlink{structg__provider_acacf1ee18cb6edbcfedc185846696e7f}{error}});}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00705}00705 \}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00706}00706 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00707}00707 \textcolor{keyword}{static} \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00708}\mbox{\hyperlink{g__linux__lvm_8c_a99933b6e96c9bad89f54b40e6fd94674}{00708}} \mbox{\hyperlink{g__linux__lvm_8c_a99933b6e96c9bad89f54b40e6fd94674}{llvm\_label\_decode}}(\textcolor{keyword}{const} u\_char *\mbox{\hyperlink{g__part__if_8m_a735984d41155bc1032e09bece8f8d66d}{data}}, \textcolor{keyword}{struct} \mbox{\hyperlink{structg__llvm__label}{g\_llvm\_label}} *ll, \textcolor{keywordtype}{int} sector)}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00709}00709 \{}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00710}00710         uint64\_t off;}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00711}00711         \textcolor{keywordtype}{char} *uuid;}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00712}00712 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00713}00713         \textcolor{comment}{/* Magic string */}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00714}00714         \textcolor{keywordflow}{if} (bcmp(\textcolor{stringliteral}{"{}LABELONE"{}}, \mbox{\hyperlink{g__part__if_8m_a735984d41155bc1032e09bece8f8d66d}{data}} , 8) != 0)}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00715}00715                 \textcolor{keywordflow}{return} (EINVAL);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00716}00716 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00717}00717         \textcolor{comment}{/* We only support LVM2 text format */}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00718}00718         \textcolor{keywordflow}{if} (bcmp(\textcolor{stringliteral}{"{}LVM2 001"{}}, \mbox{\hyperlink{g__part__if_8m_a735984d41155bc1032e09bece8f8d66d}{data}} + 24, 8) != 0) \{}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00719}00719                 \mbox{\hyperlink{g__linux__lvm_8h_abe555a5a23bcc665cf30724891fd5ee2}{G\_LLVM\_DEBUG}}(0, \textcolor{stringliteral}{"{}Unsupported LVM format"{}});}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00720}00720                 \textcolor{keywordflow}{return} (EINVAL);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00721}00721         \}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00722}00722 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00723}00723         ll-\/>\mbox{\hyperlink{structg__llvm__label_a33560138e38c79dc7cf8aa5fbd9fdd08}{ll\_sector}} = le64dec(\mbox{\hyperlink{g__part__if_8m_a735984d41155bc1032e09bece8f8d66d}{data}} + 8);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00724}00724         ll-\/>\mbox{\hyperlink{structg__llvm__label_a782c9190b8ea38f6df7d018d7b0e984a}{ll\_crc}} = le32dec(\mbox{\hyperlink{g__part__if_8m_a735984d41155bc1032e09bece8f8d66d}{data}} + 16);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00725}00725         ll-\/>\mbox{\hyperlink{structg__llvm__label_a349ce09289f2d61540ba707541f64452}{ll\_offset}} = le32dec(\mbox{\hyperlink{g__part__if_8m_a735984d41155bc1032e09bece8f8d66d}{data}} + 20);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00726}00726 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00727}00727         \textcolor{keywordflow}{if} (ll-\/>\mbox{\hyperlink{structg__llvm__label_a33560138e38c79dc7cf8aa5fbd9fdd08}{ll\_sector}} != sector) \{}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00728}00728                 \mbox{\hyperlink{g__linux__lvm_8h_abe555a5a23bcc665cf30724891fd5ee2}{G\_LLVM\_DEBUG}}(0, \textcolor{stringliteral}{"{}Expected sector \%ju, found at \%d"{}},}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00729}00729                     ll-\/>\mbox{\hyperlink{structg__llvm__label_a33560138e38c79dc7cf8aa5fbd9fdd08}{ll\_sector}}, sector);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00730}00730                 \textcolor{keywordflow}{return} (EINVAL);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00731}00731         \}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00732}00732 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00733}00733         off = ll-\/>\mbox{\hyperlink{structg__llvm__label_a349ce09289f2d61540ba707541f64452}{ll\_offset}};}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00734}00734         \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00735}00735 \textcolor{comment}{         * convert the binary uuid to string format, the format is}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00736}00736 \textcolor{comment}{         * xxxxxx-\/xxxx-\/xxxx-\/xxxx-\/xxxx-\/xxxx-\/xxxxxx (6-\/4-\/4-\/4-\/4-\/4-\/6)}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00737}00737 \textcolor{comment}{         */}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00738}00738         uuid = ll-\/>\mbox{\hyperlink{structg__llvm__label_a4b6a2d6a08d3d5b9700da1c79b2cc291}{ll\_uuid}};}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00739}00739         bcopy(\mbox{\hyperlink{g__part__if_8m_a735984d41155bc1032e09bece8f8d66d}{data}} + off, uuid, 6);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00740}00740         off += 6;}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00741}00741         uuid += 6;}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00742}00742         *uuid++ = \textcolor{charliteral}{'-\/'};}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00743}00743         \textcolor{keywordflow}{for} (\textcolor{keywordtype}{int} i = 0; i < 5; i++) \{}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00744}00744                 bcopy(\mbox{\hyperlink{g__part__if_8m_a735984d41155bc1032e09bece8f8d66d}{data}} + off, uuid, 4);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00745}00745                 off += 4;}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00746}00746                 uuid += 4;}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00747}00747                 *uuid++ = \textcolor{charliteral}{'-\/'};}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00748}00748         \}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00749}00749         bcopy(\mbox{\hyperlink{g__part__if_8m_a735984d41155bc1032e09bece8f8d66d}{data}} + off, uuid, 6);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00750}00750         off += 6;}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00751}00751         uuid += 6;}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00752}00752         *uuid++ = \textcolor{charliteral}{'\(\backslash\)0'};}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00753}00753 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00754}00754         ll-\/>\mbox{\hyperlink{structg__llvm__label_a0c121b38cd8e5a402ee1ef2fd684e18f}{ll\_size}} = le64dec(\mbox{\hyperlink{g__part__if_8m_a735984d41155bc1032e09bece8f8d66d}{data}} + off);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00755}00755         off += 8;}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00756}00756         ll-\/>\mbox{\hyperlink{structg__llvm__label_a5e1d5e8b2737fef2b9c546dd7f60c813}{ll\_pestart}} = le64dec(\mbox{\hyperlink{g__part__if_8m_a735984d41155bc1032e09bece8f8d66d}{data}} + off);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00757}00757         off += 16;}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00758}00758 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00759}00759         \textcolor{comment}{/* Only one data section is supported */}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00760}00760         \textcolor{keywordflow}{if} (le64dec(\mbox{\hyperlink{g__part__if_8m_a735984d41155bc1032e09bece8f8d66d}{data}} + off) != 0) \{}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00761}00761                 \mbox{\hyperlink{g__linux__lvm_8h_abe555a5a23bcc665cf30724891fd5ee2}{G\_LLVM\_DEBUG}}(0, \textcolor{stringliteral}{"{}Only one data section supported"{}});}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00762}00762                 \textcolor{keywordflow}{return} (EINVAL);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00763}00763         \}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00764}00764 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00765}00765         off += 16;}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00766}00766         ll-\/>\mbox{\hyperlink{structg__llvm__label_a26d4227b553cad96074abef6b48e59c5}{ll\_md\_offset}} = le64dec(\mbox{\hyperlink{g__part__if_8m_a735984d41155bc1032e09bece8f8d66d}{data}} + off);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00767}00767         off += 8;}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00768}00768         ll-\/>\mbox{\hyperlink{structg__llvm__label_a3c165359b4497d66b6bea683c30532fa}{ll\_md\_size}} = le64dec(\mbox{\hyperlink{g__part__if_8m_a735984d41155bc1032e09bece8f8d66d}{data}} + off);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00769}00769         off += 8;}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00770}00770 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00771}00771         \mbox{\hyperlink{g__linux__lvm_8h_abe555a5a23bcc665cf30724891fd5ee2}{G\_LLVM\_DEBUG}}(1, \textcolor{stringliteral}{"{}LVM metadata: offset=\%ju, size=\%ju"{}}, ll-\/>\mbox{\hyperlink{structg__llvm__label_a26d4227b553cad96074abef6b48e59c5}{ll\_md\_offset}},}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00772}00772             ll-\/>\mbox{\hyperlink{structg__llvm__label_a3c165359b4497d66b6bea683c30532fa}{ll\_md\_size}});}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00773}00773 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00774}00774         \textcolor{comment}{/* Only one data section is supported */}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00775}00775         \textcolor{keywordflow}{if} (le64dec(\mbox{\hyperlink{g__part__if_8m_a735984d41155bc1032e09bece8f8d66d}{data}} + off) != 0) \{}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00776}00776                 \mbox{\hyperlink{g__linux__lvm_8h_abe555a5a23bcc665cf30724891fd5ee2}{G\_LLVM\_DEBUG}}(0, \textcolor{stringliteral}{"{}Only one metadata section supported"{}});}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00777}00777                 \textcolor{keywordflow}{return} (EINVAL);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00778}00778         \}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00779}00779 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00780}00780         \mbox{\hyperlink{g__linux__lvm_8h_abe555a5a23bcc665cf30724891fd5ee2}{G\_LLVM\_DEBUG}}(2, \textcolor{stringliteral}{"{}label uuid=\%s"{}}, ll-\/>\mbox{\hyperlink{structg__llvm__label_a4b6a2d6a08d3d5b9700da1c79b2cc291}{ll\_uuid}});}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00781}00781         \mbox{\hyperlink{g__linux__lvm_8h_abe555a5a23bcc665cf30724891fd5ee2}{G\_LLVM\_DEBUG}}(2, \textcolor{stringliteral}{"{}sector=\%ju, crc=\%u, offset=\%u, size=\%ju, pestart=\%ju"{}},}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00782}00782             ll-\/>\mbox{\hyperlink{structg__llvm__label_a33560138e38c79dc7cf8aa5fbd9fdd08}{ll\_sector}}, ll-\/>\mbox{\hyperlink{structg__llvm__label_a782c9190b8ea38f6df7d018d7b0e984a}{ll\_crc}}, ll-\/>\mbox{\hyperlink{structg__llvm__label_a349ce09289f2d61540ba707541f64452}{ll\_offset}}, ll-\/>\mbox{\hyperlink{structg__llvm__label_a0c121b38cd8e5a402ee1ef2fd684e18f}{ll\_size}},}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00783}00783             ll-\/>\mbox{\hyperlink{structg__llvm__label_a5e1d5e8b2737fef2b9c546dd7f60c813}{ll\_pestart}});}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00784}00784 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00785}00785         \textcolor{keywordflow}{return} (0);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00786}00786 \}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00787}00787 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00788}00788 \textcolor{keyword}{static} \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00789}\mbox{\hyperlink{g__linux__lvm_8c_a0acd0279e1f1024d3acac27dbe639680}{00789}} \mbox{\hyperlink{g__linux__lvm_8c_a0acd0279e1f1024d3acac27dbe639680}{llvm\_md\_decode}}(\textcolor{keyword}{const} u\_char *\mbox{\hyperlink{g__part__if_8m_a735984d41155bc1032e09bece8f8d66d}{data}}, \textcolor{keyword}{struct} \mbox{\hyperlink{structg__llvm__metadata}{g\_llvm\_metadata}} *md,}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00790}00790     \textcolor{keyword}{struct} \mbox{\hyperlink{structg__llvm__label}{g\_llvm\_label}} *ll)}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00791}00791 \{}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00792}00792         uint64\_t off;}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00793}00793         \textcolor{keywordtype}{char} magic[16];}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00794}00794 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00795}00795         off = 0;}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00796}00796         md-\/>\mbox{\hyperlink{structg__llvm__metadata_a5c22a48febb21cd8ee663491d5df2533}{md\_csum}} = le32dec(\mbox{\hyperlink{g__part__if_8m_a735984d41155bc1032e09bece8f8d66d}{data}} + off);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00797}00797         off += 4;}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00798}00798         bcopy(\mbox{\hyperlink{g__part__if_8m_a735984d41155bc1032e09bece8f8d66d}{data}} + off, magic, 16);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00799}00799         off += 16;}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00800}00800         md-\/>\mbox{\hyperlink{structg__llvm__metadata_a5718ef0a673b2a10367b810d6cf11497}{md\_version}} = le32dec(\mbox{\hyperlink{g__part__if_8m_a735984d41155bc1032e09bece8f8d66d}{data}} + off);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00801}00801         off += 4;}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00802}00802         md-\/>\mbox{\hyperlink{structg__llvm__metadata_a5caa0a54e0c1ed0013ef11f2b7b129f1}{md\_start}} = le64dec(\mbox{\hyperlink{g__part__if_8m_a735984d41155bc1032e09bece8f8d66d}{data}} + off);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00803}00803         off += 8;}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00804}00804         md-\/>\mbox{\hyperlink{structg__llvm__metadata_aa24594fe95e5f15e2e5aa371ca25c6c3}{md\_size}} = le64dec(\mbox{\hyperlink{g__part__if_8m_a735984d41155bc1032e09bece8f8d66d}{data}} + off);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00805}00805         off += 8;}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00806}00806 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00807}00807         \textcolor{keywordflow}{if} (bcmp(\mbox{\hyperlink{g__linux__lvm_8h_ac629df8d1e98a9d9fb7ff8625f48cf12}{G\_LLVM\_MAGIC}}, magic, 16) != 0) \{}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00808}00808                 \mbox{\hyperlink{g__linux__lvm_8h_abe555a5a23bcc665cf30724891fd5ee2}{G\_LLVM\_DEBUG}}(0, \textcolor{stringliteral}{"{}Incorrect md magic number"{}});}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00809}00809                 \textcolor{keywordflow}{return} (EINVAL);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00810}00810         \}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00811}00811         \textcolor{keywordflow}{if} (md-\/>\mbox{\hyperlink{structg__llvm__metadata_a5718ef0a673b2a10367b810d6cf11497}{md\_version}} != 1) \{}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00812}00812                 \mbox{\hyperlink{g__linux__lvm_8h_abe555a5a23bcc665cf30724891fd5ee2}{G\_LLVM\_DEBUG}}(0, \textcolor{stringliteral}{"{}Incorrect md version number (\%u)"{}},}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00813}00813                     md-\/>\mbox{\hyperlink{structg__llvm__metadata_a5718ef0a673b2a10367b810d6cf11497}{md\_version}});}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00814}00814                 \textcolor{keywordflow}{return} (EINVAL);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00815}00815         \}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00816}00816         \textcolor{keywordflow}{if} (md-\/>\mbox{\hyperlink{structg__llvm__metadata_a5caa0a54e0c1ed0013ef11f2b7b129f1}{md\_start}} != ll-\/>\mbox{\hyperlink{structg__llvm__label_a26d4227b553cad96074abef6b48e59c5}{ll\_md\_offset}}) \{}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00817}00817                 \mbox{\hyperlink{g__linux__lvm_8h_abe555a5a23bcc665cf30724891fd5ee2}{G\_LLVM\_DEBUG}}(0, \textcolor{stringliteral}{"{}Incorrect md offset (\%ju)"{}}, md-\/>\mbox{\hyperlink{structg__llvm__metadata_a5caa0a54e0c1ed0013ef11f2b7b129f1}{md\_start}});}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00818}00818                 \textcolor{keywordflow}{return} (EINVAL);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00819}00819         \}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00820}00820 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00821}00821         \textcolor{comment}{/* Aparently only one is ever returned */}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00822}00822         md-\/>\mbox{\hyperlink{structg__llvm__metadata_a6590d5eceed03a9012861c1107573cee}{md\_reloffset}} = le64dec(\mbox{\hyperlink{g__part__if_8m_a735984d41155bc1032e09bece8f8d66d}{data}} + off);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00823}00823         off += 8;}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00824}00824         md-\/>\mbox{\hyperlink{structg__llvm__metadata_a0d5fac560c84d7ff4630521a18e7fdf5}{md\_relsize}} = le64dec(\mbox{\hyperlink{g__part__if_8m_a735984d41155bc1032e09bece8f8d66d}{data}} + off);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00825}00825         off += 16;      \textcolor{comment}{/* XXX skipped checksum */}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00826}00826 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00827}00827         \textcolor{keywordflow}{if} (le64dec(\mbox{\hyperlink{g__part__if_8m_a735984d41155bc1032e09bece8f8d66d}{data}} + off) != 0) \{}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00828}00828                 \mbox{\hyperlink{g__linux__lvm_8h_abe555a5a23bcc665cf30724891fd5ee2}{G\_LLVM\_DEBUG}}(0, \textcolor{stringliteral}{"{}Only one reloc supported"{}});}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00829}00829                 \textcolor{keywordflow}{return} (EINVAL);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00830}00830         \}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00831}00831 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00832}00832         \mbox{\hyperlink{g__linux__lvm_8h_abe555a5a23bcc665cf30724891fd5ee2}{G\_LLVM\_DEBUG}}(3, \textcolor{stringliteral}{"{}reloc: offset=\%ju, size=\%ju"{}},}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00833}00833             md-\/>\mbox{\hyperlink{structg__llvm__metadata_a6590d5eceed03a9012861c1107573cee}{md\_reloffset}}, md-\/>\mbox{\hyperlink{structg__llvm__metadata_a0d5fac560c84d7ff4630521a18e7fdf5}{md\_relsize}});}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00834}00834         \mbox{\hyperlink{g__linux__lvm_8h_abe555a5a23bcc665cf30724891fd5ee2}{G\_LLVM\_DEBUG}}(3, \textcolor{stringliteral}{"{}md: version=\%u, start=\%ju, size=\%ju"{}},}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00835}00835             md-\/>\mbox{\hyperlink{structg__llvm__metadata_a5718ef0a673b2a10367b810d6cf11497}{md\_version}}, md-\/>\mbox{\hyperlink{structg__llvm__metadata_a5caa0a54e0c1ed0013ef11f2b7b129f1}{md\_start}}, md-\/>\mbox{\hyperlink{structg__llvm__metadata_aa24594fe95e5f15e2e5aa371ca25c6c3}{md\_size}});}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00836}00836 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00837}00837         \textcolor{keywordflow}{return} (0);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00838}00838 \}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00839}00839 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00840}\mbox{\hyperlink{g__linux__lvm_8c_a0ee971a4d0770879cae7b89e15309caa}{00840}} \textcolor{preprocessor}{\#define GRAB\_INT(key, tok1, tok2, v)                                    \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00841}00841 \textcolor{preprocessor}{        if (tok1 \&\& tok2 \&\& strncmp(tok1, key, sizeof(key)) == 0) \{     \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00842}00842 \textcolor{preprocessor}{                v = strtol(tok2, \&tok1, 10);                            \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00843}00843 \textcolor{preprocessor}{                if (tok1 == tok2)                                       \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00844}00844 \textcolor{preprocessor}{                        }\textcolor{comment}{/* strtol did not eat any of the buffer */}\textcolor{preprocessor}{      \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00845}00845 \textcolor{preprocessor}{                        goto bad;                                       \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00846}00846 \textcolor{preprocessor}{                continue;                                               \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00847}00847 \textcolor{preprocessor}{        \}}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00848}00848 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00849}\mbox{\hyperlink{g__linux__lvm_8c_a6781d20647b721c7fd43c20a48709970}{00849}} \textcolor{preprocessor}{\#define GRAB\_STR(key, tok1, tok2, v, len)                               \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00850}00850 \textcolor{preprocessor}{        if (tok1 \&\& tok2 \&\& strncmp(tok1, key, sizeof(key)) == 0) \{     \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00851}00851 \textcolor{preprocessor}{                strsep(\&tok2, "{}\(\backslash\)"{}"{}});                                    \(\backslash\)}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00852}00852                 if (tok2 == NULL)                                       \(\backslash\)}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00853}00853                         continue;                                       \(\backslash\)}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00854}00854                 tok1 = strsep(\&tok2, "{}\(\backslash\)"{}"{});                             \(\backslash\)}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00855}00855                 if (tok2 == NULL)                                       \(\backslash\)}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00856}00856                         continue;                                       \(\backslash\)}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00857}00857                 strncpy(v, tok1, len);                                  \(\backslash\)}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00858}00858                 continue;                                               \(\backslash\)}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00859}00859         \}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00860}00860 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00861}\mbox{\hyperlink{g__linux__lvm_8c_a2d1f91d9ed6b2bf2a419daa726bdeaaf}{00861}} \textcolor{preprocessor}{\#define SPLIT(key, value, str)                                          \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00862}00862 \textcolor{preprocessor}{        key = strsep(\&value, str);                                      \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00863}00863 \textcolor{preprocessor}{        }\textcolor{comment}{/* strip trailing whitespace on the key */}\textcolor{preprocessor}{                      \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00864}00864 \textcolor{preprocessor}{        for (char *t = key; *t != '\(\backslash\)0'; t++)                            \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00865}00865 \textcolor{preprocessor}{                if (isspace(*t)) \{                                      \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00866}00866 \textcolor{preprocessor}{                        *t = '\(\backslash\)0';                                      \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00867}00867 \textcolor{preprocessor}{                        break;                                          \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00868}00868 \textcolor{preprocessor}{                \}}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00869}00869 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00870}00870 \textcolor{keyword}{static} \textcolor{keywordtype}{size\_t} }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00871}\mbox{\hyperlink{g__linux__lvm_8c_ad805febf1752f30d7d9b4ec62f6d5d5a}{00871}} \mbox{\hyperlink{g__linux__lvm_8c_ad805febf1752f30d7d9b4ec62f6d5d5a}{llvm\_grab\_name}}(\textcolor{keywordtype}{char} *\mbox{\hyperlink{g__part__if_8m_aff5d3acc33944ecb11914d04ef06bb54}{name}}, \textcolor{keyword}{const} \textcolor{keywordtype}{char} *tok)}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00872}00872 \{}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00873}00873         \textcolor{keywordtype}{size\_t} len;}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00874}00874 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00875}00875         len = 0;}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00876}00876         \textcolor{keywordflow}{if} (tok == NULL)}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00877}00877                 \textcolor{keywordflow}{return} (0);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00878}00878         \textcolor{keywordflow}{if} (tok[0] == \textcolor{charliteral}{'-\/'})}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00879}00879                 \textcolor{keywordflow}{return} (0);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00880}00880         \textcolor{keywordflow}{if} (strcmp(tok, \textcolor{stringliteral}{"{}."{}}) == 0 || strcmp(tok, \textcolor{stringliteral}{"{}.."{}}) == 0)}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00881}00881                 \textcolor{keywordflow}{return} (0);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00882}00882         \textcolor{keywordflow}{while} (tok[len] \&\& (isalpha(tok[len]) || isdigit(tok[len]) ||}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00883}00883             tok[len] == \textcolor{charliteral}{'.'} || tok[len] == \textcolor{charliteral}{'\_'} || tok[len] == \textcolor{charliteral}{'-\/'} ||}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00884}00884             tok[len] == \textcolor{charliteral}{'+'}) \&\& len < \mbox{\hyperlink{g__linux__lvm_8h_a18e501a16fead9d9ee6089a9b8a31cf1}{G\_LLVM\_NAMELEN}} -\/ 1)}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00885}00885                 len++;}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00886}00886         bcopy(tok, \mbox{\hyperlink{g__part__if_8m_aff5d3acc33944ecb11914d04ef06bb54}{name}}, len);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00887}00887         \mbox{\hyperlink{g__part__if_8m_aff5d3acc33944ecb11914d04ef06bb54}{name}}[len] = \textcolor{charliteral}{'\(\backslash\)0'};}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00888}00888         \textcolor{keywordflow}{return} (len);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00889}00889 \}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00890}00890 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00891}00891 \textcolor{keyword}{static} \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00892}\mbox{\hyperlink{g__linux__lvm_8c_aabed835ad1381f8eb6efb707efd5ae8d}{00892}} \mbox{\hyperlink{g__linux__lvm_8c_aabed835ad1381f8eb6efb707efd5ae8d}{llvm\_textconf\_decode}}(u\_char *\mbox{\hyperlink{g__part__if_8m_a735984d41155bc1032e09bece8f8d66d}{data}}, \textcolor{keywordtype}{int} buflen, \textcolor{keyword}{struct} \mbox{\hyperlink{structg__llvm__metadata}{g\_llvm\_metadata}} *md)}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00893}00893 \{}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00894}00894         \textcolor{keyword}{struct }\mbox{\hyperlink{structg__llvm__vg}{g\_llvm\_vg}}       *vg;}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00895}00895         \textcolor{keywordtype}{char} *\mbox{\hyperlink{g__part__if_8m_ac14417684334d01b4e1e807a19d92816}{buf}} = \mbox{\hyperlink{g__part__if_8m_a735984d41155bc1032e09bece8f8d66d}{data}};}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00896}00896         \textcolor{keywordtype}{char} *tok, *v;}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00897}00897         \textcolor{keywordtype}{char} \mbox{\hyperlink{g__part__if_8m_aff5d3acc33944ecb11914d04ef06bb54}{name}}[\mbox{\hyperlink{g__linux__lvm_8h_a18e501a16fead9d9ee6089a9b8a31cf1}{G\_LLVM\_NAMELEN}}];}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00898}00898         \textcolor{keywordtype}{char} uuid[\mbox{\hyperlink{g__linux__lvm_8h_acafc40db500bc1df5760170dcac0ab4a}{G\_LLVM\_UUIDLEN}}];}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00899}00899         \textcolor{keywordtype}{size\_t} len;}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00900}00900 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00901}00901         \textcolor{keywordflow}{if} (\mbox{\hyperlink{g__part__if_8m_ac14417684334d01b4e1e807a19d92816}{buf}} == NULL || *\mbox{\hyperlink{g__part__if_8m_ac14417684334d01b4e1e807a19d92816}{buf}} == \textcolor{charliteral}{'\(\backslash\)0'})}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00902}00902                 \textcolor{keywordflow}{return} (EINVAL);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00903}00903 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00904}00904         tok = strsep(\&\mbox{\hyperlink{g__part__if_8m_ac14417684334d01b4e1e807a19d92816}{buf}}, \textcolor{stringliteral}{"{}\(\backslash\)n"{}});}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00905}00905         \textcolor{keywordflow}{if} (tok == NULL)}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00906}00906                 \textcolor{keywordflow}{return} (EINVAL);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00907}00907         len = \mbox{\hyperlink{g__linux__lvm_8c_ad805febf1752f30d7d9b4ec62f6d5d5a}{llvm\_grab\_name}}(\mbox{\hyperlink{g__part__if_8m_aff5d3acc33944ecb11914d04ef06bb54}{name}}, tok);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00908}00908         \textcolor{keywordflow}{if} (len == 0)}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00909}00909                 \textcolor{keywordflow}{return} (EINVAL);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00910}00910 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00911}00911         \textcolor{comment}{/* check too see if the vg has already been loaded off another disk */}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00912}00912         LIST\_FOREACH(vg, \&vg\_list, vg\_next) \{}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00913}00913                 \textcolor{keywordflow}{if} (strcmp(vg-\/>\mbox{\hyperlink{structg__llvm__vg_aaf9fb264c1bba09456e6f58f1c12bf2f}{vg\_name}}, \mbox{\hyperlink{g__part__if_8m_aff5d3acc33944ecb11914d04ef06bb54}{name}}) == 0) \{}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00914}00914                         uuid[0] = \textcolor{charliteral}{'\(\backslash\)0'};}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00915}00915                         \textcolor{comment}{/* grab the volume group uuid */}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00916}00916                         \textcolor{keywordflow}{while} ((tok = strsep(\&\mbox{\hyperlink{g__part__if_8m_ac14417684334d01b4e1e807a19d92816}{buf}}, \textcolor{stringliteral}{"{}\(\backslash\)n"{}})) != NULL) \{}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00917}00917                                 \textcolor{keywordflow}{if} (strstr(tok, \textcolor{stringliteral}{"{}\{"{}}))}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00918}00918                                         \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00919}00919                                 \textcolor{keywordflow}{if} (strstr(tok, \textcolor{stringliteral}{"{}="{}})) \{}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00920}00920                                         \mbox{\hyperlink{g__linux__lvm_8c_a2d1f91d9ed6b2bf2a419daa726bdeaaf}{SPLIT}}(v, tok, \textcolor{stringliteral}{"{}="{}});}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00921}00921                                         \mbox{\hyperlink{g__linux__lvm_8c_a6781d20647b721c7fd43c20a48709970}{GRAB\_STR}}(\textcolor{stringliteral}{"{}id"{}}, v, tok, uuid,}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00922}00922                                             \textcolor{keyword}{sizeof}(uuid));}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00923}00923                                 \}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00924}00924                         \}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00925}00925                         \textcolor{keywordflow}{if} (strcmp(vg-\/>\mbox{\hyperlink{structg__llvm__vg_a311aa23c078cd4dd0834b4a92021d2fb}{vg\_uuid}}, uuid) == 0) \{}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00926}00926                                 \textcolor{comment}{/* existing vg */}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00927}00927                                 md-\/>\mbox{\hyperlink{structg__llvm__metadata_ab9f5dab1ef15703bad42e5546dd5d496}{md\_vg}} = vg;}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00928}00928                                 \textcolor{keywordflow}{return} (0);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00929}00929                         \}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00930}00930                         \textcolor{comment}{/* XXX different volume group with name clash! */}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00931}00931                         \mbox{\hyperlink{g__linux__lvm_8h_abe555a5a23bcc665cf30724891fd5ee2}{G\_LLVM\_DEBUG}}(0,}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00932}00932                             \textcolor{stringliteral}{"{}\%s already exists, volume group not loaded"{}}, \mbox{\hyperlink{g__part__if_8m_aff5d3acc33944ecb11914d04ef06bb54}{name}});}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00933}00933                         \textcolor{keywordflow}{return} (EINVAL);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00934}00934                 \}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00935}00935         \}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00936}00936 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00937}00937         vg = malloc(\textcolor{keyword}{sizeof}(*vg), M\_GLLVM, M\_NOWAIT|M\_ZERO);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00938}00938         \textcolor{keywordflow}{if} (vg == NULL)}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00939}00939                 \textcolor{keywordflow}{return} (ENOMEM);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00940}00940 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00941}00941         strncpy(vg-\/>\mbox{\hyperlink{structg__llvm__vg_aaf9fb264c1bba09456e6f58f1c12bf2f}{vg\_name}}, \mbox{\hyperlink{g__part__if_8m_aff5d3acc33944ecb11914d04ef06bb54}{name}}, \textcolor{keyword}{sizeof}(vg-\/>\mbox{\hyperlink{structg__llvm__vg_aaf9fb264c1bba09456e6f58f1c12bf2f}{vg\_name}}));}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00942}00942         LIST\_INIT(\&vg-\/>vg\_pvs);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00943}00943         LIST\_INIT(\&vg-\/>vg\_lvs);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00944}00944 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00945}00945 \textcolor{preprocessor}{\#define VOL\_FOREACH(func, tok, buf, p)                                  \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00946}00946 \textcolor{preprocessor}{        while ((tok = strsep(buf, "{}\(\backslash\)n"{}})) != NULL) \{                     \(\backslash\)}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00947}00947                 if (strstr(tok, "{}\{"{})) \{                                 \(\backslash\)}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00948}00948                         func(buf, tok, p);                              \(\backslash\)}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00949}00949                         continue;                                       \(\backslash\)}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00950}00950                 \}                                                       \(\backslash\)}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00951}00951                 if (strstr(tok, "{}\}"{}))                                   \(\backslash\)}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00952}00952                         break;                                          \(\backslash\)}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00953}00953         \}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00954}00954 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00955}00955         \textcolor{keywordflow}{while} ((tok = strsep(\&\mbox{\hyperlink{g__part__if_8m_ac14417684334d01b4e1e807a19d92816}{buf}}, \textcolor{stringliteral}{"{}\(\backslash\)n"{}})) != NULL) \{}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00956}00956                 \textcolor{keywordflow}{if} (strcmp(tok, \textcolor{stringliteral}{"{}physical\_volumes \{"{}}) == 0) \{}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00957}00957                         \mbox{\hyperlink{g__linux__lvm_8c_a0c31995bb22d9fb0c7e32f554ac9a3c1}{VOL\_FOREACH}}(\mbox{\hyperlink{g__linux__lvm_8c_a4869baeaa60fe163bad304e0bdf7d1d5}{llvm\_textconf\_decode\_pv}}, tok, \&\mbox{\hyperlink{g__part__if_8m_ac14417684334d01b4e1e807a19d92816}{buf}}, vg);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00958}00958                         \textcolor{keywordflow}{continue};}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00959}00959                 \}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00960}00960                 \textcolor{keywordflow}{if} (strcmp(tok, \textcolor{stringliteral}{"{}logical\_volumes \{"{}}) == 0) \{}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00961}00961                         \mbox{\hyperlink{g__linux__lvm_8c_a0c31995bb22d9fb0c7e32f554ac9a3c1}{VOL\_FOREACH}}(\mbox{\hyperlink{g__linux__lvm_8c_ae5febcf7c94abe976671ead3a2922f65}{llvm\_textconf\_decode\_lv}}, tok, \&\mbox{\hyperlink{g__part__if_8m_ac14417684334d01b4e1e807a19d92816}{buf}}, vg);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00962}00962                         \textcolor{keywordflow}{continue};}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00963}00963                 \}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00964}00964                 \textcolor{keywordflow}{if} (strstr(tok, \textcolor{stringliteral}{"{}\{"{}})) \{}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00965}00965                         \mbox{\hyperlink{g__linux__lvm_8h_abe555a5a23bcc665cf30724891fd5ee2}{G\_LLVM\_DEBUG}}(2, \textcolor{stringliteral}{"{}unknown section \%s"{}}, tok);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00966}00966                         \textcolor{keywordflow}{continue};}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00967}00967                 \}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00968}00968 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00969}00969                 \textcolor{comment}{/* parse 'key = value' lines */}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00970}00970                 \textcolor{keywordflow}{if} (strstr(tok, \textcolor{stringliteral}{"{}="{}})) \{}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00971}00971                         \mbox{\hyperlink{g__linux__lvm_8c_a2d1f91d9ed6b2bf2a419daa726bdeaaf}{SPLIT}}(v, tok, \textcolor{stringliteral}{"{}="{}});}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00972}00972                         \mbox{\hyperlink{g__linux__lvm_8c_a6781d20647b721c7fd43c20a48709970}{GRAB\_STR}}(\textcolor{stringliteral}{"{}id"{}}, v, tok, vg-\/>\mbox{\hyperlink{structg__llvm__vg_a311aa23c078cd4dd0834b4a92021d2fb}{vg\_uuid}}, \textcolor{keyword}{sizeof}(vg-\/>\mbox{\hyperlink{structg__llvm__vg_a311aa23c078cd4dd0834b4a92021d2fb}{vg\_uuid}}));}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00973}00973                         \mbox{\hyperlink{g__linux__lvm_8c_a0ee971a4d0770879cae7b89e15309caa}{GRAB\_INT}}(\textcolor{stringliteral}{"{}extent\_size"{}}, v, tok, vg-\/>\mbox{\hyperlink{structg__llvm__vg_a87954f0e05608dc938c9b71ca58961aa}{vg\_extentsize}});}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00974}00974                         \textcolor{keywordflow}{continue};}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00975}00975                 \}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00976}00976         \}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00977}00977         \textcolor{comment}{/* basic checking */}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00978}00978         \textcolor{keywordflow}{if} (vg-\/>\mbox{\hyperlink{structg__llvm__vg_a87954f0e05608dc938c9b71ca58961aa}{vg\_extentsize}} == 0)}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00979}00979                 \textcolor{keywordflow}{goto} bad;}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00980}00980 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00981}00981         md-\/>\mbox{\hyperlink{structg__llvm__metadata_ab9f5dab1ef15703bad42e5546dd5d496}{md\_vg}} = vg;}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00982}00982         LIST\_INSERT\_HEAD(\&vg\_list, vg, vg\_next);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00983}00983         \mbox{\hyperlink{g__linux__lvm_8h_abe555a5a23bcc665cf30724891fd5ee2}{G\_LLVM\_DEBUG}}(3, \textcolor{stringliteral}{"{}vg: name=\%s uuid=\%s"{}}, vg-\/>\mbox{\hyperlink{structg__llvm__vg_aaf9fb264c1bba09456e6f58f1c12bf2f}{vg\_name}}, vg-\/>\mbox{\hyperlink{structg__llvm__vg_a311aa23c078cd4dd0834b4a92021d2fb}{vg\_uuid}});}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00984}00984         \textcolor{keywordflow}{return}(0);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00985}00985 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00986}00986 bad:}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00987}00987         \mbox{\hyperlink{g__linux__lvm_8c_a7fc9f437be163bbbd497f64bd5c4a453}{g\_llvm\_free\_vg}}(vg);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00988}00988         \textcolor{keywordflow}{return} (-\/1);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00989}00989 \}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00990}00990 \textcolor{preprocessor}{\#undef  VOL\_FOREACH}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00991}00991 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00992}00992 \textcolor{keyword}{static} \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00993}\mbox{\hyperlink{g__linux__lvm_8c_a4869baeaa60fe163bad304e0bdf7d1d5}{00993}} \mbox{\hyperlink{g__linux__lvm_8c_a4869baeaa60fe163bad304e0bdf7d1d5}{llvm\_textconf\_decode\_pv}}(\textcolor{keywordtype}{char} **\mbox{\hyperlink{g__part__if_8m_ac14417684334d01b4e1e807a19d92816}{buf}}, \textcolor{keywordtype}{char} *tok, \textcolor{keyword}{struct} \mbox{\hyperlink{structg__llvm__vg}{g\_llvm\_vg}} *vg)}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00994}00994 \{}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00995}00995         \textcolor{keyword}{struct }\mbox{\hyperlink{structg__llvm__pv}{g\_llvm\_pv}}       *pv;}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00996}00996         \textcolor{keywordtype}{char} *v;}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00997}00997         \textcolor{keywordtype}{size\_t} len;}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00998}00998 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l00999}00999         \textcolor{keywordflow}{if} (*\mbox{\hyperlink{g__part__if_8m_ac14417684334d01b4e1e807a19d92816}{buf}} == NULL || **\mbox{\hyperlink{g__part__if_8m_ac14417684334d01b4e1e807a19d92816}{buf}} == \textcolor{charliteral}{'\(\backslash\)0'})}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01000}01000                 \textcolor{keywordflow}{return} (EINVAL);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01001}01001 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01002}01002         pv = malloc(\textcolor{keyword}{sizeof}(*pv), M\_GLLVM, M\_NOWAIT|M\_ZERO);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01003}01003         \textcolor{keywordflow}{if} (pv == NULL)}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01004}01004                 \textcolor{keywordflow}{return} (ENOMEM);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01005}01005 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01006}01006         pv-\/>\mbox{\hyperlink{structg__llvm__pv_aa4b8c938273ae397f7e94c5a273694a7}{pv\_vg}} = vg;}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01007}01007         len = 0;}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01008}01008         \textcolor{keywordflow}{if} (tok == NULL)}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01009}01009                 \textcolor{keywordflow}{goto} bad;}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01010}01010         len = \mbox{\hyperlink{g__linux__lvm_8c_ad805febf1752f30d7d9b4ec62f6d5d5a}{llvm\_grab\_name}}(pv-\/>\mbox{\hyperlink{structg__llvm__pv_a9eec0a3fa237d4e6849111f5905bcdd8}{pv\_name}}, tok);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01011}01011         \textcolor{keywordflow}{if} (len == 0)}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01012}01012                 \textcolor{keywordflow}{goto} bad;}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01013}01013 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01014}01014         \textcolor{keywordflow}{while} ((tok = strsep(\mbox{\hyperlink{g__part__if_8m_ac14417684334d01b4e1e807a19d92816}{buf}}, \textcolor{stringliteral}{"{}\(\backslash\)n"{}})) != NULL) \{}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01015}01015                 \textcolor{keywordflow}{if} (strstr(tok, \textcolor{stringliteral}{"{}\{"{}}))}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01016}01016                         \textcolor{keywordflow}{goto} bad;}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01017}01017 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01018}01018                 \textcolor{keywordflow}{if} (strstr(tok, \textcolor{stringliteral}{"{}\}"{}}))}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01019}01019                         \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01020}01020 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01021}01021                 \textcolor{comment}{/* parse 'key = value' lines */}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01022}01022                 \textcolor{keywordflow}{if} (strstr(tok, \textcolor{stringliteral}{"{}="{}})) \{}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01023}01023                         \mbox{\hyperlink{g__linux__lvm_8c_a2d1f91d9ed6b2bf2a419daa726bdeaaf}{SPLIT}}(v, tok, \textcolor{stringliteral}{"{}="{}});}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01024}01024                         \mbox{\hyperlink{g__linux__lvm_8c_a6781d20647b721c7fd43c20a48709970}{GRAB\_STR}}(\textcolor{stringliteral}{"{}id"{}}, v, tok, pv-\/>\mbox{\hyperlink{structg__llvm__pv_afcd7611c079aea584d2712ae799ed887}{pv\_uuid}}, \textcolor{keyword}{sizeof}(pv-\/>\mbox{\hyperlink{structg__llvm__pv_afcd7611c079aea584d2712ae799ed887}{pv\_uuid}}));}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01025}01025                         \mbox{\hyperlink{g__linux__lvm_8c_a0ee971a4d0770879cae7b89e15309caa}{GRAB\_INT}}(\textcolor{stringliteral}{"{}pe\_start"{}}, v, tok, pv-\/>\mbox{\hyperlink{structg__llvm__pv_ae9e2591557cda65c3ab0fa12d566d5b2}{pv\_start}});}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01026}01026                         \mbox{\hyperlink{g__linux__lvm_8c_a0ee971a4d0770879cae7b89e15309caa}{GRAB\_INT}}(\textcolor{stringliteral}{"{}pe\_count"{}}, v, tok, pv-\/>\mbox{\hyperlink{structg__llvm__pv_ab91b398bbf505002bd35328d96ed516f}{pv\_count}});}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01027}01027                         \textcolor{keywordflow}{continue};}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01028}01028                 \}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01029}01029         \}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01030}01030         \textcolor{keywordflow}{if} (tok == NULL)}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01031}01031                 \textcolor{keywordflow}{goto} bad;}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01032}01032         \textcolor{comment}{/* basic checking */}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01033}01033         \textcolor{keywordflow}{if} (pv-\/>\mbox{\hyperlink{structg__llvm__pv_ab91b398bbf505002bd35328d96ed516f}{pv\_count}} == 0)}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01034}01034                 \textcolor{keywordflow}{goto} bad;}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01035}01035 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01036}01036         LIST\_INSERT\_HEAD(\&vg-\/>vg\_pvs, pv, pv\_next);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01037}01037         \mbox{\hyperlink{g__linux__lvm_8h_abe555a5a23bcc665cf30724891fd5ee2}{G\_LLVM\_DEBUG}}(3, \textcolor{stringliteral}{"{}pv: name=\%s uuid=\%s"{}}, pv-\/>\mbox{\hyperlink{structg__llvm__pv_a9eec0a3fa237d4e6849111f5905bcdd8}{pv\_name}}, pv-\/>\mbox{\hyperlink{structg__llvm__pv_afcd7611c079aea584d2712ae799ed887}{pv\_uuid}});}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01038}01038 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01039}01039         \textcolor{keywordflow}{return} (0);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01040}01040 bad:}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01041}01041         \mbox{\hyperlink{g__raid__md__if_8m_a4df9edb2717b3f7e4c3c903878577a54}{free}}(pv, M\_GLLVM);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01042}01042         \textcolor{keywordflow}{return} (-\/1);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01043}01043 \}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01044}01044 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01045}01045 \textcolor{keyword}{static} \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01046}\mbox{\hyperlink{g__linux__lvm_8c_ae5febcf7c94abe976671ead3a2922f65}{01046}} \mbox{\hyperlink{g__linux__lvm_8c_ae5febcf7c94abe976671ead3a2922f65}{llvm\_textconf\_decode\_lv}}(\textcolor{keywordtype}{char} **\mbox{\hyperlink{g__part__if_8m_ac14417684334d01b4e1e807a19d92816}{buf}}, \textcolor{keywordtype}{char} *tok, \textcolor{keyword}{struct} \mbox{\hyperlink{structg__llvm__vg}{g\_llvm\_vg}} *vg)}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01047}01047 \{}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01048}01048         \textcolor{keyword}{struct }\mbox{\hyperlink{structg__llvm__lv}{g\_llvm\_lv}}       *lv;}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01049}01049         \textcolor{keyword}{struct }\mbox{\hyperlink{structg__llvm__segment}{g\_llvm\_segment}} *sg;}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01050}01050         \textcolor{keywordtype}{char} *v;}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01051}01051         \textcolor{keywordtype}{size\_t} len;}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01052}01052 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01053}01053         \textcolor{keywordflow}{if} (*\mbox{\hyperlink{g__part__if_8m_ac14417684334d01b4e1e807a19d92816}{buf}} == NULL || **\mbox{\hyperlink{g__part__if_8m_ac14417684334d01b4e1e807a19d92816}{buf}} == \textcolor{charliteral}{'\(\backslash\)0'})}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01054}01054                 \textcolor{keywordflow}{return} (EINVAL);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01055}01055 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01056}01056         lv = malloc(\textcolor{keyword}{sizeof}(*lv), M\_GLLVM, M\_NOWAIT|M\_ZERO);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01057}01057         \textcolor{keywordflow}{if} (lv == NULL)}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01058}01058                 \textcolor{keywordflow}{return} (ENOMEM);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01059}01059 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01060}01060         lv-\/>\mbox{\hyperlink{structg__llvm__lv_ab588ac27a9f430eb80df5aee7b0d7ff3}{lv\_vg}} = vg;}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01061}01061         LIST\_INIT(\&lv-\/>lv\_segs);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01062}01062 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01063}01063         \textcolor{keywordflow}{if} (tok == NULL)}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01064}01064                 \textcolor{keywordflow}{goto} bad;}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01065}01065         len = \mbox{\hyperlink{g__linux__lvm_8c_ad805febf1752f30d7d9b4ec62f6d5d5a}{llvm\_grab\_name}}(lv-\/>\mbox{\hyperlink{structg__llvm__lv_ad62058768e37fb94265210e2fd7e9d2b}{lv\_name}}, tok);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01066}01066         \textcolor{keywordflow}{if} (len == 0)}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01067}01067                 \textcolor{keywordflow}{goto} bad;}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01068}01068 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01069}01069         \textcolor{keywordflow}{while} ((tok = strsep(\mbox{\hyperlink{g__part__if_8m_ac14417684334d01b4e1e807a19d92816}{buf}}, \textcolor{stringliteral}{"{}\(\backslash\)n"{}})) != NULL) \{}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01070}01070                 \textcolor{keywordflow}{if} (strstr(tok, \textcolor{stringliteral}{"{}\{"{}})) \{}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01071}01071                         \textcolor{keywordflow}{if} (strstr(tok, \textcolor{stringliteral}{"{}segment"{}})) \{}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01072}01072                                 \mbox{\hyperlink{g__linux__lvm_8c_afdd26aa10d92b5924d2c47fbf6ad6d59}{llvm\_textconf\_decode\_sg}}(\mbox{\hyperlink{g__part__if_8m_ac14417684334d01b4e1e807a19d92816}{buf}}, tok, lv);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01073}01073                                 \textcolor{keywordflow}{continue};}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01074}01074                         \} \textcolor{keywordflow}{else}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01075}01075                                 \textcolor{comment}{/* unexpected section */}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01076}01076                                 \textcolor{keywordflow}{goto} bad;}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01077}01077                 \}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01078}01078 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01079}01079                 \textcolor{keywordflow}{if} (strstr(tok, \textcolor{stringliteral}{"{}\}"{}}))}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01080}01080                         \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01081}01081 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01082}01082                 \textcolor{comment}{/* parse 'key = value' lines */}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01083}01083                 \textcolor{keywordflow}{if} (strstr(tok, \textcolor{stringliteral}{"{}="{}})) \{}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01084}01084                         \mbox{\hyperlink{g__linux__lvm_8c_a2d1f91d9ed6b2bf2a419daa726bdeaaf}{SPLIT}}(v, tok, \textcolor{stringliteral}{"{}="{}});}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01085}01085                         \mbox{\hyperlink{g__linux__lvm_8c_a6781d20647b721c7fd43c20a48709970}{GRAB\_STR}}(\textcolor{stringliteral}{"{}id"{}}, v, tok, lv-\/>\mbox{\hyperlink{structg__llvm__lv_a171e0adf482b5403505af1b9c0fd6b68}{lv\_uuid}}, \textcolor{keyword}{sizeof}(lv-\/>\mbox{\hyperlink{structg__llvm__lv_a171e0adf482b5403505af1b9c0fd6b68}{lv\_uuid}}));}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01086}01086                         \mbox{\hyperlink{g__linux__lvm_8c_a0ee971a4d0770879cae7b89e15309caa}{GRAB\_INT}}(\textcolor{stringliteral}{"{}segment\_count"{}}, v, tok, lv-\/>\mbox{\hyperlink{structg__llvm__lv_a6cd6da05e7a992f4409d50de351b32c0}{lv\_sgcount}});}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01087}01087                         \textcolor{keywordflow}{continue};}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01088}01088                 \}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01089}01089         \}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01090}01090         \textcolor{keywordflow}{if} (tok == NULL)}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01091}01091                 \textcolor{keywordflow}{goto} bad;}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01092}01092         \textcolor{keywordflow}{if} (lv-\/>\mbox{\hyperlink{structg__llvm__lv_a6cd6da05e7a992f4409d50de351b32c0}{lv\_sgcount}} == 0 || lv-\/>\mbox{\hyperlink{structg__llvm__lv_a6cd6da05e7a992f4409d50de351b32c0}{lv\_sgcount}} != lv-\/>\mbox{\hyperlink{structg__llvm__lv_a6959f828f18990e1378e9e0bf2bf3308}{lv\_numsegs}})}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01093}01093                 \textcolor{comment}{/* zero or incomplete segment list */}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01094}01094                 \textcolor{keywordflow}{goto} bad;}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01095}01095 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01096}01096         \textcolor{comment}{/* Optimize for only one segment on the pv */}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01097}01097         lv-\/>\mbox{\hyperlink{structg__llvm__lv_ab4a1fa241dbfb2464069e4afd8bf361a}{lv\_firstsg}} = LIST\_FIRST(\&lv-\/>lv\_segs);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01098}01098         LIST\_INSERT\_HEAD(\&vg-\/>vg\_lvs, lv, lv\_next);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01099}01099         \mbox{\hyperlink{g__linux__lvm_8h_abe555a5a23bcc665cf30724891fd5ee2}{G\_LLVM\_DEBUG}}(3, \textcolor{stringliteral}{"{}lv: name=\%s uuid=\%s"{}}, lv-\/>\mbox{\hyperlink{structg__llvm__lv_ad62058768e37fb94265210e2fd7e9d2b}{lv\_name}}, lv-\/>\mbox{\hyperlink{structg__llvm__lv_a171e0adf482b5403505af1b9c0fd6b68}{lv\_uuid}});}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01100}01100 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01101}01101         \textcolor{keywordflow}{return} (0);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01102}01102 bad:}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01103}01103         \textcolor{keywordflow}{while} ((sg = LIST\_FIRST(\&lv-\/>lv\_segs)) != NULL) \{}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01104}01104                 LIST\_REMOVE(sg, sg\_next);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01105}01105                 \mbox{\hyperlink{g__raid__md__if_8m_a4df9edb2717b3f7e4c3c903878577a54}{free}}(sg, M\_GLLVM);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01106}01106         \}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01107}01107         \mbox{\hyperlink{g__raid__md__if_8m_a4df9edb2717b3f7e4c3c903878577a54}{free}}(lv, M\_GLLVM);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01108}01108         \textcolor{keywordflow}{return} (-\/1);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01109}01109 \}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01110}01110 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01111}01111 \textcolor{keyword}{static} \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01112}\mbox{\hyperlink{g__linux__lvm_8c_afdd26aa10d92b5924d2c47fbf6ad6d59}{01112}} \mbox{\hyperlink{g__linux__lvm_8c_afdd26aa10d92b5924d2c47fbf6ad6d59}{llvm\_textconf\_decode\_sg}}(\textcolor{keywordtype}{char} **\mbox{\hyperlink{g__part__if_8m_ac14417684334d01b4e1e807a19d92816}{buf}}, \textcolor{keywordtype}{char} *tok, \textcolor{keyword}{struct} \mbox{\hyperlink{structg__llvm__lv}{g\_llvm\_lv}} *lv)}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01113}01113 \{}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01114}01114         \textcolor{keyword}{struct }\mbox{\hyperlink{structg__llvm__segment}{g\_llvm\_segment}} *sg;}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01115}01115         \textcolor{keywordtype}{char} *v;}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01116}01116         \textcolor{keywordtype}{int} count = 0;}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01117}01117 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01118}01118         \textcolor{keywordflow}{if} (*\mbox{\hyperlink{g__part__if_8m_ac14417684334d01b4e1e807a19d92816}{buf}} == NULL || **\mbox{\hyperlink{g__part__if_8m_ac14417684334d01b4e1e807a19d92816}{buf}} == \textcolor{charliteral}{'\(\backslash\)0'})}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01119}01119                 \textcolor{keywordflow}{return} (EINVAL);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01120}01120 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01121}01121         sg = malloc(\textcolor{keyword}{sizeof}(*sg), M\_GLLVM, M\_NOWAIT|M\_ZERO);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01122}01122         \textcolor{keywordflow}{if} (sg == NULL)}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01123}01123                 \textcolor{keywordflow}{return} (ENOMEM);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01124}01124 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01125}01125         \textcolor{keywordflow}{while} ((tok = strsep(\mbox{\hyperlink{g__part__if_8m_ac14417684334d01b4e1e807a19d92816}{buf}}, \textcolor{stringliteral}{"{}\(\backslash\)n"{}})) != NULL) \{}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01126}01126                 \textcolor{comment}{/* only a single linear stripe is supported */}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01127}01127                 \textcolor{keywordflow}{if} (strstr(tok, \textcolor{stringliteral}{"{}stripe\_count"{}})) \{}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01128}01128                         \mbox{\hyperlink{g__linux__lvm_8c_a2d1f91d9ed6b2bf2a419daa726bdeaaf}{SPLIT}}(v, tok, \textcolor{stringliteral}{"{}="{}});}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01129}01129                         \mbox{\hyperlink{g__linux__lvm_8c_a0ee971a4d0770879cae7b89e15309caa}{GRAB\_INT}}(\textcolor{stringliteral}{"{}stripe\_count"{}}, v, tok, count);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01130}01130                         \textcolor{keywordflow}{if} (count != 1)}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01131}01131                                 \textcolor{keywordflow}{goto} bad;}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01132}01132                 \}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01133}01133 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01134}01134                 \textcolor{keywordflow}{if} (strstr(tok, \textcolor{stringliteral}{"{}\{"{}}))}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01135}01135                         \textcolor{keywordflow}{goto} bad;}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01136}01136 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01137}01137                 \textcolor{keywordflow}{if} (strstr(tok, \textcolor{stringliteral}{"{}\}"{}}))}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01138}01138                         \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01139}01139 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01140}01140                 \textcolor{keywordflow}{if} (strcmp(tok, \textcolor{stringliteral}{"{}stripes = ["{}}) == 0) \{}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01141}01141                         tok = strsep(\mbox{\hyperlink{g__part__if_8m_ac14417684334d01b4e1e807a19d92816}{buf}}, \textcolor{stringliteral}{"{}\(\backslash\)n"{}});}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01142}01142                         \textcolor{keywordflow}{if} (tok == NULL)}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01143}01143                                 \textcolor{keywordflow}{goto} bad;}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01144}01144 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01145}01145                         strsep(\&tok, \textcolor{stringliteral}{"{}\(\backslash\)"{}"{}});}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01146}01146                         \textcolor{keywordflow}{if} (tok == NULL)}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01147}01147                                 \textcolor{keywordflow}{goto} bad;       \textcolor{comment}{/* missing open quotes */}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01148}01148                         v = strsep(\&tok, \textcolor{stringliteral}{"{}\(\backslash\)"{}"{}});}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01149}01149                         \textcolor{keywordflow}{if} (tok == NULL)}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01150}01150                                 \textcolor{keywordflow}{goto} bad;       \textcolor{comment}{/* missing close quotes */}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01151}01151                         strncpy(sg-\/>\mbox{\hyperlink{structg__llvm__segment_a3c47e1836d9cbfc2857bec1c8718333a}{sg\_pvname}}, v, \textcolor{keyword}{sizeof}(sg-\/>\mbox{\hyperlink{structg__llvm__segment_a3c47e1836d9cbfc2857bec1c8718333a}{sg\_pvname}}));}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01152}01152                         \textcolor{keywordflow}{if} (*tok != \textcolor{charliteral}{','})}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01153}01153                                 \textcolor{keywordflow}{goto} bad;       \textcolor{comment}{/* missing comma for stripe */}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01154}01154                         tok++;}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01155}01155 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01156}01156                         sg-\/>\mbox{\hyperlink{structg__llvm__segment_acf75f1294eab9fc6d725135c8104f47a}{sg\_pvstart}} = strtol(tok, \&v, 10);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01157}01157                         \textcolor{keywordflow}{if} (v == tok)}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01158}01158                                 \textcolor{comment}{/* strtol did not eat any of the buffer */}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01159}01159                                 \textcolor{keywordflow}{goto} bad;}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01160}01160 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01161}01161                         \textcolor{keywordflow}{continue};}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01162}01162                 \}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01163}01163 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01164}01164                 \textcolor{comment}{/* parse 'key = value' lines */}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01165}01165                 \textcolor{keywordflow}{if} (strstr(tok, \textcolor{stringliteral}{"{}="{}})) \{}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01166}01166                         \mbox{\hyperlink{g__linux__lvm_8c_a2d1f91d9ed6b2bf2a419daa726bdeaaf}{SPLIT}}(v, tok, \textcolor{stringliteral}{"{}="{}});}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01167}01167                         \mbox{\hyperlink{g__linux__lvm_8c_a0ee971a4d0770879cae7b89e15309caa}{GRAB\_INT}}(\textcolor{stringliteral}{"{}start\_extent"{}}, v, tok, sg-\/>\mbox{\hyperlink{structg__llvm__segment_aeea7fe162f320e20d066827dc77e3762}{sg\_start}});}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01168}01168                         \mbox{\hyperlink{g__linux__lvm_8c_a0ee971a4d0770879cae7b89e15309caa}{GRAB\_INT}}(\textcolor{stringliteral}{"{}extent\_count"{}}, v, tok, sg-\/>\mbox{\hyperlink{structg__llvm__segment_ad9d630903711d2e2e12e11ef0a348f52}{sg\_count}});}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01169}01169                         \textcolor{keywordflow}{continue};}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01170}01170                 \}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01171}01171         \}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01172}01172         \textcolor{keywordflow}{if} (tok == NULL)}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01173}01173                 \textcolor{keywordflow}{goto} bad;}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01174}01174         \textcolor{comment}{/* basic checking */}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01175}01175         \textcolor{keywordflow}{if} (count != 1 || sg-\/>\mbox{\hyperlink{structg__llvm__segment_ad9d630903711d2e2e12e11ef0a348f52}{sg\_count}} == 0)}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01176}01176                 \textcolor{keywordflow}{goto} bad;}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01177}01177 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01178}01178         sg-\/>\mbox{\hyperlink{structg__llvm__segment_ab3caecb92d4c043e7d2470785861b71d}{sg\_end}} = sg-\/>\mbox{\hyperlink{structg__llvm__segment_aeea7fe162f320e20d066827dc77e3762}{sg\_start}} + sg-\/>\mbox{\hyperlink{structg__llvm__segment_ad9d630903711d2e2e12e11ef0a348f52}{sg\_count}} -\/ 1;}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01179}01179         lv-\/>\mbox{\hyperlink{structg__llvm__lv_a6959f828f18990e1378e9e0bf2bf3308}{lv\_numsegs}}++;}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01180}01180         lv-\/>\mbox{\hyperlink{structg__llvm__lv_ac19efabe057ae6f42c91e694f4b45043}{lv\_extentcount}} += sg-\/>\mbox{\hyperlink{structg__llvm__segment_ad9d630903711d2e2e12e11ef0a348f52}{sg\_count}};}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01181}01181         LIST\_INSERT\_HEAD(\&lv-\/>lv\_segs, sg, sg\_next);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01182}01182 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01183}01183         \textcolor{keywordflow}{return} (0);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01184}01184 bad:}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01185}01185         \mbox{\hyperlink{g__raid__md__if_8m_a4df9edb2717b3f7e4c3c903878577a54}{free}}(sg, M\_GLLVM);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01186}01186         \textcolor{keywordflow}{return} (-\/1);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01187}01187 \}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01188}01188 \textcolor{preprocessor}{\#undef  GRAB\_INT}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01189}01189 \textcolor{preprocessor}{\#undef  GRAB\_STR}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01190}01190 \textcolor{preprocessor}{\#undef  SPLIT}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01191}01191 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01192}\mbox{\hyperlink{g__linux__lvm_8c_a707dde2c76688139bcb1bd04c8305b35}{01192}} \textcolor{keyword}{static} \textcolor{keyword}{struct }\mbox{\hyperlink{structg__class}{g\_class}} \mbox{\hyperlink{g__linux__lvm_8c_a707dde2c76688139bcb1bd04c8305b35}{g\_llvm\_class}} = \{}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01193}01193         .\mbox{\hyperlink{structg__class_a66bf8381cf0afbf7ccdebfa6b90a4a96}{name}} = \mbox{\hyperlink{g__linux__lvm_8h_a34b66915a14fd1e3e877822ac84ab179}{G\_LLVM\_CLASS\_NAME}},}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01194}01194         .version = \mbox{\hyperlink{geom_8h_a33025dbc893de9dc049ba2f30283bc5a}{G\_VERSION}},}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01195}01195         .init = \mbox{\hyperlink{g__linux__lvm_8c_af4426f7ef90df4f534a71da98a164597}{g\_llvm\_init}},}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01196}01196         .taste = \mbox{\hyperlink{g__linux__lvm_8c_acacb1263ab2c0097b820e9bf49017c3e}{g\_llvm\_taste}},}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01197}01197         .destroy\_geom = \mbox{\hyperlink{g__linux__lvm_8c_a5cefdb4f9ac435030f1553b4d93ce025}{g\_llvm\_destroy\_geom}}}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01198}01198 \};}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01199}01199 }
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01200}\mbox{\hyperlink{g__linux__lvm_8c_a36feeb7ea6c002797778589263939f6d}{01200}} \mbox{\hyperlink{g__linux__lvm_8c_a36feeb7ea6c002797778589263939f6d}{DECLARE\_GEOM\_CLASS}}(\mbox{\hyperlink{g__linux__lvm_8c_a707dde2c76688139bcb1bd04c8305b35}{g\_llvm\_class}}, g\_linux\_lvm);}
\DoxyCodeLine{\Hypertarget{g__linux__lvm_8c_source_l01201}\mbox{\hyperlink{g__linux__lvm_8c_a36746ebf5f930f2807ea9321e5a72269}{01201}} \mbox{\hyperlink{g__linux__lvm_8c_a36746ebf5f930f2807ea9321e5a72269}{MODULE\_VERSION}}(geom\_linux\_lvm, 0);}

\end{DoxyCode}
