\hypertarget{geom__vfs_8c_source}{}\doxysection{geom\+\_\+vfs.\+c}
\label{geom__vfs_8c_source}\index{geom/geom\_vfs.c@{geom/geom\_vfs.c}}
\mbox{\hyperlink{geom__vfs_8c}{Go to the documentation of this file.}}
\begin{DoxyCode}{0}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00001}00001 \textcolor{comment}{/*-\/}}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00002}00002 \textcolor{comment}{ * SPDX-\/License-\/Identifier: BSD-\/2-\/Clause-\/FreeBSD}}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00003}00003 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00004}00004 \textcolor{comment}{ * Copyright (c) 2004 Poul-\/Henning Kamp}}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00005}00005 \textcolor{comment}{ * All rights reserved.}}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00006}00006 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00007}00007 \textcolor{comment}{ * Redistribution and use in source and binary forms, with or without}}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00008}00008 \textcolor{comment}{ * modification, are permitted provided that the following conditions}}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00009}00009 \textcolor{comment}{ * are met:}}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00010}00010 \textcolor{comment}{ * 1. Redistributions of source code must retain the above copyright}}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00011}00011 \textcolor{comment}{ *    notice, this list of conditions and the following disclaimer.}}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00012}00012 \textcolor{comment}{ * 2. Redistributions in binary form must reproduce the above copyright}}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00013}00013 \textcolor{comment}{ *    notice, this list of conditions and the following disclaimer in the}}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00014}00014 \textcolor{comment}{ *    documentation and/or other materials provided with the distribution.}}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00015}00015 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00016}00016 \textcolor{comment}{ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND}}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00017}00017 \textcolor{comment}{ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE}}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00018}00018 \textcolor{comment}{ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE}}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00019}00019 \textcolor{comment}{ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE}}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00020}00020 \textcolor{comment}{ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL}}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00021}00021 \textcolor{comment}{ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS}}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00022}00022 \textcolor{comment}{ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)}}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00023}00023 \textcolor{comment}{ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT}}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00024}00024 \textcolor{comment}{ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY}}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00025}00025 \textcolor{comment}{ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF}}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00026}00026 \textcolor{comment}{ * SUCH DAMAGE.}}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00027}00027 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00028}00028 }
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00029}00029 \textcolor{preprocessor}{\#include <sys/cdefs.h>}}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00030}\mbox{\hyperlink{geom__vfs_8c_a8c3ef283470a68cd30afe9b8a72cb60f}{00030}} \mbox{\hyperlink{geom__vfs_8c_a8c3ef283470a68cd30afe9b8a72cb60f}{\_\_FBSDID}}(\textcolor{stringliteral}{"{}\$FreeBSD\$"{}});}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00031}00031 }
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00032}00032 \textcolor{preprocessor}{\#include <sys/param.h>}}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00033}00033 \textcolor{preprocessor}{\#include <sys/systm.h>}}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00034}00034 \textcolor{preprocessor}{\#include <sys/bio.h>}}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00035}00035 \textcolor{preprocessor}{\#include <sys/kernel.h>}}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00036}00036 \textcolor{preprocessor}{\#include <sys/lock.h>}}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00037}00037 \textcolor{preprocessor}{\#include <sys/malloc.h>}}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00038}00038 \textcolor{preprocessor}{\#include <sys/mutex.h>}}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00039}00039 \textcolor{preprocessor}{\#include <sys/sbuf.h>}}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00040}00040 \textcolor{preprocessor}{\#include <sys/vnode.h>}}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00041}00041 \textcolor{preprocessor}{\#include <sys/mount.h>}}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00042}00042 }
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00043}00043 \textcolor{preprocessor}{\#include <\mbox{\hyperlink{geom_8h}{geom/geom.h}}>}}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00044}00044 \textcolor{preprocessor}{\#include <\mbox{\hyperlink{geom__vfs_8h}{geom/geom\_vfs.h}}>}}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00045}00045 }
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00046}00046 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00047}00047 \textcolor{comment}{ * subroutines for use by filesystems.}}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00048}00048 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00049}00049 \textcolor{comment}{ * XXX: should maybe live somewhere else ?}}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00050}00050 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00051}00051 \textcolor{preprocessor}{\#include <sys/buf.h>}}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00052}00052 }
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00053}\mbox{\hyperlink{structg__vfs__softc}{00053}} \textcolor{keyword}{struct }\mbox{\hyperlink{structg__vfs__softc}{g\_vfs\_softc}} \{}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00054}\mbox{\hyperlink{structg__vfs__softc_a2df734f8eaaf0de14404061e21b6ff92}{00054}}         \textcolor{keyword}{struct }mtx       \mbox{\hyperlink{structg__vfs__softc_a2df734f8eaaf0de14404061e21b6ff92}{sc\_mtx}};}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00055}\mbox{\hyperlink{structg__vfs__softc_a8aa100efbae3b658c636467271bdc716}{00055}}         \textcolor{keyword}{struct }bufobj   *\mbox{\hyperlink{structg__vfs__softc_a8aa100efbae3b658c636467271bdc716}{sc\_bo}};}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00056}\mbox{\hyperlink{structg__vfs__softc_a8aed4af96adcbd13745d17bc84b1f9fc}{00056}}         \textcolor{keyword}{struct }g\_event  *\mbox{\hyperlink{structg__vfs__softc_a8aed4af96adcbd13745d17bc84b1f9fc}{sc\_event}};}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00057}\mbox{\hyperlink{structg__vfs__softc_a054befd2c4ebf07dd44bd9e40eefafc9}{00057}}         \textcolor{keywordtype}{int}              \mbox{\hyperlink{structg__vfs__softc_a054befd2c4ebf07dd44bd9e40eefafc9}{sc\_active}};}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00058}\mbox{\hyperlink{structg__vfs__softc_a4e56305b511fdbdaa17c107beef4aaba}{00058}}         \textcolor{keywordtype}{int}              \mbox{\hyperlink{structg__vfs__softc_a4e56305b511fdbdaa17c107beef4aaba}{sc\_orphaned}};}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00059}\mbox{\hyperlink{structg__vfs__softc_a2710dafe3f0c80ff0b113456457a7cb8}{00059}}         \textcolor{keywordtype}{int}              \mbox{\hyperlink{structg__vfs__softc_a2710dafe3f0c80ff0b113456457a7cb8}{sc\_enxio\_active}};}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00060}00060 \};}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00061}00061 }
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00062}\mbox{\hyperlink{geom__vfs_8c_aba9bafd4664c2f2928284087d9892592}{00062}} \textcolor{keyword}{static} \textcolor{keyword}{struct }buf\_ops \mbox{\hyperlink{geom__vfs_8c_aba9bafd4664c2f2928284087d9892592}{\_\_g\_vfs\_bufops}} = \{}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00063}00063         .bop\_name =     \textcolor{stringliteral}{"{}GEOM\_VFS"{}},}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00064}00064         .bop\_write =    bufwrite,}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00065}00065         .bop\_strategy = \mbox{\hyperlink{geom__vfs_8c_a0e4aaeda73182876d749e249b1e847f2}{g\_vfs\_strategy}},   }
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00066}00066         .bop\_sync =     bufsync,        }
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00067}00067         .bop\_bdflush =  bufbdflush}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00068}00068 \};}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00069}00069 }
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00070}\mbox{\hyperlink{geom__vfs_8c_a0cf81ab14b21cf6660e0adc0deb7e9c5}{00070}} \textcolor{keyword}{struct }buf\_ops *\mbox{\hyperlink{geom__vfs_8c_a0cf81ab14b21cf6660e0adc0deb7e9c5}{g\_vfs\_bufops}} = \&\mbox{\hyperlink{geom__vfs_8c_aba9bafd4664c2f2928284087d9892592}{\_\_g\_vfs\_bufops}};}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00071}00071 }
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00072}\mbox{\hyperlink{geom__vfs_8c_a7d0e01e6a4e242ff76e32c7e1508ed81}{00072}} \textcolor{keyword}{static} \mbox{\hyperlink{geom_8h_aa5c4a4aeb29f435dd74719b92e830c89}{g\_orphan\_t}} \mbox{\hyperlink{geom__vfs_8c_a7d0e01e6a4e242ff76e32c7e1508ed81}{g\_vfs\_orphan}};}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00073}00073 }
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00074}\mbox{\hyperlink{geom__vfs_8c_a0d6db01d47a1b8b68da44462d6b727d7}{00074}} \textcolor{keyword}{static} \textcolor{keyword}{struct }\mbox{\hyperlink{structg__class}{g\_class}} \mbox{\hyperlink{geom__vfs_8c_a0d6db01d47a1b8b68da44462d6b727d7}{g\_vfs\_class}} = \{}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00075}00075         .\mbox{\hyperlink{structg__class_a66bf8381cf0afbf7ccdebfa6b90a4a96}{name}} =             \textcolor{stringliteral}{"{}VFS"{}},}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00076}00076         .version =      \mbox{\hyperlink{geom_8h_a33025dbc893de9dc049ba2f30283bc5a}{G\_VERSION}},}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00077}00077         .orphan =       \mbox{\hyperlink{geom__vfs_8c_a7d0e01e6a4e242ff76e32c7e1508ed81}{g\_vfs\_orphan}},}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00078}00078 \};}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00079}00079 }
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00080}\mbox{\hyperlink{geom__vfs_8c_a4d79b2b02350ee5897f2633e80ce1dc5}{00080}} \mbox{\hyperlink{geom__vfs_8c_a4d79b2b02350ee5897f2633e80ce1dc5}{DECLARE\_GEOM\_CLASS}}(\mbox{\hyperlink{geom__vfs_8c_a0d6db01d47a1b8b68da44462d6b727d7}{g\_vfs\_class}}, g\_vfs);}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00081}00081 }
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00082}00082 \textcolor{keyword}{static} \textcolor{keywordtype}{void}}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00083}\mbox{\hyperlink{geom__vfs_8c_a38e4e3f593ae5c52ce664e3af9ab9501}{00083}} \mbox{\hyperlink{geom__vfs_8c_a38e4e3f593ae5c52ce664e3af9ab9501}{g\_vfs\_destroy}}(\textcolor{keywordtype}{void} *arg, \textcolor{keywordtype}{int} flags \_\_unused)}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00084}00084 \{}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00085}00085         \textcolor{keyword}{struct }\mbox{\hyperlink{structg__consumer}{g\_consumer}} *\mbox{\hyperlink{g__part__if_8m_a294f18324585ff37641fb8aa1c9ccd82}{cp}};}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00086}00086 }
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00087}00087         \mbox{\hyperlink{geom_8h_a1898dc8c812faa5de231ab840e8562bf}{g\_topology\_assert}}();}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00088}00088         \mbox{\hyperlink{g__part__if_8m_a294f18324585ff37641fb8aa1c9ccd82}{cp}} = arg;}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00089}00089         \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{geom__vfs_8c_source_l00090}00090                 \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{geom__vfs_8c_source_l00091}00091         \mbox{\hyperlink{geom_8h_a037802c2ec5d43fcf1222215f9f8a735}{g\_detach}}(\mbox{\hyperlink{g__part__if_8m_a294f18324585ff37641fb8aa1c9ccd82}{cp}});}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00092}00092         \textcolor{keywordflow}{if} (\mbox{\hyperlink{g__part__if_8m_a294f18324585ff37641fb8aa1c9ccd82}{cp}}-\/>\mbox{\hyperlink{structg__consumer_a75734fc8cd22ffc4209c36cc0a459cba}{geom}}-\/>\mbox{\hyperlink{structg__geom_aa83c08c83459420f6cbcfe64c6099466}{softc}} == NULL)}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00093}00093                 \mbox{\hyperlink{geom_8h_a87a0eb5de79ed5e49fcfec012f213c9b}{g\_wither\_geom}}(\mbox{\hyperlink{g__part__if_8m_a294f18324585ff37641fb8aa1c9ccd82}{cp}}-\/>\mbox{\hyperlink{structg__consumer_a75734fc8cd22ffc4209c36cc0a459cba}{geom}}, ENXIO);}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00094}00094 \}}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00095}00095 }
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00096}00096 \textcolor{keyword}{static} \textcolor{keywordtype}{void}}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00097}\mbox{\hyperlink{geom__vfs_8c_a05764884351fcadc1edacdc7f7ba9b00}{00097}} \mbox{\hyperlink{geom__vfs_8c_a05764884351fcadc1edacdc7f7ba9b00}{g\_vfs\_done}}(\textcolor{keyword}{struct} bio *bip)}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00098}00098 \{}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00099}00099         \textcolor{keyword}{struct }\mbox{\hyperlink{structg__consumer}{g\_consumer}} *\mbox{\hyperlink{g__part__if_8m_a294f18324585ff37641fb8aa1c9ccd82}{cp}};}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00100}00100         \textcolor{keyword}{struct }g\_event *\mbox{\hyperlink{g__raid__md__if_8m_a683a43faabf5ffc974caacd425b678d0}{event}};}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00101}00101         \textcolor{keyword}{struct }\mbox{\hyperlink{structg__vfs__softc}{g\_vfs\_softc}} *sc;}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00102}00102         \textcolor{keyword}{struct }\mbox{\hyperlink{g__part__if_8m_ac14417684334d01b4e1e807a19d92816}{buf}} *\mbox{\hyperlink{g__part__if_8m_a3786db8db96c32f69df9f7cd325a7507}{bp}};}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00103}00103         \textcolor{keywordtype}{int} \mbox{\hyperlink{g__part__if_8m_a85a9aa693711f816b10573e83dd34a00}{destroy}};}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00104}00104         \textcolor{keyword}{struct }mount *\mbox{\hyperlink{g__raid__md__if_8m_a4f7502795edfd2493d3d223d0df33e1d}{mp}};}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00105}00105         \textcolor{keyword}{struct }vnode *vp;}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00106}00106         \textcolor{keyword}{struct }cdev *cdevp;}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00107}00107 }
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00108}00108         \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00109}00109 \textcolor{comment}{         * Collect statistics on synchronous and asynchronous read}}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00110}00110 \textcolor{comment}{         * and write counts for disks that have associated filesystems.}}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00111}00111 \textcolor{comment}{         */}}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00112}00112         \mbox{\hyperlink{g__part__if_8m_a3786db8db96c32f69df9f7cd325a7507}{bp}} = bip-\/>bio\_caller2;}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00113}00113         vp = \mbox{\hyperlink{g__part__if_8m_a3786db8db96c32f69df9f7cd325a7507}{bp}}-\/>b\_vp;}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00114}00114         \textcolor{keywordflow}{if} (vp != NULL) \{}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00115}00115                 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00116}00116 \textcolor{comment}{                 * If not a disk vnode, use its associated mount point}}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00117}00117 \textcolor{comment}{                 * otherwise use the mountpoint associated with the disk.}}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00118}00118 \textcolor{comment}{                 */}}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00119}00119                 VI\_LOCK(vp);}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00120}00120                 \textcolor{keywordflow}{if} (vp-\/>v\_type != VCHR ||}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00121}00121                     (cdevp = vp-\/>v\_rdev) == NULL ||}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00122}00122                     cdevp-\/>si\_devsw == NULL ||}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00123}00123                     (cdevp-\/>si\_devsw-\/>d\_flags \& D\_DISK) == 0)}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00124}00124                         \mbox{\hyperlink{g__raid__md__if_8m_a4f7502795edfd2493d3d223d0df33e1d}{mp}} = vp-\/>v\_mount;}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00125}00125                 \textcolor{keywordflow}{else}}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00126}00126                         \mbox{\hyperlink{g__raid__md__if_8m_a4f7502795edfd2493d3d223d0df33e1d}{mp}} = cdevp-\/>si\_mountpt;}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00127}00127                 \textcolor{keywordflow}{if} (\mbox{\hyperlink{g__raid__md__if_8m_a4f7502795edfd2493d3d223d0df33e1d}{mp}} != NULL) \{}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00128}00128                         \textcolor{keywordflow}{if} (\mbox{\hyperlink{g__part__if_8m_a3786db8db96c32f69df9f7cd325a7507}{bp}}-\/>b\_iocmd == BIO\_READ) \{}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00129}00129                                 \textcolor{keywordflow}{if} (LK\_HOLDER(\mbox{\hyperlink{g__part__if_8m_a3786db8db96c32f69df9f7cd325a7507}{bp}}-\/>b\_lock.lk\_lock) == LK\_KERNPROC)}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00130}00130                                         \mbox{\hyperlink{g__raid__md__if_8m_a4f7502795edfd2493d3d223d0df33e1d}{mp}}-\/>mnt\_stat.f\_asyncreads++;}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00131}00131                                 \textcolor{keywordflow}{else}}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00132}00132                                         \mbox{\hyperlink{g__raid__md__if_8m_a4f7502795edfd2493d3d223d0df33e1d}{mp}}-\/>mnt\_stat.f\_syncreads++;}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00133}00133                         \} \textcolor{keywordflow}{else} \textcolor{keywordflow}{if} (\mbox{\hyperlink{g__part__if_8m_a3786db8db96c32f69df9f7cd325a7507}{bp}}-\/>b\_iocmd == BIO\_WRITE) \{}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00134}00134                                 \textcolor{keywordflow}{if} (LK\_HOLDER(\mbox{\hyperlink{g__part__if_8m_a3786db8db96c32f69df9f7cd325a7507}{bp}}-\/>b\_lock.lk\_lock) == LK\_KERNPROC)}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00135}00135                                         \mbox{\hyperlink{g__raid__md__if_8m_a4f7502795edfd2493d3d223d0df33e1d}{mp}}-\/>mnt\_stat.f\_asyncwrites++;}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00136}00136                                 \textcolor{keywordflow}{else}}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00137}00137                                         \mbox{\hyperlink{g__raid__md__if_8m_a4f7502795edfd2493d3d223d0df33e1d}{mp}}-\/>mnt\_stat.f\_syncwrites++;}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00138}00138                         \}}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00139}00139                 \}}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00140}00140                 VI\_UNLOCK(vp);}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00141}00141         \}}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00142}00142 }
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00143}00143         \mbox{\hyperlink{g__part__if_8m_a294f18324585ff37641fb8aa1c9ccd82}{cp}} = bip-\/>bio\_from;}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00144}00144         sc = \mbox{\hyperlink{g__part__if_8m_a294f18324585ff37641fb8aa1c9ccd82}{cp}}-\/>\mbox{\hyperlink{structg__consumer_a75734fc8cd22ffc4209c36cc0a459cba}{geom}}-\/>\mbox{\hyperlink{structg__geom_aa83c08c83459420f6cbcfe64c6099466}{softc}};}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00145}00145         \textcolor{keywordflow}{if} (bip-\/>bio\_error != 0 \&\& bip-\/>bio\_error != EOPNOTSUPP) \{}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00146}00146                 \textcolor{keywordflow}{if} ((\mbox{\hyperlink{g__part__if_8m_a3786db8db96c32f69df9f7cd325a7507}{bp}}-\/>b\_xflags \& BX\_CVTENXIO) != 0)}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00147}00147                         sc-\/>\mbox{\hyperlink{structg__vfs__softc_a2710dafe3f0c80ff0b113456457a7cb8}{sc\_enxio\_active}} = 1;}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00148}00148                 \textcolor{keywordflow}{if} (sc-\/>\mbox{\hyperlink{structg__vfs__softc_a2710dafe3f0c80ff0b113456457a7cb8}{sc\_enxio\_active}})}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00149}00149                         bip-\/>bio\_error = ENXIO;}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00150}00150                 \mbox{\hyperlink{geom_8h_a13e80aacc43b6881f61d0cd9b5045d16}{g\_print\_bio}}(\textcolor{stringliteral}{"{}g\_vfs\_done():"{}}, bip, \textcolor{stringliteral}{"{}error = \%d"{}},}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00151}00151                     bip-\/>bio\_error);}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00152}00152         \}}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00153}00153         \mbox{\hyperlink{g__part__if_8m_a3786db8db96c32f69df9f7cd325a7507}{bp}}-\/>b\_error = bip-\/>bio\_error;}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00154}00154         \mbox{\hyperlink{g__part__if_8m_a3786db8db96c32f69df9f7cd325a7507}{bp}}-\/>b\_ioflags = bip-\/>bio\_flags;}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00155}00155         \textcolor{keywordflow}{if} (bip-\/>bio\_error)}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00156}00156                 \mbox{\hyperlink{g__part__if_8m_a3786db8db96c32f69df9f7cd325a7507}{bp}}-\/>b\_ioflags |= BIO\_ERROR;}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00157}00157         \mbox{\hyperlink{g__part__if_8m_a3786db8db96c32f69df9f7cd325a7507}{bp}}-\/>b\_resid = \mbox{\hyperlink{g__part__if_8m_a3786db8db96c32f69df9f7cd325a7507}{bp}}-\/>b\_bcount -\/ bip-\/>bio\_completed;}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00158}00158         \mbox{\hyperlink{geom_8h_ae3cbea7d4bf48f25bb609df3d3f0bb28}{g\_destroy\_bio}}(bip);}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00159}00159 }
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00160}00160         mtx\_lock(\&sc-\/>\mbox{\hyperlink{structg__vfs__softc_a2df734f8eaaf0de14404061e21b6ff92}{sc\_mtx}});}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00161}00161         \mbox{\hyperlink{g__part__if_8m_a85a9aa693711f816b10573e83dd34a00}{destroy}} = ((-\/-\/sc-\/>\mbox{\hyperlink{structg__vfs__softc_a054befd2c4ebf07dd44bd9e40eefafc9}{sc\_active}}) == 0 \&\& sc-\/>\mbox{\hyperlink{structg__vfs__softc_a4e56305b511fdbdaa17c107beef4aaba}{sc\_orphaned}});}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00162}00162         \textcolor{keywordflow}{if} (\mbox{\hyperlink{g__part__if_8m_a85a9aa693711f816b10573e83dd34a00}{destroy}}) \{}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00163}00163                 \textcolor{keyword}{event} = sc-\/>\mbox{\hyperlink{structg__vfs__softc_a8aed4af96adcbd13745d17bc84b1f9fc}{sc\_event}};}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00164}00164                 sc-\/>\mbox{\hyperlink{structg__vfs__softc_a8aed4af96adcbd13745d17bc84b1f9fc}{sc\_event}} = NULL;}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00165}00165         \} \textcolor{keywordflow}{else}}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00166}00166                 \textcolor{keyword}{event} = NULL;}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00167}00167         mtx\_unlock(\&sc-\/>\mbox{\hyperlink{structg__vfs__softc_a2df734f8eaaf0de14404061e21b6ff92}{sc\_mtx}});}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00168}00168         \textcolor{keywordflow}{if} (\mbox{\hyperlink{g__part__if_8m_a85a9aa693711f816b10573e83dd34a00}{destroy}})}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00169}00169                 \mbox{\hyperlink{geom_8h_a8094697ec8a17fd596f0436f1fd1fd62}{g\_post\_event\_ep}}(\mbox{\hyperlink{geom__vfs_8c_a38e4e3f593ae5c52ce664e3af9ab9501}{g\_vfs\_destroy}}, \mbox{\hyperlink{g__part__if_8m_a294f18324585ff37641fb8aa1c9ccd82}{cp}}, \mbox{\hyperlink{g__raid__md__if_8m_a683a43faabf5ffc974caacd425b678d0}{event}}, NULL);}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00170}00170 }
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00171}00171         bufdone(\mbox{\hyperlink{g__part__if_8m_a3786db8db96c32f69df9f7cd325a7507}{bp}});}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00172}00172 \}}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00173}00173 }
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00174}00174 \textcolor{keywordtype}{void}}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00175}\mbox{\hyperlink{geom__vfs_8c_a0e4aaeda73182876d749e249b1e847f2}{00175}} \mbox{\hyperlink{geom__vfs_8c_a0e4aaeda73182876d749e249b1e847f2}{g\_vfs\_strategy}}(\textcolor{keyword}{struct} bufobj *bo, \textcolor{keyword}{struct} \mbox{\hyperlink{g__part__if_8m_ac14417684334d01b4e1e807a19d92816}{buf}} *\mbox{\hyperlink{g__part__if_8m_a3786db8db96c32f69df9f7cd325a7507}{bp}})}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00176}00176 \{}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00177}00177         \textcolor{keyword}{struct }\mbox{\hyperlink{structg__vfs__softc}{g\_vfs\_softc}} *sc;}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00178}00178         \textcolor{keyword}{struct }\mbox{\hyperlink{structg__consumer}{g\_consumer}} *\mbox{\hyperlink{g__part__if_8m_a294f18324585ff37641fb8aa1c9ccd82}{cp}};}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00179}00179         \textcolor{keyword}{struct }bio *bip;}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00180}00180 }
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00181}00181         \mbox{\hyperlink{g__part__if_8m_a294f18324585ff37641fb8aa1c9ccd82}{cp}} = bo-\/>bo\_private;}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00182}00182         sc = \mbox{\hyperlink{g__part__if_8m_a294f18324585ff37641fb8aa1c9ccd82}{cp}}-\/>\mbox{\hyperlink{structg__consumer_a75734fc8cd22ffc4209c36cc0a459cba}{geom}}-\/>\mbox{\hyperlink{structg__geom_aa83c08c83459420f6cbcfe64c6099466}{softc}};}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00183}00183 }
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00184}00184         \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00185}00185 \textcolor{comment}{         * If the provider has orphaned us, just return ENXIO.}}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00186}00186 \textcolor{comment}{         */}}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00187}00187         mtx\_lock(\&sc-\/>\mbox{\hyperlink{structg__vfs__softc_a2df734f8eaaf0de14404061e21b6ff92}{sc\_mtx}});}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00188}00188         \textcolor{keywordflow}{if} (sc-\/>\mbox{\hyperlink{structg__vfs__softc_a4e56305b511fdbdaa17c107beef4aaba}{sc\_orphaned}} || sc-\/>\mbox{\hyperlink{structg__vfs__softc_a2710dafe3f0c80ff0b113456457a7cb8}{sc\_enxio\_active}}) \{}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00189}00189                 mtx\_unlock(\&sc-\/>\mbox{\hyperlink{structg__vfs__softc_a2df734f8eaaf0de14404061e21b6ff92}{sc\_mtx}});}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00190}00190                 \mbox{\hyperlink{g__part__if_8m_a3786db8db96c32f69df9f7cd325a7507}{bp}}-\/>b\_error = ENXIO;}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00191}00191                 \mbox{\hyperlink{g__part__if_8m_a3786db8db96c32f69df9f7cd325a7507}{bp}}-\/>b\_ioflags |= BIO\_ERROR;}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00192}00192                 bufdone(\mbox{\hyperlink{g__part__if_8m_a3786db8db96c32f69df9f7cd325a7507}{bp}});}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00193}00193                 \textcolor{keywordflow}{return};}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00194}00194         \}}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00195}00195         sc-\/>\mbox{\hyperlink{structg__vfs__softc_a054befd2c4ebf07dd44bd9e40eefafc9}{sc\_active}}++;}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00196}00196         mtx\_unlock(\&sc-\/>\mbox{\hyperlink{structg__vfs__softc_a2df734f8eaaf0de14404061e21b6ff92}{sc\_mtx}});}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00197}00197 }
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00198}00198         bip = \mbox{\hyperlink{geom_8h_ae13a6895af777c09cf19545f48517fe4}{g\_alloc\_bio}}();}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00199}00199         bip-\/>bio\_cmd = \mbox{\hyperlink{g__part__if_8m_a3786db8db96c32f69df9f7cd325a7507}{bp}}-\/>b\_iocmd;}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00200}00200         bip-\/>bio\_offset = \mbox{\hyperlink{g__part__if_8m_a3786db8db96c32f69df9f7cd325a7507}{bp}}-\/>b\_iooffset;}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00201}00201         bip-\/>bio\_length = \mbox{\hyperlink{g__part__if_8m_a3786db8db96c32f69df9f7cd325a7507}{bp}}-\/>b\_bcount;}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00202}00202         bdata2bio(\mbox{\hyperlink{g__part__if_8m_a3786db8db96c32f69df9f7cd325a7507}{bp}}, bip);}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00203}00203         \textcolor{keywordflow}{if} ((\mbox{\hyperlink{g__part__if_8m_a3786db8db96c32f69df9f7cd325a7507}{bp}}-\/>b\_flags \& B\_BARRIER) != 0) \{}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00204}00204                 bip-\/>bio\_flags |= BIO\_ORDERED;}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00205}00205                 \mbox{\hyperlink{g__part__if_8m_a3786db8db96c32f69df9f7cd325a7507}{bp}}-\/>b\_flags \&= \string~B\_BARRIER;}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00206}00206         \}}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00207}00207         \textcolor{keywordflow}{if} (\mbox{\hyperlink{g__part__if_8m_a3786db8db96c32f69df9f7cd325a7507}{bp}}-\/>b\_iocmd == BIO\_SPEEDUP)}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00208}00208                 bip-\/>bio\_flags |= \mbox{\hyperlink{g__part__if_8m_a3786db8db96c32f69df9f7cd325a7507}{bp}}-\/>b\_ioflags;}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00209}00209         bip-\/>bio\_done = \mbox{\hyperlink{geom__vfs_8c_a05764884351fcadc1edacdc7f7ba9b00}{g\_vfs\_done}};}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00210}00210         bip-\/>bio\_caller2 = \mbox{\hyperlink{g__part__if_8m_a3786db8db96c32f69df9f7cd325a7507}{bp}};}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00211}00211 \textcolor{preprocessor}{\#if defined(BUF\_TRACKING) || defined(FULL\_BUF\_TRACKING)}}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00212}00212         buf\_track(\mbox{\hyperlink{g__part__if_8m_a3786db8db96c32f69df9f7cd325a7507}{bp}}, \_\_func\_\_);}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00213}00213         bip-\/>bio\_track\_bp = \mbox{\hyperlink{g__part__if_8m_a3786db8db96c32f69df9f7cd325a7507}{bp}};}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00214}00214 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00215}00215         \mbox{\hyperlink{geom_8h_aa433c0ba9e8cad7c7da1f9e17b46eb7a}{g\_io\_request}}(bip, \mbox{\hyperlink{g__part__if_8m_a294f18324585ff37641fb8aa1c9ccd82}{cp}});}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00216}00216 \}}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00217}00217 }
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00218}00218 \textcolor{keyword}{static} \textcolor{keywordtype}{void}}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00219}\mbox{\hyperlink{geom__vfs_8c_a19461a2bd88ddf41e893fc47f5e39a29}{00219}} \mbox{\hyperlink{geom__vfs_8c_a7d0e01e6a4e242ff76e32c7e1508ed81}{g\_vfs\_orphan}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structg__consumer}{g\_consumer}} *\mbox{\hyperlink{g__part__if_8m_a294f18324585ff37641fb8aa1c9ccd82}{cp}})}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00220}00220 \{}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00221}00221         \textcolor{keyword}{struct }\mbox{\hyperlink{structg__geom}{g\_geom}} *\mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}};}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00222}00222         \textcolor{keyword}{struct }g\_event *\mbox{\hyperlink{g__raid__md__if_8m_a683a43faabf5ffc974caacd425b678d0}{event}};}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00223}00223         \textcolor{keyword}{struct }\mbox{\hyperlink{structg__vfs__softc}{g\_vfs\_softc}} *sc;}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00224}00224         \textcolor{keywordtype}{int} \mbox{\hyperlink{g__part__if_8m_a85a9aa693711f816b10573e83dd34a00}{destroy}};}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00225}00225 }
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00226}00226         \mbox{\hyperlink{geom_8h_a1898dc8c812faa5de231ab840e8562bf}{g\_topology\_assert}}();}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00227}00227 }
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00228}00228         \mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}} = \mbox{\hyperlink{g__part__if_8m_a294f18324585ff37641fb8aa1c9ccd82}{cp}}-\/>\mbox{\hyperlink{structg__consumer_a75734fc8cd22ffc4209c36cc0a459cba}{geom}};}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00229}00229         \mbox{\hyperlink{geom_8h_a7588d7ea7fbf7180b345df84b8797166}{g\_trace}}(\mbox{\hyperlink{geom_8h_a7f1804ff1a11f763a1ab5bdbd3e1287c}{G\_T\_TOPOLOGY}}, \textcolor{stringliteral}{"{}g\_vfs\_orphan(\%p(\%s))"{}}, \mbox{\hyperlink{g__part__if_8m_a294f18324585ff37641fb8aa1c9ccd82}{cp}}, \mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}}-\/>\mbox{\hyperlink{structg__geom_af64450500f1fea18f639b191a5017107}{name}});}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00230}00230         sc = \mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}}-\/>\mbox{\hyperlink{structg__geom_aa83c08c83459420f6cbcfe64c6099466}{softc}};}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00231}00231         \textcolor{keywordflow}{if} (sc == NULL)}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00232}00232                 \textcolor{keywordflow}{return};}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00233}00233         \textcolor{keyword}{event} = \mbox{\hyperlink{geom_8h_a2786a5bd64de1c7797827afe5784a292}{g\_alloc\_event}}(M\_WAITOK);}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00234}00234         mtx\_lock(\&sc-\/>\mbox{\hyperlink{structg__vfs__softc_a2df734f8eaaf0de14404061e21b6ff92}{sc\_mtx}});}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00235}00235         KASSERT(sc-\/>\mbox{\hyperlink{structg__vfs__softc_a8aed4af96adcbd13745d17bc84b1f9fc}{sc\_event}} == NULL, (\textcolor{stringliteral}{"{}g\_vfs \%p already has an event"{}}, sc));}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00236}00236         sc-\/>\mbox{\hyperlink{structg__vfs__softc_a4e56305b511fdbdaa17c107beef4aaba}{sc\_orphaned}} = 1;}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00237}00237         \mbox{\hyperlink{g__part__if_8m_a85a9aa693711f816b10573e83dd34a00}{destroy}} = (sc-\/>\mbox{\hyperlink{structg__vfs__softc_a054befd2c4ebf07dd44bd9e40eefafc9}{sc\_active}} == 0);}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00238}00238         \textcolor{keywordflow}{if} (!\mbox{\hyperlink{g__part__if_8m_a85a9aa693711f816b10573e83dd34a00}{destroy}}) \{}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00239}00239                 sc-\/>\mbox{\hyperlink{structg__vfs__softc_a8aed4af96adcbd13745d17bc84b1f9fc}{sc\_event}} = \mbox{\hyperlink{g__raid__md__if_8m_a683a43faabf5ffc974caacd425b678d0}{event}};}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00240}00240                 \textcolor{keyword}{event} = NULL;}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00241}00241         \}}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00242}00242         mtx\_unlock(\&sc-\/>\mbox{\hyperlink{structg__vfs__softc_a2df734f8eaaf0de14404061e21b6ff92}{sc\_mtx}});}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00243}00243         \textcolor{keywordflow}{if} (\mbox{\hyperlink{g__part__if_8m_a85a9aa693711f816b10573e83dd34a00}{destroy}}) \{}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00244}00244                 \mbox{\hyperlink{geom_8h_ad9924deb20de7b40cb6cf06e5ae28855}{g\_free}}(\mbox{\hyperlink{g__raid__md__if_8m_a683a43faabf5ffc974caacd425b678d0}{event}});}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00245}00245                 \mbox{\hyperlink{geom__vfs_8c_a38e4e3f593ae5c52ce664e3af9ab9501}{g\_vfs\_destroy}}(\mbox{\hyperlink{g__part__if_8m_a294f18324585ff37641fb8aa1c9ccd82}{cp}}, 0);}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00246}00246         \}}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00247}00247 }
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00248}00248         \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00249}00249 \textcolor{comment}{         * Do not destroy the geom.  Filesystem will do that during unmount.}}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00250}00250 \textcolor{comment}{         */}}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00251}00251 \}}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00252}00252 }
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00253}00253 \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00254}\mbox{\hyperlink{geom__vfs_8c_a70f2a814f4bd7d6569d29cb06fc0c14e}{00254}} \mbox{\hyperlink{geom__vfs_8c_a70f2a814f4bd7d6569d29cb06fc0c14e}{g\_vfs\_open}}(\textcolor{keyword}{struct} vnode *vp, \textcolor{keyword}{struct} \mbox{\hyperlink{structg__consumer}{g\_consumer}} **cpp, \textcolor{keyword}{const} \textcolor{keywordtype}{char} *fsname, \textcolor{keywordtype}{int} wr)}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00255}00255 \{}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00256}00256         \textcolor{keyword}{struct }\mbox{\hyperlink{structg__geom}{g\_geom}} *\mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}};}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00257}00257         \textcolor{keyword}{struct }\mbox{\hyperlink{structg__provider}{g\_provider}} *\mbox{\hyperlink{g__part__if_8m_a9bc7638f295763b77465c5ebebbd3442}{pp}};}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00258}00258         \textcolor{keyword}{struct }\mbox{\hyperlink{structg__consumer}{g\_consumer}} *\mbox{\hyperlink{g__part__if_8m_a294f18324585ff37641fb8aa1c9ccd82}{cp}};}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00259}00259         \textcolor{keyword}{struct }\mbox{\hyperlink{structg__vfs__softc}{g\_vfs\_softc}} *sc;}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00260}00260         \textcolor{keyword}{struct }bufobj *bo;}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00261}00261         \textcolor{keywordtype}{int} error;}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00262}00262 }
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00263}00263         \mbox{\hyperlink{geom_8h_a1898dc8c812faa5de231ab840e8562bf}{g\_topology\_assert}}();}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00264}00264 }
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00265}00265         *cpp = NULL;}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00266}00266         bo = \&vp-\/>v\_bufobj;}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00267}00267         \textcolor{keywordflow}{if} (bo-\/>bo\_private != vp)}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00268}00268                 \textcolor{keywordflow}{return} (EBUSY);}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00269}00269 }
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00270}00270         \mbox{\hyperlink{g__part__if_8m_a9bc7638f295763b77465c5ebebbd3442}{pp}} = \mbox{\hyperlink{geom_8h_a1d9b8b20a3f4f0ce02bbbfca3fede177}{g\_dev\_getprovider}}(vp-\/>v\_rdev);}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00271}00271         \textcolor{keywordflow}{if} (\mbox{\hyperlink{g__part__if_8m_a9bc7638f295763b77465c5ebebbd3442}{pp}} == NULL)}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00272}00272                 \textcolor{keywordflow}{return} (ENOENT);}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00273}00273         \mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}} = \mbox{\hyperlink{geom_8h_a4000befe2ff4b405b8333ccc5b0fdb41}{g\_new\_geomf}}(\&\mbox{\hyperlink{geom__vfs_8c_a0d6db01d47a1b8b68da44462d6b727d7}{g\_vfs\_class}}, \textcolor{stringliteral}{"{}\%s.\%s"{}}, fsname, \mbox{\hyperlink{g__part__if_8m_a9bc7638f295763b77465c5ebebbd3442}{pp}}-\/>\mbox{\hyperlink{structg__provider_a2bffb416ee58cf4df7839c6fd5ec004a}{name}});}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00274}00274         sc = \mbox{\hyperlink{geom_8h_a0f190247baa73dc863a79fea9d5f6b4f}{g\_malloc}}(\textcolor{keyword}{sizeof}(*sc), M\_WAITOK | M\_ZERO);}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00275}00275         mtx\_init(\&sc-\/>\mbox{\hyperlink{structg__vfs__softc_a2df734f8eaaf0de14404061e21b6ff92}{sc\_mtx}}, \textcolor{stringliteral}{"{}g\_vfs"{}}, NULL, MTX\_DEF);}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00276}00276         sc-\/>\mbox{\hyperlink{structg__vfs__softc_a8aa100efbae3b658c636467271bdc716}{sc\_bo}} = bo;}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00277}00277         \mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}}-\/>\mbox{\hyperlink{structg__geom_aa83c08c83459420f6cbcfe64c6099466}{softc}} = sc;}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00278}00278         \mbox{\hyperlink{g__part__if_8m_a294f18324585ff37641fb8aa1c9ccd82}{cp}} = \mbox{\hyperlink{geom_8h_aef9ca3f0eecc1b245c3c9cd0bac1cdc4}{g\_new\_consumer}}(\mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}});}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00279}00279         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{geom__vfs_8c_source_l00280}00280         \textcolor{keywordflow}{if} (error) \{}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00281}00281                 \mbox{\hyperlink{geom_8h_a87a0eb5de79ed5e49fcfec012f213c9b}{g\_wither\_geom}}(\mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}}, ENXIO);}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00282}00282                 \textcolor{keywordflow}{return} (error);}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00283}00283         \}}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00284}00284         error = \mbox{\hyperlink{geom_8h_a27b7c72cc3bc5a4d07ce5976e1aa1b58}{g\_access}}(\mbox{\hyperlink{g__part__if_8m_a294f18324585ff37641fb8aa1c9ccd82}{cp}}, 1, wr, wr);}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00285}00285         \textcolor{keywordflow}{if} (error) \{}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00286}00286                 \mbox{\hyperlink{geom_8h_a87a0eb5de79ed5e49fcfec012f213c9b}{g\_wither\_geom}}(\mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}}, ENXIO);}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00287}00287                 \textcolor{keywordflow}{return} (error);}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00288}00288         \}}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00289}00289         vnode\_create\_vobject(vp, \mbox{\hyperlink{g__part__if_8m_a9bc7638f295763b77465c5ebebbd3442}{pp}}-\/>\mbox{\hyperlink{structg__provider_a8f47c464c78aa91fa4ca5143ed3cd15e}{mediasize}}, curthread);}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00290}00290         *cpp = \mbox{\hyperlink{g__part__if_8m_a294f18324585ff37641fb8aa1c9ccd82}{cp}};}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00291}00291         \mbox{\hyperlink{g__part__if_8m_a294f18324585ff37641fb8aa1c9ccd82}{cp}}-\/>\mbox{\hyperlink{structg__consumer_a11273c1281d0cffbc3383eb4e49e7010}{private}} = vp;}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00292}00292         \mbox{\hyperlink{g__part__if_8m_a294f18324585ff37641fb8aa1c9ccd82}{cp}}-\/>\mbox{\hyperlink{structg__consumer_acf792357913c0445233b71f8259764d9}{flags}} |= \mbox{\hyperlink{geom_8h_a712586d00e1fe2a8069adfc048fee210}{G\_CF\_DIRECT\_SEND}} | \mbox{\hyperlink{geom_8h_a2184f2512ddb7a67ddbb71409cdd953f}{G\_CF\_DIRECT\_RECEIVE}};}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00293}00293         bo-\/>bo\_ops = \mbox{\hyperlink{geom__vfs_8c_a0cf81ab14b21cf6660e0adc0deb7e9c5}{g\_vfs\_bufops}};}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00294}00294         bo-\/>bo\_private = \mbox{\hyperlink{g__part__if_8m_a294f18324585ff37641fb8aa1c9ccd82}{cp}};}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00295}00295         bo-\/>bo\_bsize = \mbox{\hyperlink{g__part__if_8m_a9bc7638f295763b77465c5ebebbd3442}{pp}}-\/>\mbox{\hyperlink{structg__provider_aea3cd43d41461790b8d0afcd8c49a355}{sectorsize}};}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00296}00296 }
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00297}00297         \textcolor{keywordflow}{return} (error);}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00298}00298 \}}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00299}00299 }
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00300}00300 \textcolor{keywordtype}{void}}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00301}\mbox{\hyperlink{geom__vfs_8c_a280dc7f7813b97ac719da0932948736d}{00301}} \mbox{\hyperlink{geom__vfs_8c_a280dc7f7813b97ac719da0932948736d}{g\_vfs\_close}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structg__consumer}{g\_consumer}} *\mbox{\hyperlink{g__part__if_8m_a294f18324585ff37641fb8aa1c9ccd82}{cp}})}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00302}00302 \{}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00303}00303         \textcolor{keyword}{struct }\mbox{\hyperlink{structg__geom}{g\_geom}} *\mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}};}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00304}00304         \textcolor{keyword}{struct }\mbox{\hyperlink{structg__vfs__softc}{g\_vfs\_softc}} *sc;}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00305}00305 }
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00306}00306         \mbox{\hyperlink{geom_8h_a1898dc8c812faa5de231ab840e8562bf}{g\_topology\_assert}}();}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00307}00307 }
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00308}00308         \mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}} = \mbox{\hyperlink{g__part__if_8m_a294f18324585ff37641fb8aa1c9ccd82}{cp}}-\/>\mbox{\hyperlink{structg__consumer_a75734fc8cd22ffc4209c36cc0a459cba}{geom}};}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00309}00309         sc = \mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}}-\/>\mbox{\hyperlink{structg__geom_aa83c08c83459420f6cbcfe64c6099466}{softc}};}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00310}00310         bufobj\_invalbuf(sc-\/>\mbox{\hyperlink{structg__vfs__softc_a8aa100efbae3b658c636467271bdc716}{sc\_bo}}, V\_SAVE, 0, 0);}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00311}00311         sc-\/>\mbox{\hyperlink{structg__vfs__softc_a8aa100efbae3b658c636467271bdc716}{sc\_bo}}-\/>bo\_private = \mbox{\hyperlink{g__part__if_8m_a294f18324585ff37641fb8aa1c9ccd82}{cp}}-\/>\mbox{\hyperlink{structg__consumer_a11273c1281d0cffbc3383eb4e49e7010}{private}};}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00312}00312         \mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}}-\/>\mbox{\hyperlink{structg__geom_aa83c08c83459420f6cbcfe64c6099466}{softc}} = NULL;}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00313}00313         mtx\_destroy(\&sc-\/>\mbox{\hyperlink{structg__vfs__softc_a2df734f8eaaf0de14404061e21b6ff92}{sc\_mtx}});}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00314}00314         \textcolor{keywordflow}{if} (!sc-\/>\mbox{\hyperlink{structg__vfs__softc_a4e56305b511fdbdaa17c107beef4aaba}{sc\_orphaned}} || \mbox{\hyperlink{g__part__if_8m_a294f18324585ff37641fb8aa1c9ccd82}{cp}}-\/>\mbox{\hyperlink{structg__consumer_a6435d5aec0376e995dce3131fd3beb52}{provider}} == NULL)}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00315}00315                 \mbox{\hyperlink{geom_8h_aaece117b5942668569beb7cdfc441381}{g\_wither\_geom\_close}}(\mbox{\hyperlink{g__part__if_8m_abdc908a08b24cd2e589de2f44e40eeb9}{gp}}, ENXIO);}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00316}00316         KASSERT(sc-\/>\mbox{\hyperlink{structg__vfs__softc_a8aed4af96adcbd13745d17bc84b1f9fc}{sc\_event}} == NULL, (\textcolor{stringliteral}{"{}g\_vfs \%p event is non-\/NULL"{}}, sc));}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00317}00317         \mbox{\hyperlink{geom_8h_ad9924deb20de7b40cb6cf06e5ae28855}{g\_free}}(sc);}
\DoxyCodeLine{\Hypertarget{geom__vfs_8c_source_l00318}00318 \}}

\end{DoxyCode}
