\hypertarget{vfs__default_8c_source}{}\doxysection{vfs\+\_\+default.\+c}
\label{vfs__default_8c_source}\index{kern/vfs\_default.c@{kern/vfs\_default.c}}
\mbox{\hyperlink{vfs__default_8c}{Go to the documentation of this file.}}
\begin{DoxyCode}{0}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00001}00001 \textcolor{comment}{/*-\/}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00002}00002 \textcolor{comment}{ * SPDX-\/License-\/Identifier: BSD-\/3-\/Clause}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00003}00003 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00004}00004 \textcolor{comment}{ * Copyright (c) 1989, 1993}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00005}00005 \textcolor{comment}{ *      The Regents of the University of California.  All rights reserved.}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00006}00006 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00007}00007 \textcolor{comment}{ * This code is derived from software contributed}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00008}00008 \textcolor{comment}{ * to Berkeley by John Heidemann of the UCLA Ficus project.}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00009}00009 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00010}00010 \textcolor{comment}{ * Source: * @(\#)i405\_init.c 2.10 92/04/27 UCLA Ficus project}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00011}00011 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00012}00012 \textcolor{comment}{ * Redistribution and use in source and binary forms, with or without}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00013}00013 \textcolor{comment}{ * modification, are permitted provided that the following conditions}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00014}00014 \textcolor{comment}{ * are met:}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00015}00015 \textcolor{comment}{ * 1. Redistributions of source code must retain the above copyright}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00016}00016 \textcolor{comment}{ *    notice, this list of conditions and the following disclaimer.}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00017}00017 \textcolor{comment}{ * 2. Redistributions in binary form must reproduce the above copyright}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00018}00018 \textcolor{comment}{ *    notice, this list of conditions and the following disclaimer in the}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00019}00019 \textcolor{comment}{ *    documentation and/or other materials provided with the distribution.}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00020}00020 \textcolor{comment}{ * 3. Neither the name of the University nor the names of its contributors}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00021}00021 \textcolor{comment}{ *    may be used to endorse or promote products derived from this software}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00022}00022 \textcolor{comment}{ *    without specific prior written permission.}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00023}00023 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00024}00024 \textcolor{comment}{ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00025}00025 \textcolor{comment}{ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00026}00026 \textcolor{comment}{ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00027}00027 \textcolor{comment}{ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00028}00028 \textcolor{comment}{ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00029}00029 \textcolor{comment}{ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00030}00030 \textcolor{comment}{ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00031}00031 \textcolor{comment}{ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00032}00032 \textcolor{comment}{ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00033}00033 \textcolor{comment}{ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00034}00034 \textcolor{comment}{ * SUCH DAMAGE.}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00035}00035 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00036}00036 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00037}00037 \textcolor{preprocessor}{\#include <sys/cdefs.h>}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00038}\mbox{\hyperlink{vfs__default_8c_a8c3ef283470a68cd30afe9b8a72cb60f}{00038}} \mbox{\hyperlink{vfs__default_8c_a8c3ef283470a68cd30afe9b8a72cb60f}{\_\_FBSDID}}(\textcolor{stringliteral}{"{}\$FreeBSD\$"{}});}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00039}00039 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00040}00040 \textcolor{preprocessor}{\#include <sys/param.h>}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00041}00041 \textcolor{preprocessor}{\#include <sys/systm.h>}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00042}00042 \textcolor{preprocessor}{\#include <sys/bio.h>}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00043}00043 \textcolor{preprocessor}{\#include <sys/buf.h>}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00044}00044 \textcolor{preprocessor}{\#include <sys/conf.h>}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00045}00045 \textcolor{preprocessor}{\#include <sys/event.h>}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00046}00046 \textcolor{preprocessor}{\#include <sys/filio.h>}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00047}00047 \textcolor{preprocessor}{\#include <sys/kernel.h>}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00048}00048 \textcolor{preprocessor}{\#include <sys/limits.h>}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00049}00049 \textcolor{preprocessor}{\#include <sys/lock.h>}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00050}00050 \textcolor{preprocessor}{\#include <sys/lockf.h>}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00051}00051 \textcolor{preprocessor}{\#include <sys/malloc.h>}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00052}00052 \textcolor{preprocessor}{\#include <sys/mount.h>}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00053}00053 \textcolor{preprocessor}{\#include <sys/namei.h>}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00054}00054 \textcolor{preprocessor}{\#include <sys/rwlock.h>}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00055}00055 \textcolor{preprocessor}{\#include <sys/fcntl.h>}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00056}00056 \textcolor{preprocessor}{\#include <sys/unistd.h>}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00057}00057 \textcolor{preprocessor}{\#include <sys/vnode.h>}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00058}00058 \textcolor{preprocessor}{\#include <sys/dirent.h>}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00059}00059 \textcolor{preprocessor}{\#include <sys/poll.h>}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00060}00060 \textcolor{preprocessor}{\#include <sys/stat.h>}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00061}00061 \textcolor{preprocessor}{\#include <security/audit/audit.h>}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00062}00062 \textcolor{preprocessor}{\#include <sys/priv.h>}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00063}00063 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00064}00064 \textcolor{preprocessor}{\#include <security/mac/mac\_framework.h>}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00065}00065 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00066}00066 \textcolor{preprocessor}{\#include <vm/vm.h>}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00067}00067 \textcolor{preprocessor}{\#include <vm/vm\_object.h>}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00068}00068 \textcolor{preprocessor}{\#include <vm/vm\_extern.h>}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00069}00069 \textcolor{preprocessor}{\#include <vm/pmap.h>}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00070}00070 \textcolor{preprocessor}{\#include <vm/vm\_map.h>}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00071}00071 \textcolor{preprocessor}{\#include <vm/vm\_page.h>}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00072}00072 \textcolor{preprocessor}{\#include <vm/vm\_pager.h>}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00073}00073 \textcolor{preprocessor}{\#include <vm/vnode\_pager.h>}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00074}00074 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00075}00075 \textcolor{keyword}{static} \textcolor{keywordtype}{int}      \mbox{\hyperlink{vfs__default_8c_ac835431416404fb63cb379dd2cb71600}{vop\_nolookup}}(\textcolor{keyword}{struct} vop\_lookup\_args *);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00076}00076 \textcolor{keyword}{static} \textcolor{keywordtype}{int}      \mbox{\hyperlink{vfs__default_8c_a4b0b1b313e83c8bc8e6b50e2f40edebc}{vop\_norename}}(\textcolor{keyword}{struct} vop\_rename\_args *);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00077}00077 \textcolor{keyword}{static} \textcolor{keywordtype}{int}      \mbox{\hyperlink{vfs__default_8c_a4c129495ca894bcfe04673ad3a66ce9a}{vop\_nostrategy}}(\textcolor{keyword}{struct} vop\_strategy\_args *);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00078}00078 \textcolor{keyword}{static} \textcolor{keywordtype}{int}      \mbox{\hyperlink{vfs__default_8c_a960c25a4094100b1724f2e2da6e63640}{get\_next\_dirent}}(\textcolor{keyword}{struct} vnode *vp, \textcolor{keyword}{struct} dirent **dpp,}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00079}00079                                 \textcolor{keywordtype}{char} *dirbuf, \textcolor{keywordtype}{int} dirbuflen, off\_t *off,}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00080}00080                                 \textcolor{keywordtype}{char} **cpos, \textcolor{keywordtype}{int} *len, \textcolor{keywordtype}{int} *eofflag,}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00081}00081                                 \textcolor{keyword}{struct} thread *td);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00082}00082 \textcolor{keyword}{static} \textcolor{keywordtype}{int}      \mbox{\hyperlink{vfs__default_8c_adc67074416d00080f9b18f5be13d75d8}{dirent\_exists}}(\textcolor{keyword}{struct} vnode *vp, \textcolor{keyword}{const} \textcolor{keywordtype}{char} *dirname,}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00083}00083                               \textcolor{keyword}{struct} thread *td);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00084}00084 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00085}\mbox{\hyperlink{vfs__default_8c_a63d0b0301bedeeddefca96510001c618}{00085}} \textcolor{preprocessor}{\#define DIRENT\_MINSIZE (sizeof(struct dirent) -\/ (MAXNAMLEN+1) + 4)}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00086}00086 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00087}00087 \textcolor{keyword}{static} \textcolor{keywordtype}{int} \mbox{\hyperlink{vfs__default_8c_aebd2c8922cf43d9ed1f7e73197456cd8}{vop\_stdis\_text}}(\textcolor{keyword}{struct} vop\_is\_text\_args *ap);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00088}00088 \textcolor{keyword}{static} \textcolor{keywordtype}{int} \mbox{\hyperlink{vfs__default_8c_a2c11d46dbc987a8e138ceb50dc738cb8}{vop\_stdunset\_text}}(\textcolor{keyword}{struct} vop\_unset\_text\_args *ap);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00089}00089 \textcolor{keyword}{static} \textcolor{keywordtype}{int} \mbox{\hyperlink{vfs__default_8c_a5a177219f084e6602f9b409ee2b40919}{vop\_stdadd\_writecount}}(\textcolor{keyword}{struct} vop\_add\_writecount\_args *ap);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00090}00090 \textcolor{keyword}{static} \textcolor{keywordtype}{int} \mbox{\hyperlink{vfs__default_8c_a85d60cd828de2afd41e2cd74d0f64289}{vop\_stdcopy\_file\_range}}(\textcolor{keyword}{struct} vop\_copy\_file\_range\_args *ap);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00091}00091 \textcolor{keyword}{static} \textcolor{keywordtype}{int} \mbox{\hyperlink{vfs__default_8c_afba7872a6d2673d9e280461025d452ef}{vop\_stdfdatasync}}(\textcolor{keyword}{struct} vop\_fdatasync\_args *ap);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00092}00092 \textcolor{keyword}{static} \textcolor{keywordtype}{int} \mbox{\hyperlink{vfs__default_8c_a262285d33895babb037e9e0e05db7900}{vop\_stdgetpages\_async}}(\textcolor{keyword}{struct} vop\_getpages\_async\_args *ap);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00093}\mbox{\hyperlink{vfs__default_8c_a5c766d29b8f7133e8e0f62d918605f50}{00093}} \textcolor{keyword}{static} \textcolor{keywordtype}{int} \mbox{\hyperlink{vfs__default_8c_a5c766d29b8f7133e8e0f62d918605f50}{vop\_stdread\_pgcache}}(\textcolor{keyword}{struct} vop\_read\_pgcache\_args *ap);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00094}00094 \textcolor{keyword}{static} \textcolor{keywordtype}{int} \mbox{\hyperlink{vfs__default_8c_a2541a61b4895bfa0fa086297c8c0a5e0}{vop\_stdstat}}(\textcolor{keyword}{struct} vop\_stat\_args *ap);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00095}00095 \textcolor{keyword}{static} \textcolor{keywordtype}{int} \mbox{\hyperlink{vfs__default_8c_a4e5d948f249d18c0829a36831c86e908}{vop\_stdvput\_pair}}(\textcolor{keyword}{struct} vop\_vput\_pair\_args *ap);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00096}00096 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00097}00097 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00098}00098 \textcolor{comment}{ * This vnode table stores what we want to do if the filesystem doesn't}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00099}00099 \textcolor{comment}{ * implement a particular VOP.}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00100}00100 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00101}00101 \textcolor{comment}{ * If there is no specific entry here, we will return EOPNOTSUPP.}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00102}00102 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00103}00103 \textcolor{comment}{ * Note that every filesystem has to implement either vop\_access}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00104}00104 \textcolor{comment}{ * or vop\_accessx; failing to do so will result in immediate crash}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00105}00105 \textcolor{comment}{ * due to stack overflow, as vop\_stdaccess() calls vop\_stdaccessx(),}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00106}00106 \textcolor{comment}{ * which calls vop\_stdaccess() etc.}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00107}00107 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00108}00108 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00109}\mbox{\hyperlink{vfs__default_8c_a13797e00c7a2638edd44997d6c45f115}{00109}} \textcolor{keyword}{struct }vop\_vector \mbox{\hyperlink{vfs__default_8c_a13797e00c7a2638edd44997d6c45f115}{default\_vnodeops}} = \{}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00110}00110         .vop\_default =          NULL,}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00111}00111         .vop\_bypass =           VOP\_EOPNOTSUPP,}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00112}00112 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00113}00113         .vop\_access =           \mbox{\hyperlink{vfs__default_8c_adb1a2727f48e062d970756b30a5a143a}{vop\_stdaccess}},}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00114}00114         .vop\_accessx =          \mbox{\hyperlink{vfs__default_8c_a79e4b940e52fdab9e7ec7af4889d5db8}{vop\_stdaccessx}},}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00115}00115         .vop\_advise =           \mbox{\hyperlink{vfs__default_8c_a37848f85f6f23673141ea63e9f6b4baa}{vop\_stdadvise}},}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00116}00116         .vop\_advlock =          \mbox{\hyperlink{vfs__default_8c_acd4b8cf2853d4099427e9a1e03486235}{vop\_stdadvlock}},}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00117}00117         .vop\_advlockasync =     \mbox{\hyperlink{vfs__default_8c_ad5ea750c8ad4921fb5a6068e7a818902}{vop\_stdadvlockasync}},}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00118}00118         .vop\_advlockpurge =     \mbox{\hyperlink{vfs__default_8c_a571f697f6567e1f438c417346a9eeaf3}{vop\_stdadvlockpurge}},}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00119}00119         .vop\_allocate =         \mbox{\hyperlink{vfs__default_8c_a0450602274d333979034e6821660d524}{vop\_stdallocate}},}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00120}00120         .vop\_deallocate =       \mbox{\hyperlink{vfs__default_8c_ad9ce248e5d20f3c991fd92d3952b36ca}{vop\_stddeallocate}},}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00121}00121         .vop\_bmap =             \mbox{\hyperlink{vfs__default_8c_a26acb9d2e3d99437bfc033e653745e55}{vop\_stdbmap}},}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00122}00122         .vop\_close =            VOP\_NULL,}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00123}00123         .vop\_fsync =            VOP\_NULL,}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00124}00124         .vop\_stat =             \mbox{\hyperlink{vfs__default_8c_a2541a61b4895bfa0fa086297c8c0a5e0}{vop\_stdstat}},}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00125}00125         .vop\_fdatasync =        \mbox{\hyperlink{vfs__default_8c_afba7872a6d2673d9e280461025d452ef}{vop\_stdfdatasync}},}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00126}00126         .vop\_getpages =         \mbox{\hyperlink{vfs__default_8c_a006b1e7c4c06b04dcaec3b93ec385e8a}{vop\_stdgetpages}},}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00127}00127         .vop\_getpages\_async =   \mbox{\hyperlink{vfs__default_8c_a262285d33895babb037e9e0e05db7900}{vop\_stdgetpages\_async}},}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00128}00128         .vop\_getwritemount =    \mbox{\hyperlink{vfs__default_8c_a751b40f4940f20476bc02f27019d25a0}{vop\_stdgetwritemount}},}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00129}00129         .vop\_inactive =         VOP\_NULL,}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00130}00130         .vop\_need\_inactive =    \mbox{\hyperlink{vfs__default_8c_ad992d019a1fe6360512698eaa8a64d1d}{vop\_stdneed\_inactive}},}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00131}00131         .vop\_ioctl =            \mbox{\hyperlink{vfs__default_8c_a152c261225161ef93ce889a0fbb5c6fa}{vop\_stdioctl}},}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00132}00132         .vop\_kqfilter =         \mbox{\hyperlink{vfs__default_8c_a48505df49f0be5980358ea6e621bb283}{vop\_stdkqfilter}},}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00133}00133         .vop\_islocked =         \mbox{\hyperlink{vfs__default_8c_a46ac9697ed8014d969d947d54951eeb3}{vop\_stdislocked}},}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00134}00134         .vop\_lock1 =            \mbox{\hyperlink{vfs__default_8c_acb7915e5925700b3133351bd02848592}{vop\_stdlock}},}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00135}00135         .vop\_lookup =           \mbox{\hyperlink{vfs__default_8c_ac835431416404fb63cb379dd2cb71600}{vop\_nolookup}},}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00136}00136         .vop\_open =             VOP\_NULL,}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00137}00137         .vop\_pathconf =         VOP\_EINVAL,}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00138}00138         .vop\_poll =             \mbox{\hyperlink{vfs__default_8c_ae22d1057ee1e79b88861b315ef5b7d86}{vop\_nopoll}},}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00139}00139         .vop\_putpages =         \mbox{\hyperlink{vfs__default_8c_a96f3edda4c965e8cc63b8fdc9596c695}{vop\_stdputpages}},}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00140}00140         .vop\_readlink =         VOP\_EINVAL,}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00141}00141         .vop\_read\_pgcache =     \mbox{\hyperlink{vfs__default_8c_a5c766d29b8f7133e8e0f62d918605f50}{vop\_stdread\_pgcache}},}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00142}00142         .vop\_rename =           \mbox{\hyperlink{vfs__default_8c_a4b0b1b313e83c8bc8e6b50e2f40edebc}{vop\_norename}},}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00143}00143         .vop\_revoke =           VOP\_PANIC,}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00144}00144         .vop\_strategy =         \mbox{\hyperlink{vfs__default_8c_a4c129495ca894bcfe04673ad3a66ce9a}{vop\_nostrategy}},}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00145}00145         .vop\_unlock =           \mbox{\hyperlink{vfs__default_8c_a63344e78ef225298e5e91abd111b424d}{vop\_stdunlock}},}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00146}00146         .vop\_vptocnp =          \mbox{\hyperlink{vfs__default_8c_a066e9011d0aedd50619edd1a01931012}{vop\_stdvptocnp}},}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00147}00147         .vop\_vptofh =           \mbox{\hyperlink{vfs__default_8c_aac54c67411a87a6c069b641b6dedf878}{vop\_stdvptofh}},}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00148}00148         .vop\_unp\_bind =         \mbox{\hyperlink{vfs__default_8c_a45a893d39d7c11a793a852d03553f209}{vop\_stdunp\_bind}},}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00149}00149         .vop\_unp\_connect =      \mbox{\hyperlink{vfs__default_8c_abb89d86dea801cf1d1db97617577b0c8}{vop\_stdunp\_connect}},}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00150}00150         .vop\_unp\_detach =       \mbox{\hyperlink{vfs__default_8c_ac1a973320be7e518d82d64615ef81044}{vop\_stdunp\_detach}},}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00151}00151         .vop\_is\_text =          \mbox{\hyperlink{vfs__default_8c_aebd2c8922cf43d9ed1f7e73197456cd8}{vop\_stdis\_text}},}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00152}00152         .vop\_set\_text =         \mbox{\hyperlink{vfs__default_8c_a2d0b8fff542e9bac38bc40397c391417}{vop\_stdset\_text}},}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00153}00153         .vop\_unset\_text =       \mbox{\hyperlink{vfs__default_8c_a2c11d46dbc987a8e138ceb50dc738cb8}{vop\_stdunset\_text}},}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00154}00154         .vop\_add\_writecount =   \mbox{\hyperlink{vfs__default_8c_a5a177219f084e6602f9b409ee2b40919}{vop\_stdadd\_writecount}},}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00155}00155         .vop\_copy\_file\_range =  \mbox{\hyperlink{vfs__default_8c_a85d60cd828de2afd41e2cd74d0f64289}{vop\_stdcopy\_file\_range}},}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00156}00156         .vop\_vput\_pair =        \mbox{\hyperlink{vfs__default_8c_a4e5d948f249d18c0829a36831c86e908}{vop\_stdvput\_pair}},}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00157}00157 \};}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00158}\mbox{\hyperlink{vfs__default_8c_a68b9991016358820991bcb2100af7708}{00158}} \mbox{\hyperlink{vfs__default_8c_a68b9991016358820991bcb2100af7708}{VFS\_VOP\_VECTOR\_REGISTER}}(\mbox{\hyperlink{vfs__default_8c_a13797e00c7a2638edd44997d6c45f115}{default\_vnodeops}});}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00159}00159 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00160}00160 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00161}00161 \textcolor{comment}{ * Series of placeholder functions for various error returns for}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00162}00162 \textcolor{comment}{ * VOPs.}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00163}00163 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00164}00164 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00165}00165 \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00166}\mbox{\hyperlink{vfs__default_8c_a55843b42e31e8a7f647d879bfe75d318}{00166}} \mbox{\hyperlink{vfs__default_8c_a55843b42e31e8a7f647d879bfe75d318}{vop\_eopnotsupp}}(\textcolor{keyword}{struct} vop\_generic\_args *ap)}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00167}00167 \{}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00168}00168         \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00169}00169 \textcolor{comment}{        printf("{}vop\_notsupp[\%s]\(\backslash\)n"{}, ap-\/>a\_desc-\/>vdesc\_name);}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00170}00170 \textcolor{comment}{        */}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00171}00171 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00172}00172         \textcolor{keywordflow}{return} (EOPNOTSUPP);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00173}00173 \}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00174}00174 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00175}00175 \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00176}\mbox{\hyperlink{vfs__default_8c_a15460a76133fc1b609715696b0aa2025}{00176}} \mbox{\hyperlink{vfs__default_8c_a15460a76133fc1b609715696b0aa2025}{vop\_ebadf}}(\textcolor{keyword}{struct} vop\_generic\_args *ap)}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00177}00177 \{}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00178}00178 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00179}00179         \textcolor{keywordflow}{return} (EBADF);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00180}00180 \}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00181}00181 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00182}00182 \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00183}\mbox{\hyperlink{vfs__default_8c_ab103aa7f1f03b7b37d2893b1af290f1b}{00183}} \mbox{\hyperlink{vfs__default_8c_ab103aa7f1f03b7b37d2893b1af290f1b}{vop\_enotty}}(\textcolor{keyword}{struct} vop\_generic\_args *ap)}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00184}00184 \{}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00185}00185 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00186}00186         \textcolor{keywordflow}{return} (ENOTTY);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00187}00187 \}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00188}00188 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00189}00189 \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00190}\mbox{\hyperlink{vfs__default_8c_ab7146d54c17179f70e81635c1b35dc50}{00190}} \mbox{\hyperlink{vfs__default_8c_ab7146d54c17179f70e81635c1b35dc50}{vop\_einval}}(\textcolor{keyword}{struct} vop\_generic\_args *ap)}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00191}00191 \{}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00192}00192 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00193}00193         \textcolor{keywordflow}{return} (EINVAL);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00194}00194 \}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00195}00195 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00196}00196 \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00197}\mbox{\hyperlink{vfs__default_8c_ae8c7ad4c243c63a5b1516cf7665e7dad}{00197}} \mbox{\hyperlink{vfs__default_8c_ae8c7ad4c243c63a5b1516cf7665e7dad}{vop\_enoent}}(\textcolor{keyword}{struct} vop\_generic\_args *ap)}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00198}00198 \{}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00199}00199 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00200}00200         \textcolor{keywordflow}{return} (ENOENT);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00201}00201 \}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00202}00202 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00203}00203 \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00204}\mbox{\hyperlink{vfs__default_8c_acbf46a4d6b761eb2b394f42ef94d7c57}{00204}} \mbox{\hyperlink{vfs__default_8c_acbf46a4d6b761eb2b394f42ef94d7c57}{vop\_eagain}}(\textcolor{keyword}{struct} vop\_generic\_args *ap)}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00205}00205 \{}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00206}00206 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00207}00207         \textcolor{keywordflow}{return} (EAGAIN);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00208}00208 \}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00209}00209 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00210}00210 \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00211}\mbox{\hyperlink{vfs__default_8c_a5289d57b627e70af1fbf41e37639fd1d}{00211}} \mbox{\hyperlink{vfs__default_8c_a5289d57b627e70af1fbf41e37639fd1d}{vop\_null}}(\textcolor{keyword}{struct} vop\_generic\_args *ap)}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00212}00212 \{}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00213}00213 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00214}00214         \textcolor{keywordflow}{return} (0);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00215}00215 \}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00216}00216 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00217}00217 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00218}00218 \textcolor{comment}{ * Helper function to panic on some bad VOPs in some filesystems.}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00219}00219 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00220}00220 \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00221}\mbox{\hyperlink{vfs__default_8c_accfd2df8e0c05d24cd2d719fe8b5f20f}{00221}} \mbox{\hyperlink{vfs__default_8c_accfd2df8e0c05d24cd2d719fe8b5f20f}{vop\_panic}}(\textcolor{keyword}{struct} vop\_generic\_args *ap)}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00222}00222 \{}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00223}00223 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00224}00224         \mbox{\hyperlink{kern__shutdown_8c_ad1f1a1dc0581a11b597453f148106393}{panic}}(\textcolor{stringliteral}{"{}filesystem goof: vop\_panic[\%s]"{}}, ap-\/>a\_desc-\/>vdesc\_name);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00225}00225 \}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00226}00226 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00227}00227 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00228}00228 \textcolor{comment}{ * vop\_std<something> and vop\_no<something> are default functions for use by}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00229}00229 \textcolor{comment}{ * filesystems that need the "{}default reasonable"{} implementation for a}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00230}00230 \textcolor{comment}{ * particular operation.}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00231}00231 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00232}00232 \textcolor{comment}{ * The documentation for the operations they implement exists (if it exists)}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00233}00233 \textcolor{comment}{ * in the VOP\_<SOMETHING>(9) manpage (all uppercase).}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00234}00234 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00235}00235 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00236}00236 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00237}00237 \textcolor{comment}{ * Default vop for filesystems that do not support name lookup}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00238}00238 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00239}00239 \textcolor{keyword}{static} \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00240}\mbox{\hyperlink{vfs__default_8c_ac835431416404fb63cb379dd2cb71600}{00240}} \mbox{\hyperlink{vfs__default_8c_ac835431416404fb63cb379dd2cb71600}{vop\_nolookup}}(ap)}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00241}00241         \textcolor{keyword}{struct }vop\_lookup\_args \textcolor{comment}{/* \{}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00242}00242 \textcolor{comment}{                struct vnode *a\_dvp;}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00243}00243 \textcolor{comment}{                struct vnode **a\_vpp;}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00244}00244 \textcolor{comment}{                struct componentname *a\_cnp;}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00245}00245 \textcolor{comment}{        \} */} *ap;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00246}00246 \{}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00247}00247 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00248}00248         *ap-\/>a\_vpp = NULL;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00249}00249         \textcolor{keywordflow}{return} (ENOTDIR);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00250}00250 \}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00251}00251 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00252}00252 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00253}00253 \textcolor{comment}{ * vop\_norename:}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00254}00254 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00255}00255 \textcolor{comment}{ * Handle unlock and reference counting for arguments of vop\_rename}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00256}00256 \textcolor{comment}{ * for filesystems that do not implement rename operation.}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00257}00257 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00258}00258 \textcolor{keyword}{static} \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00259}\mbox{\hyperlink{vfs__default_8c_a4b0b1b313e83c8bc8e6b50e2f40edebc}{00259}} \mbox{\hyperlink{vfs__default_8c_a4b0b1b313e83c8bc8e6b50e2f40edebc}{vop\_norename}}(\textcolor{keyword}{struct} vop\_rename\_args *ap)}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00260}00260 \{}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00261}00261 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00262}00262         \mbox{\hyperlink{vfs__subr_8c_a08fd24e58f132240488c5f33e73c30f3}{vop\_rename\_fail}}(ap);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00263}00263         \textcolor{keywordflow}{return} (EOPNOTSUPP);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00264}00264 \}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00265}00265 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00266}00266 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00267}00267 \textcolor{comment}{ *      vop\_nostrategy:}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00268}00268 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00269}00269 \textcolor{comment}{ *      Strategy routine for VFS devices that have none.}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00270}00270 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00271}00271 \textcolor{comment}{ *      BIO\_ERROR and B\_INVAL must be cleared prior to calling any strategy}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00272}00272 \textcolor{comment}{ *      routine.  Typically this is done for a BIO\_READ strategy call.}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00273}00273 \textcolor{comment}{ *      Typically B\_INVAL is assumed to already be clear prior to a write}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00274}00274 \textcolor{comment}{ *      and should not be cleared manually unless you just made the buffer}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00275}00275 \textcolor{comment}{ *      invalid.  BIO\_ERROR should be cleared either way.}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00276}00276 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00277}00277 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00278}00278 \textcolor{keyword}{static} \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00279}\mbox{\hyperlink{vfs__default_8c_a4c129495ca894bcfe04673ad3a66ce9a}{00279}} \mbox{\hyperlink{vfs__default_8c_a4c129495ca894bcfe04673ad3a66ce9a}{vop\_nostrategy}} (\textcolor{keyword}{struct} vop\_strategy\_args *ap)}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00280}00280 \{}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00281}00281         \mbox{\hyperlink{subr__prf_8c_a55f3d956bb2ba20b5059e9e25484a47f}{printf}}(\textcolor{stringliteral}{"{}No strategy for buffer at \%p\(\backslash\)n"{}}, ap-\/>a\_bp);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00282}00282         \mbox{\hyperlink{vfs__subr_8c_a3b21ea53091ca3007ea80397e93a0533}{vn\_printf}}(ap-\/>a\_vp, \textcolor{stringliteral}{"{}vnode "{}});}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00283}00283         ap-\/>a\_bp-\/>b\_ioflags |= BIO\_ERROR;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00284}00284         ap-\/>a\_bp-\/>b\_error = EOPNOTSUPP;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00285}00285         \mbox{\hyperlink{vfs__bio_8c_a15c09336929bf10c66c9d3df6d047413}{bufdone}}(ap-\/>a\_bp);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00286}00286         \textcolor{keywordflow}{return} (EOPNOTSUPP);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00287}00287 \}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00288}00288 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00289}00289 \textcolor{keyword}{static} \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00290}\mbox{\hyperlink{vfs__default_8c_a960c25a4094100b1724f2e2da6e63640}{00290}} \mbox{\hyperlink{vfs__default_8c_a960c25a4094100b1724f2e2da6e63640}{get\_next\_dirent}}(\textcolor{keyword}{struct} vnode *vp, \textcolor{keyword}{struct} dirent **dpp, \textcolor{keywordtype}{char} *dirbuf,}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00291}00291                 \textcolor{keywordtype}{int} dirbuflen, off\_t *off, \textcolor{keywordtype}{char} **cpos, \textcolor{keywordtype}{int} *len,}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00292}00292                 \textcolor{keywordtype}{int} *eofflag, \textcolor{keyword}{struct} thread *td)}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00293}00293 \{}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00294}00294         \textcolor{keywordtype}{int} error, reclen;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00295}00295         \textcolor{keyword}{struct }uio uio;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00296}00296         \textcolor{keyword}{struct }iovec iov;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00297}00297         \textcolor{keyword}{struct }dirent *dp;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00298}00298 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00299}00299         KASSERT(VOP\_ISLOCKED(vp), (\textcolor{stringliteral}{"{}vp \%p is not locked"{}}, vp));}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00300}00300         KASSERT(vp-\/>v\_type == VDIR, (\textcolor{stringliteral}{"{}vp \%p is not a directory"{}}, vp));}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00301}00301 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00302}00302         \textcolor{keywordflow}{if} (*len == 0) \{}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00303}00303                 iov.iov\_base = dirbuf;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00304}00304                 iov.iov\_len = dirbuflen;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00305}00305 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00306}00306                 uio.uio\_iov = \&iov;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00307}00307                 uio.uio\_iovcnt = 1;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00308}00308                 uio.uio\_offset = *off;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00309}00309                 uio.uio\_resid = dirbuflen;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00310}00310                 uio.uio\_segflg = UIO\_SYSSPACE;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00311}00311                 uio.uio\_rw = UIO\_READ;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00312}00312                 uio.uio\_td = td;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00313}00313 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00314}00314                 *eofflag = 0;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00315}00315 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00316}00316 \textcolor{preprocessor}{\#ifdef MAC}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00317}00317                 error = mac\_vnode\_check\_readdir(td-\/>td\_ucred, vp);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00318}00318                 \textcolor{keywordflow}{if} (error == 0)}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00319}00319 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00320}00320                         error = VOP\_READDIR(vp, \&uio, td-\/>td\_ucred, eofflag,}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00321}00321                                 NULL, NULL);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00322}00322                 \textcolor{keywordflow}{if} (error)}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00323}00323                         \textcolor{keywordflow}{return} (error);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00324}00324 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00325}00325                 *off = uio.uio\_offset;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00326}00326 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00327}00327                 *cpos = dirbuf;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00328}00328                 *len = (dirbuflen -\/ uio.uio\_resid);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00329}00329 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00330}00330                 \textcolor{keywordflow}{if} (*len == 0)}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00331}00331                         \textcolor{keywordflow}{return} (ENOENT);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00332}00332         \}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00333}00333 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00334}00334         dp = (\textcolor{keyword}{struct }dirent *)(*cpos);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00335}00335         reclen = dp-\/>d\_reclen;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00336}00336         *dpp = dp;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00337}00337 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00338}00338         \textcolor{comment}{/* check for malformed directory.. */}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00339}00339         \textcolor{keywordflow}{if} (reclen < \mbox{\hyperlink{vfs__default_8c_a63d0b0301bedeeddefca96510001c618}{DIRENT\_MINSIZE}})}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00340}00340                 \textcolor{keywordflow}{return} (EINVAL);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00341}00341 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00342}00342         *cpos += reclen;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00343}00343         *len -\/= reclen;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00344}00344 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00345}00345         \textcolor{keywordflow}{return} (0);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00346}00346 \}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00347}00347 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00348}00348 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00349}00349 \textcolor{comment}{ * Check if a named file exists in a given directory vnode.}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00350}00350 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00351}00351 \textcolor{keyword}{static} \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00352}\mbox{\hyperlink{vfs__default_8c_adc67074416d00080f9b18f5be13d75d8}{00352}} \mbox{\hyperlink{vfs__default_8c_adc67074416d00080f9b18f5be13d75d8}{dirent\_exists}}(\textcolor{keyword}{struct} vnode *vp, \textcolor{keyword}{const} \textcolor{keywordtype}{char} *dirname, \textcolor{keyword}{struct} thread *td)}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00353}00353 \{}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00354}00354         \textcolor{keywordtype}{char} *dirbuf, *cpos;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00355}00355         \textcolor{keywordtype}{int} error, eofflag, dirbuflen, len, found;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00356}00356         off\_t off;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00357}00357         \textcolor{keyword}{struct }dirent *dp;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00358}00358         \textcolor{keyword}{struct }vattr va;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00359}00359 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00360}00360         KASSERT(VOP\_ISLOCKED(vp), (\textcolor{stringliteral}{"{}vp \%p is not locked"{}}, vp));}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00361}00361         KASSERT(vp-\/>v\_type == VDIR, (\textcolor{stringliteral}{"{}vp \%p is not a directory"{}}, vp));}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00362}00362 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00363}00363         found = 0;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00364}00364 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00365}00365         error = VOP\_GETATTR(vp, \&va, td-\/>td\_ucred);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00366}00366         \textcolor{keywordflow}{if} (error)}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00367}00367                 \textcolor{keywordflow}{return} (found);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00368}00368 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00369}00369         dirbuflen = DEV\_BSIZE;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00370}00370         \textcolor{keywordflow}{if} (dirbuflen < va.va\_blocksize)}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00371}00371                 dirbuflen = va.va\_blocksize;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00372}00372         dirbuf = (\textcolor{keywordtype}{char} *)\mbox{\hyperlink{kern__malloc_8c_a13e924a88f20870d2d55e3f7fb660352}{malloc}}(dirbuflen, M\_TEMP, M\_WAITOK);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00373}00373 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00374}00374         off = 0;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00375}00375         len = 0;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00376}00376         \textcolor{keywordflow}{do} \{}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00377}00377                 error = \mbox{\hyperlink{vfs__default_8c_a960c25a4094100b1724f2e2da6e63640}{get\_next\_dirent}}(vp, \&dp, dirbuf, dirbuflen, \&off,}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00378}00378                                         \&cpos, \&len, \&eofflag, td);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00379}00379                 \textcolor{keywordflow}{if} (error)}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00380}00380                         \textcolor{keywordflow}{goto} out;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00381}00381 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00382}00382                 \textcolor{keywordflow}{if} (dp-\/>d\_type != DT\_WHT \&\& dp-\/>d\_fileno != 0 \&\&}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00383}00383                     strcmp(dp-\/>d\_name, dirname) == 0) \{}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00384}00384                         found = 1;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00385}00385                         \textcolor{keywordflow}{goto} out;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00386}00386                 \}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00387}00387         \} \textcolor{keywordflow}{while} (len > 0 || !eofflag);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00388}00388 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00389}00389 out:}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00390}00390         \mbox{\hyperlink{kern__malloc_8c_af6592f7dfb186f55f99e52892336fff0}{free}}(dirbuf, M\_TEMP);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00391}00391         \textcolor{keywordflow}{return} (found);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00392}00392 \}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00393}00393 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00394}00394 \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00395}\mbox{\hyperlink{vfs__default_8c_adb1a2727f48e062d970756b30a5a143a}{00395}} \mbox{\hyperlink{vfs__default_8c_adb1a2727f48e062d970756b30a5a143a}{vop\_stdaccess}}(\textcolor{keyword}{struct} vop\_access\_args *ap)}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00396}00396 \{}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00397}00397 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00398}00398         KASSERT((ap-\/>a\_accmode \& \string~(VEXEC | VWRITE | VREAD | VADMIN |}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00399}00399             VAPPEND)) == 0, (\textcolor{stringliteral}{"{}invalid bit in accmode"{}}));}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00400}00400 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00401}00401         \textcolor{keywordflow}{return} (VOP\_ACCESSX(ap-\/>a\_vp, ap-\/>a\_accmode, ap-\/>a\_cred, ap-\/>a\_td));}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00402}00402 \}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00403}00403 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00404}00404 \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00405}\mbox{\hyperlink{vfs__default_8c_a79e4b940e52fdab9e7ec7af4889d5db8}{00405}} \mbox{\hyperlink{vfs__default_8c_a79e4b940e52fdab9e7ec7af4889d5db8}{vop\_stdaccessx}}(\textcolor{keyword}{struct} vop\_accessx\_args *ap)}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00406}00406 \{}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00407}00407         \textcolor{keywordtype}{int} error;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00408}00408         accmode\_t \mbox{\hyperlink{subr__acl__nfs4_8c_a551fb13db57e462c65efe6294c82b76a}{accmode}} = ap-\/>a\_accmode;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00409}00409 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00410}00410         error = \mbox{\hyperlink{vfs__subr_8c_af9bcc194e0f1d812a23c5275a8204baa}{vfs\_unixify\_accmode}}(\&\mbox{\hyperlink{subr__acl__nfs4_8c_a551fb13db57e462c65efe6294c82b76a}{accmode}});}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00411}00411         \textcolor{keywordflow}{if} (error != 0)}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00412}00412                 \textcolor{keywordflow}{return} (error);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00413}00413 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00414}00414         \textcolor{keywordflow}{if} (\mbox{\hyperlink{subr__acl__nfs4_8c_a551fb13db57e462c65efe6294c82b76a}{accmode}} == 0)}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00415}00415                 \textcolor{keywordflow}{return} (0);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00416}00416 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00417}00417         \textcolor{keywordflow}{return} (VOP\_ACCESS(ap-\/>a\_vp, \mbox{\hyperlink{subr__acl__nfs4_8c_a551fb13db57e462c65efe6294c82b76a}{accmode}}, ap-\/>a\_cred, ap-\/>a\_td));}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00418}00418 \}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00419}00419 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00420}00420 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00421}00421 \textcolor{comment}{ * Advisory record locking support}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00422}00422 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00423}00423 \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00424}\mbox{\hyperlink{vfs__default_8c_acd4b8cf2853d4099427e9a1e03486235}{00424}} \mbox{\hyperlink{vfs__default_8c_acd4b8cf2853d4099427e9a1e03486235}{vop\_stdadvlock}}(\textcolor{keyword}{struct} vop\_advlock\_args *ap)}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00425}00425 \{}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00426}00426         \textcolor{keyword}{struct }vnode *vp;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00427}00427         \textcolor{keyword}{struct }mount *mp;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00428}00428         \textcolor{keyword}{struct }vattr vattr;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00429}00429         \textcolor{keywordtype}{int} error;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00430}00430 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00431}00431         vp = ap-\/>a\_vp;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00432}00432 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00433}00433         \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00434}00434 \textcolor{comment}{         * Provide atomicity of open(O\_CREAT | O\_EXCL | O\_EXLOCK) for}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00435}00435 \textcolor{comment}{         * local filesystems.  See vn\_open\_cred() for reciprocal part.}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00436}00436 \textcolor{comment}{         */}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00437}00437         mp = vp-\/>v\_mount;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00438}00438         \textcolor{keywordflow}{if} (mp != NULL \&\& (mp-\/>mnt\_flag \& MNT\_LOCAL) != 0 \&\&}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00439}00439             ap-\/>a\_op == F\_SETLK \&\& (ap-\/>a\_flags \& F\_FIRSTOPEN) == 0) \{}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00440}00440                 VI\_LOCK(vp);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00441}00441                 \textcolor{keywordflow}{while} ((vp-\/>v\_iflag \& VI\_FOPENING) != 0)}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00442}00442                         msleep(vp, VI\_MTX(vp), PLOCK, \textcolor{stringliteral}{"{}lockfo"{}}, 0);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00443}00443                 VI\_UNLOCK(vp);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00444}00444         \}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00445}00445 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00446}00446         \textcolor{keywordflow}{if} (ap-\/>a\_fl-\/>l\_whence == SEEK\_END) \{}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00447}00447                 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00448}00448 \textcolor{comment}{                 * The NFSv4 server must avoid doing a vn\_lock() here, since it}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00449}00449 \textcolor{comment}{                 * can deadlock the nfsd threads, due to a LOR.  Fortunately}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00450}00450 \textcolor{comment}{                 * the NFSv4 server always uses SEEK\_SET and this code is}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00451}00451 \textcolor{comment}{                 * only required for the SEEK\_END case.}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00452}00452 \textcolor{comment}{                 */}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00453}00453                 vn\_lock(vp, LK\_SHARED | LK\_RETRY);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00454}00454                 error = VOP\_GETATTR(vp, \&vattr, curthread-\/>td\_ucred);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00455}00455                 VOP\_UNLOCK(vp);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00456}00456                 \textcolor{keywordflow}{if} (error)}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00457}00457                         \textcolor{keywordflow}{return} (error);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00458}00458         \} \textcolor{keywordflow}{else}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00459}00459                 vattr.va\_size = 0;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00460}00460 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00461}00461         \textcolor{keywordflow}{return} (\mbox{\hyperlink{kern__lockf_8c_a3624d934feb127b993f3e637931e2d40}{lf\_advlock}}(ap, \&(vp-\/>v\_lockf), vattr.va\_size));}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00462}00462 \}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00463}00463 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00464}00464 \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00465}\mbox{\hyperlink{vfs__default_8c_ad5ea750c8ad4921fb5a6068e7a818902}{00465}} \mbox{\hyperlink{vfs__default_8c_ad5ea750c8ad4921fb5a6068e7a818902}{vop\_stdadvlockasync}}(\textcolor{keyword}{struct} vop\_advlockasync\_args *ap)}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00466}00466 \{}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00467}00467         \textcolor{keyword}{struct }vnode *vp;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00468}00468         \textcolor{keyword}{struct }vattr vattr;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00469}00469         \textcolor{keywordtype}{int} error;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00470}00470 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00471}00471         vp = ap-\/>a\_vp;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00472}00472         \textcolor{keywordflow}{if} (ap-\/>a\_fl-\/>l\_whence == SEEK\_END) \{}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00473}00473                 \textcolor{comment}{/* The size argument is only needed for SEEK\_END. */}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00474}00474                 vn\_lock(vp, LK\_SHARED | LK\_RETRY);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00475}00475                 error = VOP\_GETATTR(vp, \&vattr, curthread-\/>td\_ucred);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00476}00476                 VOP\_UNLOCK(vp);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00477}00477                 \textcolor{keywordflow}{if} (error)}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00478}00478                         \textcolor{keywordflow}{return} (error);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00479}00479         \} \textcolor{keywordflow}{else}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00480}00480                 vattr.va\_size = 0;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00481}00481 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00482}00482         \textcolor{keywordflow}{return} (\mbox{\hyperlink{kern__lockf_8c_a5493e17f904069071eadef10a33df2af}{lf\_advlockasync}}(ap, \&(vp-\/>v\_lockf), vattr.va\_size));}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00483}00483 \}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00484}00484 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00485}00485 \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00486}\mbox{\hyperlink{vfs__default_8c_a571f697f6567e1f438c417346a9eeaf3}{00486}} \mbox{\hyperlink{vfs__default_8c_a571f697f6567e1f438c417346a9eeaf3}{vop\_stdadvlockpurge}}(\textcolor{keyword}{struct} vop\_advlockpurge\_args *ap)}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00487}00487 \{}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00488}00488         \textcolor{keyword}{struct }vnode *vp;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00489}00489 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00490}00490         vp = ap-\/>a\_vp;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00491}00491         \mbox{\hyperlink{kern__lockf_8c_aa60f090c1e141b428033b5e7d76a04a0}{lf\_purgelocks}}(vp, \&vp-\/>v\_lockf);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00492}00492         \textcolor{keywordflow}{return} (0);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00493}00493 \}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00494}00494 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00495}00495 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00496}00496 \textcolor{comment}{ * vop\_stdpathconf:}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00497}00497 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00498}00498 \textcolor{comment}{ * Standard implementation of POSIX pathconf, to get information about limits}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00499}00499 \textcolor{comment}{ * for a filesystem.}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00500}00500 \textcolor{comment}{ * Override per filesystem for the case where the filesystem has smaller}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00501}00501 \textcolor{comment}{ * limits.}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00502}00502 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00503}00503 \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00504}\mbox{\hyperlink{vfs__default_8c_a98fcf0ba8c1f82ec16f94799de6fcbfd}{00504}} \mbox{\hyperlink{vfs__default_8c_a98fcf0ba8c1f82ec16f94799de6fcbfd}{vop\_stdpathconf}}(ap)}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00505}00505         \textcolor{keyword}{struct }vop\_pathconf\_args \textcolor{comment}{/* \{}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00506}00506 \textcolor{comment}{        struct vnode *a\_vp;}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00507}00507 \textcolor{comment}{        int a\_name;}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00508}00508 \textcolor{comment}{        int *a\_retval;}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00509}00509 \textcolor{comment}{        \} */} *ap;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00510}00510 \{}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00511}00511 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00512}00512         \textcolor{keywordflow}{switch} (ap-\/>a\_name) \{}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00513}00513                 \textcolor{keywordflow}{case} \_PC\_ASYNC\_IO:}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00514}00514                         *ap-\/>a\_retval = \_POSIX\_ASYNCHRONOUS\_IO;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00515}00515                         \textcolor{keywordflow}{return} (0);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00516}00516                 \textcolor{keywordflow}{case} \_PC\_PATH\_MAX:}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00517}00517                         *ap-\/>a\_retval = PATH\_MAX;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00518}00518                         \textcolor{keywordflow}{return} (0);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00519}00519                 \textcolor{keywordflow}{case} \_PC\_ACL\_EXTENDED:}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00520}00520                 \textcolor{keywordflow}{case} \_PC\_ACL\_NFS4:}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00521}00521                 \textcolor{keywordflow}{case} \_PC\_CAP\_PRESENT:}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00522}00522                 \textcolor{keywordflow}{case} \_PC\_DEALLOC\_PRESENT:}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00523}00523                 \textcolor{keywordflow}{case} \_PC\_INF\_PRESENT:}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00524}00524                 \textcolor{keywordflow}{case} \_PC\_MAC\_PRESENT:}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00525}00525                         *ap-\/>a\_retval = 0;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00526}00526                         \textcolor{keywordflow}{return} (0);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00527}00527                 \textcolor{keywordflow}{default}:}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00528}00528                         \textcolor{keywordflow}{return} (EINVAL);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00529}00529         \}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00530}00530         \textcolor{comment}{/* NOTREACHED */}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00531}00531 \}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00532}00532 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00533}00533 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00534}00534 \textcolor{comment}{ * Standard lock, unlock and islocked functions.}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00535}00535 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00536}00536 \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00537}\mbox{\hyperlink{vfs__default_8c_acb7915e5925700b3133351bd02848592}{00537}} \mbox{\hyperlink{vfs__default_8c_acb7915e5925700b3133351bd02848592}{vop\_stdlock}}(ap)}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00538}00538         \textcolor{keyword}{struct }vop\_lock1\_args \textcolor{comment}{/* \{}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00539}00539 \textcolor{comment}{                struct vnode *a\_vp;}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00540}00540 \textcolor{comment}{                int a\_flags;}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00541}00541 \textcolor{comment}{                char *file;}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00542}00542 \textcolor{comment}{                int line;}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00543}00543 \textcolor{comment}{        \} */} *ap;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00544}00544 \{}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00545}00545         \textcolor{keyword}{struct }vnode *vp = ap-\/>a\_vp;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00546}00546         \textcolor{keyword}{struct }\mbox{\hyperlink{uipc__ktls_8c_a7b5de10a04be6deb16c42cef5da02110}{mtx}} *ilk;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00547}00547 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00548}00548         ilk = VI\_MTX(vp);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00549}00549         \textcolor{keywordflow}{return} (\mbox{\hyperlink{kern__lock_8c_a8859bf08063919c85a3c164e1365e1d2}{lockmgr\_lock\_flags}}(vp-\/>v\_vnlock, ap-\/>a\_flags,}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00550}00550             \&ilk-\/>lock\_object, ap-\/>a\_file, ap-\/>a\_line));}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00551}00551 \}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00552}00552 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00553}00553 \textcolor{comment}{/* See above. */}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00554}00554 \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00555}\mbox{\hyperlink{vfs__default_8c_a63344e78ef225298e5e91abd111b424d}{00555}} \mbox{\hyperlink{vfs__default_8c_a63344e78ef225298e5e91abd111b424d}{vop\_stdunlock}}(ap)}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00556}00556         \textcolor{keyword}{struct }vop\_unlock\_args \textcolor{comment}{/* \{}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00557}00557 \textcolor{comment}{                struct vnode *a\_vp;}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00558}00558 \textcolor{comment}{        \} */} *ap;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00559}00559 \{}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00560}00560         \textcolor{keyword}{struct }vnode *vp = ap-\/>a\_vp;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00561}00561 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00562}00562         \textcolor{keywordflow}{return} (\mbox{\hyperlink{kern__lock_8c_acbab4bfd35a9678671f2de9d4a4cef37}{lockmgr\_unlock}}(vp-\/>v\_vnlock));}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00563}00563 \}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00564}00564 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00565}00565 \textcolor{comment}{/* See above. */}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00566}00566 \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00567}\mbox{\hyperlink{vfs__default_8c_a46ac9697ed8014d969d947d54951eeb3}{00567}} \mbox{\hyperlink{vfs__default_8c_a46ac9697ed8014d969d947d54951eeb3}{vop\_stdislocked}}(ap)}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00568}00568         \textcolor{keyword}{struct }vop\_islocked\_args \textcolor{comment}{/* \{}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00569}00569 \textcolor{comment}{                struct vnode *a\_vp;}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00570}00570 \textcolor{comment}{        \} */} *ap;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00571}00571 \{}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00572}00572 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00573}00573         \textcolor{keywordflow}{return} (\mbox{\hyperlink{kern__lock_8c_a14171e338273711f70646900c3c7f011}{lockstatus}}(ap-\/>a\_vp-\/>v\_vnlock));}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00574}00574 \}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00575}00575 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00576}00576 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00577}00577 \textcolor{comment}{ * Variants of the above set.}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00578}00578 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00579}00579 \textcolor{comment}{ * Differences are:}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00580}00580 \textcolor{comment}{ * -\/ shared locking disablement is not supported}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00581}00581 \textcolor{comment}{ * -\/ v\_vnlock pointer is not honored}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00582}00582 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00583}00583 \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00584}\mbox{\hyperlink{vfs__default_8c_a155d814fcb0b831132b830df9bd9dfd1}{00584}} \mbox{\hyperlink{vfs__default_8c_a155d814fcb0b831132b830df9bd9dfd1}{vop\_lock}}(ap)}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00585}00585         \textcolor{keyword}{struct }vop\_lock1\_args \textcolor{comment}{/* \{}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00586}00586 \textcolor{comment}{                struct vnode *a\_vp;}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00587}00587 \textcolor{comment}{                int a\_flags;}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00588}00588 \textcolor{comment}{                char *file;}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00589}00589 \textcolor{comment}{                int line;}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00590}00590 \textcolor{comment}{        \} */} *ap;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00591}00591 \{}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00592}00592         \textcolor{keyword}{struct }vnode *vp = ap-\/>a\_vp;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00593}00593         \textcolor{keywordtype}{int} \mbox{\hyperlink{subr__stats_8c_a1e87af3c18a2fd36c61faf89949bdc3f}{flags}} = ap-\/>a\_flags;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00594}00594         \textcolor{keyword}{struct }\mbox{\hyperlink{uipc__ktls_8c_a7b5de10a04be6deb16c42cef5da02110}{mtx}} *ilk;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00595}00595 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00596}00596         MPASS(vp-\/>v\_vnlock == \&vp-\/>v\_lock);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00597}00597 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00598}00598         \textcolor{keywordflow}{if} (\_\_predict\_false((\mbox{\hyperlink{subr__stats_8c_a1e87af3c18a2fd36c61faf89949bdc3f}{flags}} \& \string~(LK\_TYPE\_MASK | LK\_NODDLKTREAT | LK\_RETRY)) != 0))}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00599}00599                 \textcolor{keywordflow}{goto} other;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00600}00600 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00601}00601         \textcolor{keywordflow}{switch} (\mbox{\hyperlink{subr__stats_8c_a1e87af3c18a2fd36c61faf89949bdc3f}{flags}} \& LK\_TYPE\_MASK) \{}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00602}00602         \textcolor{keywordflow}{case} LK\_SHARED:}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00603}00603                 \textcolor{keywordflow}{return} (\mbox{\hyperlink{kern__lock_8c_abeeec9fde3733400594cee1d8915d952}{lockmgr\_slock}}(\&vp-\/>v\_lock, \mbox{\hyperlink{subr__stats_8c_a1e87af3c18a2fd36c61faf89949bdc3f}{flags}}, ap-\/>a\_file, ap-\/>a\_line));}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00604}00604         \textcolor{keywordflow}{case} LK\_EXCLUSIVE:}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00605}00605                 \textcolor{keywordflow}{return} (\mbox{\hyperlink{kern__lock_8c_a825b9f0aaa325bdf106ca3ff8289588d}{lockmgr\_xlock}}(\&vp-\/>v\_lock, \mbox{\hyperlink{subr__stats_8c_a1e87af3c18a2fd36c61faf89949bdc3f}{flags}}, ap-\/>a\_file, ap-\/>a\_line));}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00606}00606         \}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00607}00607 other:}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00608}00608         ilk = VI\_MTX(vp);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00609}00609         \textcolor{keywordflow}{return} (\mbox{\hyperlink{kern__lock_8c_a8859bf08063919c85a3c164e1365e1d2}{lockmgr\_lock\_flags}}(\&vp-\/>v\_lock, \mbox{\hyperlink{subr__stats_8c_a1e87af3c18a2fd36c61faf89949bdc3f}{flags}},}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00610}00610             \&ilk-\/>lock\_object, ap-\/>a\_file, ap-\/>a\_line));}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00611}00611 \}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00612}00612 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00613}00613 \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00614}\mbox{\hyperlink{vfs__default_8c_a7d679e8c695e3b915a2f90403f7df095}{00614}} \mbox{\hyperlink{vfs__default_8c_a7d679e8c695e3b915a2f90403f7df095}{vop\_unlock}}(ap)}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00615}00615         \textcolor{keyword}{struct }vop\_unlock\_args \textcolor{comment}{/* \{}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00616}00616 \textcolor{comment}{                struct vnode *a\_vp;}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00617}00617 \textcolor{comment}{        \} */} *ap;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00618}00618 \{}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00619}00619         \textcolor{keyword}{struct }vnode *vp = ap-\/>a\_vp;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00620}00620 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00621}00621         MPASS(vp-\/>v\_vnlock == \&vp-\/>v\_lock);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00622}00622 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00623}00623         \textcolor{keywordflow}{return} (\mbox{\hyperlink{kern__lock_8c_acbab4bfd35a9678671f2de9d4a4cef37}{lockmgr\_unlock}}(\&vp-\/>v\_lock));}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00624}00624 \}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00625}00625 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00626}00626 \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00627}\mbox{\hyperlink{vfs__default_8c_adfa78a4a798d845ab02d195c16cc1076}{00627}} \mbox{\hyperlink{vfs__default_8c_adfa78a4a798d845ab02d195c16cc1076}{vop\_islocked}}(ap)}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00628}00628         \textcolor{keyword}{struct }vop\_islocked\_args \textcolor{comment}{/* \{}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00629}00629 \textcolor{comment}{                struct vnode *a\_vp;}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00630}00630 \textcolor{comment}{        \} */} *ap;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00631}00631 \{}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00632}00632         \textcolor{keyword}{struct }vnode *vp = ap-\/>a\_vp;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00633}00633 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00634}00634         MPASS(vp-\/>v\_vnlock == \&vp-\/>v\_lock);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00635}00635 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00636}00636         \textcolor{keywordflow}{return} (\mbox{\hyperlink{kern__lock_8c_a14171e338273711f70646900c3c7f011}{lockstatus}}(\&vp-\/>v\_lock));}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00637}00637 \}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00638}00638 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00639}00639 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00640}00640 \textcolor{comment}{ * Return true for select/poll.}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00641}00641 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00642}00642 \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00643}\mbox{\hyperlink{vfs__default_8c_ae22d1057ee1e79b88861b315ef5b7d86}{00643}} \mbox{\hyperlink{vfs__default_8c_ae22d1057ee1e79b88861b315ef5b7d86}{vop\_nopoll}}(ap)}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00644}00644         \textcolor{keyword}{struct }vop\_poll\_args \textcolor{comment}{/* \{}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00645}00645 \textcolor{comment}{                struct vnode *a\_vp;}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00646}00646 \textcolor{comment}{                int  a\_events;}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00647}00647 \textcolor{comment}{                struct ucred *a\_cred;}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00648}00648 \textcolor{comment}{                struct thread *a\_td;}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00649}00649 \textcolor{comment}{        \} */} *ap;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00650}00650 \{}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00651}00651 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00652}00652         \textcolor{keywordflow}{if} (ap-\/>a\_events \& \string~POLLSTANDARD)}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00653}00653                 \textcolor{keywordflow}{return} (POLLNVAL);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00654}00654         \textcolor{keywordflow}{return} (ap-\/>a\_events \& (POLLIN | POLLOUT | POLLRDNORM | POLLWRNORM));}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00655}00655 \}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00656}00656 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00657}00657 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00658}00658 \textcolor{comment}{ * Implement poll for local filesystems that support it.}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00659}00659 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00660}00660 \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00661}\mbox{\hyperlink{vfs__default_8c_ab326814b8e1e1282653fe272d56321d5}{00661}} \mbox{\hyperlink{vfs__default_8c_ab326814b8e1e1282653fe272d56321d5}{vop\_stdpoll}}(ap)}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00662}00662         \textcolor{keyword}{struct }vop\_poll\_args \textcolor{comment}{/* \{}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00663}00663 \textcolor{comment}{                struct vnode *a\_vp;}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00664}00664 \textcolor{comment}{                int  a\_events;}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00665}00665 \textcolor{comment}{                struct ucred *a\_cred;}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00666}00666 \textcolor{comment}{                struct thread *a\_td;}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00667}00667 \textcolor{comment}{        \} */} *ap;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00668}00668 \{}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00669}00669         \textcolor{keywordflow}{if} (ap-\/>a\_events \& \string~POLLSTANDARD)}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00670}00670                 \textcolor{keywordflow}{return} (\mbox{\hyperlink{vfs__subr_8c_a63b4f371736bbfa231b30be3e7126175}{vn\_pollrecord}}(ap-\/>a\_vp, ap-\/>a\_td, ap-\/>a\_events));}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00671}00671         \textcolor{keywordflow}{return} (ap-\/>a\_events \& (POLLIN | POLLOUT | POLLRDNORM | POLLWRNORM));}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00672}00672 \}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00673}00673 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00674}00674 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00675}00675 \textcolor{comment}{ * Return our mount point, as we will take charge of the writes.}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00676}00676 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00677}00677 \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00678}\mbox{\hyperlink{vfs__default_8c_a751b40f4940f20476bc02f27019d25a0}{00678}} \mbox{\hyperlink{vfs__default_8c_a751b40f4940f20476bc02f27019d25a0}{vop\_stdgetwritemount}}(ap)}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00679}00679         \textcolor{keyword}{struct }vop\_getwritemount\_args \textcolor{comment}{/* \{}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00680}00680 \textcolor{comment}{                struct vnode *a\_vp;}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00681}00681 \textcolor{comment}{                struct mount **a\_mpp;}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00682}00682 \textcolor{comment}{        \} */} *ap;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00683}00683 \{}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00684}00684         \textcolor{keyword}{struct }mount *mp;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00685}00685         \textcolor{keyword}{struct }vnode *vp;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00686}00686 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00687}00687         \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00688}00688 \textcolor{comment}{         * Note that having a reference does not prevent forced unmount from}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00689}00689 \textcolor{comment}{         * setting -\/>v\_mount to NULL after the lock gets released. This is of}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00690}00690 \textcolor{comment}{         * no consequence for typical consumers (most notably vn\_start\_write)}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00691}00691 \textcolor{comment}{         * since in this case the vnode is VIRF\_DOOMED. Unmount might have}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00692}00692 \textcolor{comment}{         * progressed far enough that its completion is only delayed by the}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00693}00693 \textcolor{comment}{         * reference obtained here. The consumer only needs to concern itself}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00694}00694 \textcolor{comment}{         * with releasing it.}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00695}00695 \textcolor{comment}{         */}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00696}00696         vp = ap-\/>a\_vp;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00697}00697         mp = \mbox{\hyperlink{vfs__mount_8c_ab08a3cd7d6af56b2869e0901fcf0ea52}{vfs\_ref\_from\_vp}}(vp);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00698}00698         *(ap-\/>a\_mpp) = mp;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00699}00699         \textcolor{keywordflow}{return} (0);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00700}00700 \}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00701}00701 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00702}00702 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00703}00703 \textcolor{comment}{ * If the file system doesn't implement VOP\_BMAP, then return sensible defaults:}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00704}00704 \textcolor{comment}{ * -\/ Return the vnode's bufobj instead of any underlying device's bufobj}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00705}00705 \textcolor{comment}{ * -\/ Calculate the physical block number as if there were equal size}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00706}00706 \textcolor{comment}{ *   consecutive blocks, but}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00707}00707 \textcolor{comment}{ * -\/ Report no contiguous runs of blocks.}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00708}00708 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00709}00709 \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00710}\mbox{\hyperlink{vfs__default_8c_a26acb9d2e3d99437bfc033e653745e55}{00710}} \mbox{\hyperlink{vfs__default_8c_a26acb9d2e3d99437bfc033e653745e55}{vop\_stdbmap}}(ap)}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00711}00711         \textcolor{keyword}{struct }vop\_bmap\_args \textcolor{comment}{/* \{}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00712}00712 \textcolor{comment}{                struct vnode *a\_vp;}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00713}00713 \textcolor{comment}{                daddr\_t  a\_bn;}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00714}00714 \textcolor{comment}{                struct bufobj **a\_bop;}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00715}00715 \textcolor{comment}{                daddr\_t *a\_bnp;}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00716}00716 \textcolor{comment}{                int *a\_runp;}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00717}00717 \textcolor{comment}{                int *a\_runb;}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00718}00718 \textcolor{comment}{        \} */} *ap;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00719}00719 \{}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00720}00720 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00721}00721         \textcolor{keywordflow}{if} (ap-\/>a\_bop != NULL)}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00722}00722                 *ap-\/>a\_bop = \&ap-\/>a\_vp-\/>v\_bufobj;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00723}00723         \textcolor{keywordflow}{if} (ap-\/>a\_bnp != NULL)}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00724}00724                 *ap-\/>a\_bnp = ap-\/>a\_bn * btodb(ap-\/>a\_vp-\/>v\_mount-\/>mnt\_stat.f\_iosize);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00725}00725         \textcolor{keywordflow}{if} (ap-\/>a\_runp != NULL)}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00726}00726                 *ap-\/>a\_runp = 0;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00727}00727         \textcolor{keywordflow}{if} (ap-\/>a\_runb != NULL)}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00728}00728                 *ap-\/>a\_runb = 0;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00729}00729         \textcolor{keywordflow}{return} (0);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00730}00730 \}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00731}00731 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00732}00732 \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00733}\mbox{\hyperlink{vfs__default_8c_a088d03d43ea6f4424ac70da222855844}{00733}} \mbox{\hyperlink{vfs__default_8c_a088d03d43ea6f4424ac70da222855844}{vop\_stdfsync}}(ap)}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00734}00734         \textcolor{keyword}{struct }vop\_fsync\_args \textcolor{comment}{/* \{}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00735}00735 \textcolor{comment}{                struct vnode *a\_vp;}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00736}00736 \textcolor{comment}{                int a\_waitfor;}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00737}00737 \textcolor{comment}{                struct thread *a\_td;}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00738}00738 \textcolor{comment}{        \} */} *ap;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00739}00739 \{}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00740}00740 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00741}00741         \textcolor{keywordflow}{return} (\mbox{\hyperlink{vfs__vnops_8c_ac17ed966b55c3afbf0c57b0d1e0d4e84}{vn\_fsync\_buf}}(ap-\/>a\_vp, ap-\/>a\_waitfor));}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00742}00742 \}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00743}00743 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00744}00744 \textcolor{keyword}{static} \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00745}\mbox{\hyperlink{vfs__default_8c_afba7872a6d2673d9e280461025d452ef}{00745}} \mbox{\hyperlink{vfs__default_8c_afba7872a6d2673d9e280461025d452ef}{vop\_stdfdatasync}}(\textcolor{keyword}{struct} vop\_fdatasync\_args *ap)}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00746}00746 \{}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00747}00747 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00748}00748         \textcolor{keywordflow}{return} (VOP\_FSYNC(ap-\/>a\_vp, MNT\_WAIT, ap-\/>a\_td));}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00749}00749 \}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00750}00750 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00751}00751 \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00752}\mbox{\hyperlink{vfs__default_8c_a69d07c3b04ea4c910460523d0d3ed8d2}{00752}} \mbox{\hyperlink{vfs__default_8c_a69d07c3b04ea4c910460523d0d3ed8d2}{vop\_stdfdatasync\_buf}}(\textcolor{keyword}{struct} vop\_fdatasync\_args *ap)}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00753}00753 \{}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00754}00754 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00755}00755         \textcolor{keywordflow}{return} (\mbox{\hyperlink{vfs__vnops_8c_ac17ed966b55c3afbf0c57b0d1e0d4e84}{vn\_fsync\_buf}}(ap-\/>a\_vp, MNT\_WAIT));}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00756}00756 \}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00757}00757 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00758}00758 \textcolor{comment}{/* XXX Needs good comment and more info in the manpage (VOP\_GETPAGES(9)). */}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00759}00759 \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00760}\mbox{\hyperlink{vfs__default_8c_a006b1e7c4c06b04dcaec3b93ec385e8a}{00760}} \mbox{\hyperlink{vfs__default_8c_a006b1e7c4c06b04dcaec3b93ec385e8a}{vop\_stdgetpages}}(ap)}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00761}00761         \textcolor{keyword}{struct }vop\_getpages\_args \textcolor{comment}{/* \{}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00762}00762 \textcolor{comment}{                struct vnode *a\_vp;}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00763}00763 \textcolor{comment}{                vm\_page\_t *a\_m;}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00764}00764 \textcolor{comment}{                int a\_count;}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00765}00765 \textcolor{comment}{                int *a\_rbehind;}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00766}00766 \textcolor{comment}{                int *a\_rahead;}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00767}00767 \textcolor{comment}{        \} */} *ap;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00768}00768 \{}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00769}00769 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00770}00770         \textcolor{keywordflow}{return} vnode\_pager\_generic\_getpages(ap-\/>a\_vp, ap-\/>a\_m,}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00771}00771             ap-\/>a\_count, ap-\/>a\_rbehind, ap-\/>a\_rahead, NULL, NULL);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00772}00772 \}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00773}00773 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00774}00774 \textcolor{keyword}{static} \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00775}\mbox{\hyperlink{vfs__default_8c_a262285d33895babb037e9e0e05db7900}{00775}} \mbox{\hyperlink{vfs__default_8c_a262285d33895babb037e9e0e05db7900}{vop\_stdgetpages\_async}}(\textcolor{keyword}{struct} vop\_getpages\_async\_args *ap)}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00776}00776 \{}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00777}00777         \textcolor{keywordtype}{int} error;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00778}00778 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00779}00779         error = VOP\_GETPAGES(ap-\/>a\_vp, ap-\/>a\_m, ap-\/>a\_count, ap-\/>a\_rbehind,}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00780}00780             ap-\/>a\_rahead);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00781}00781         \textcolor{keywordflow}{if} (ap-\/>a\_iodone != NULL)}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00782}00782                 ap-\/>a\_iodone(ap-\/>a\_arg, ap-\/>a\_m, ap-\/>a\_count, error);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00783}00783         \textcolor{keywordflow}{return} (error);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00784}00784 \}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00785}00785 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00786}00786 \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00787}\mbox{\hyperlink{vfs__default_8c_a48505df49f0be5980358ea6e621bb283}{00787}} \mbox{\hyperlink{vfs__default_8c_a48505df49f0be5980358ea6e621bb283}{vop\_stdkqfilter}}(\textcolor{keyword}{struct} vop\_kqfilter\_args *ap)}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00788}00788 \{}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00789}00789         \textcolor{keywordflow}{return} \mbox{\hyperlink{vfs__subr_8c_a06271de64b6e59c774ed0f260b1603f1}{vfs\_kqfilter}}(ap);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00790}00790 \}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00791}00791 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00792}00792 \textcolor{comment}{/* XXX Needs good comment and more info in the manpage (VOP\_PUTPAGES(9)). */}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00793}00793 \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00794}\mbox{\hyperlink{vfs__default_8c_a96f3edda4c965e8cc63b8fdc9596c695}{00794}} \mbox{\hyperlink{vfs__default_8c_a96f3edda4c965e8cc63b8fdc9596c695}{vop\_stdputpages}}(ap)}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00795}00795         \textcolor{keyword}{struct }vop\_putpages\_args \textcolor{comment}{/* \{}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00796}00796 \textcolor{comment}{                struct vnode *a\_vp;}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00797}00797 \textcolor{comment}{                vm\_page\_t *a\_m;}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00798}00798 \textcolor{comment}{                int a\_count;}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00799}00799 \textcolor{comment}{                int a\_sync;}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00800}00800 \textcolor{comment}{                int *a\_rtvals;}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00801}00801 \textcolor{comment}{        \} */} *ap;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00802}00802 \{}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00803}00803 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00804}00804         \textcolor{keywordflow}{return} vnode\_pager\_generic\_putpages(ap-\/>a\_vp, ap-\/>a\_m, ap-\/>a\_count,}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00805}00805              ap-\/>a\_sync, ap-\/>a\_rtvals);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00806}00806 \}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00807}00807 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00808}00808 \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00809}\mbox{\hyperlink{vfs__default_8c_aac54c67411a87a6c069b641b6dedf878}{00809}} \mbox{\hyperlink{vfs__default_8c_aac54c67411a87a6c069b641b6dedf878}{vop\_stdvptofh}}(\textcolor{keyword}{struct} vop\_vptofh\_args *ap)}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00810}00810 \{}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00811}00811         \textcolor{keywordflow}{return} (EOPNOTSUPP);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00812}00812 \}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00813}00813 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00814}00814 \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00815}\mbox{\hyperlink{vfs__default_8c_a066e9011d0aedd50619edd1a01931012}{00815}} \mbox{\hyperlink{vfs__default_8c_a066e9011d0aedd50619edd1a01931012}{vop\_stdvptocnp}}(\textcolor{keyword}{struct} vop\_vptocnp\_args *ap)}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00816}00816 \{}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00817}00817         \textcolor{keyword}{struct }vnode *vp = ap-\/>a\_vp;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00818}00818         \textcolor{keyword}{struct }vnode **dvp = ap-\/>a\_vpp;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00819}00819         \textcolor{keyword}{struct }ucred *cred;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00820}00820         \textcolor{keywordtype}{char} *\mbox{\hyperlink{vfs__syscalls_8c_a6defe41b89c760943b86089ec1838319}{buf}} = ap-\/>a\_buf;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00821}00821         \textcolor{keywordtype}{size\_t} *buflen = ap-\/>a\_buflen;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00822}00822         \textcolor{keywordtype}{char} *dirbuf, *cpos;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00823}00823         \textcolor{keywordtype}{int} i, error, eofflag, dirbuflen, \mbox{\hyperlink{subr__stats_8c_a1e87af3c18a2fd36c61faf89949bdc3f}{flags}}, locked, len, covered;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00824}00824         off\_t off;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00825}00825         ino\_t fileno;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00826}00826         \textcolor{keyword}{struct }vattr va;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00827}00827         \textcolor{keyword}{struct }nameidata nd;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00828}00828         \textcolor{keyword}{struct }thread *td;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00829}00829         \textcolor{keyword}{struct }dirent *dp;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00830}00830         \textcolor{keyword}{struct }vnode *mvp;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00831}00831 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00832}00832         i = *buflen;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00833}00833         error = 0;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00834}00834         covered = 0;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00835}00835         td = curthread;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00836}00836         cred = td-\/>td\_ucred;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00837}00837 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00838}00838         \textcolor{keywordflow}{if} (vp-\/>v\_type != VDIR)}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00839}00839                 \textcolor{keywordflow}{return} (ENOENT);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00840}00840 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00841}00841         error = VOP\_GETATTR(vp, \&va, cred);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00842}00842         \textcolor{keywordflow}{if} (error)}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00843}00843                 \textcolor{keywordflow}{return} (error);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00844}00844 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00845}00845         VREF(vp);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00846}00846         locked = VOP\_ISLOCKED(vp);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00847}00847         VOP\_UNLOCK(vp);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00848}00848         NDINIT\_ATVP(\&nd, LOOKUP, FOLLOW | LOCKSHARED | LOCKLEAF, UIO\_SYSSPACE,}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00849}00849             \textcolor{stringliteral}{"{}.."{}}, vp);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00850}00850         \mbox{\hyperlink{subr__stats_8c_a1e87af3c18a2fd36c61faf89949bdc3f}{flags}} = FREAD;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00851}00851         error = \mbox{\hyperlink{vfs__vnops_8c_abf7444e97ee592055cc8e2997e633153}{vn\_open\_cred}}(\&nd, \&\mbox{\hyperlink{subr__stats_8c_a1e87af3c18a2fd36c61faf89949bdc3f}{flags}}, 0, VN\_OPEN\_NOAUDIT, cred, NULL);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00852}00852         \textcolor{keywordflow}{if} (error) \{}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00853}00853                 vn\_lock(vp, locked | LK\_RETRY);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00854}00854                 \textcolor{keywordflow}{return} (error);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00855}00855         \}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00856}00856         \mbox{\hyperlink{vfs__lookup_8c_a96d86ee2448b6bb134242d8f6d076510}{NDFREE}}(\&nd, NDF\_ONLY\_PNBUF);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00857}00857 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00858}00858         mvp = *dvp = nd.ni\_vp;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00859}00859 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00860}00860         \textcolor{keywordflow}{if} (vp-\/>v\_mount != (*dvp)-\/>v\_mount \&\&}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00861}00861             ((*dvp)-\/>v\_vflag \& VV\_ROOT) \&\&}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00862}00862             ((*dvp)-\/>v\_mount-\/>mnt\_flag \& MNT\_UNION)) \{}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00863}00863                 *dvp = (*dvp)-\/>v\_mount-\/>mnt\_vnodecovered;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00864}00864                 VREF(mvp);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00865}00865                 VOP\_UNLOCK(mvp);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00866}00866                 \mbox{\hyperlink{vfs__vnops_8c_ad6e383a4e49132514f14b04785f1a423}{vn\_close}}(mvp, FREAD, cred, td);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00867}00867                 VREF(*dvp);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00868}00868                 vn\_lock(*dvp, LK\_SHARED | LK\_RETRY);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00869}00869                 covered = 1;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00870}00870         \}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00871}00871 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00872}00872         fileno = va.va\_fileid;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00873}00873 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00874}00874         dirbuflen = DEV\_BSIZE;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00875}00875         \textcolor{keywordflow}{if} (dirbuflen < va.va\_blocksize)}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00876}00876                 dirbuflen = va.va\_blocksize;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00877}00877         dirbuf = (\textcolor{keywordtype}{char} *)\mbox{\hyperlink{kern__malloc_8c_a13e924a88f20870d2d55e3f7fb660352}{malloc}}(dirbuflen, M\_TEMP, M\_WAITOK);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00878}00878 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00879}00879         \textcolor{keywordflow}{if} ((*dvp)-\/>v\_type != VDIR) \{}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00880}00880                 error = ENOENT;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00881}00881                 \textcolor{keywordflow}{goto} out;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00882}00882         \}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00883}00883 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00884}00884         off = 0;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00885}00885         len = 0;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00886}00886         \textcolor{keywordflow}{do} \{}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00887}00887                 \textcolor{comment}{/* call VOP\_READDIR of parent */}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00888}00888                 error = \mbox{\hyperlink{vfs__default_8c_a960c25a4094100b1724f2e2da6e63640}{get\_next\_dirent}}(*dvp, \&dp, dirbuf, dirbuflen, \&off,}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00889}00889                                         \&cpos, \&len, \&eofflag, td);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00890}00890                 \textcolor{keywordflow}{if} (error)}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00891}00891                         \textcolor{keywordflow}{goto} out;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00892}00892 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00893}00893                 \textcolor{keywordflow}{if} ((dp-\/>d\_type != DT\_WHT) \&\&}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00894}00894                     (dp-\/>d\_fileno == fileno)) \{}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00895}00895                         \textcolor{keywordflow}{if} (covered) \{}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00896}00896                                 VOP\_UNLOCK(*dvp);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00897}00897                                 vn\_lock(mvp, LK\_SHARED | LK\_RETRY);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00898}00898                                 \textcolor{keywordflow}{if} (\mbox{\hyperlink{vfs__default_8c_adc67074416d00080f9b18f5be13d75d8}{dirent\_exists}}(mvp, dp-\/>d\_name, td)) \{}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00899}00899                                         error = ENOENT;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00900}00900                                         VOP\_UNLOCK(mvp);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00901}00901                                         vn\_lock(*dvp, LK\_SHARED | LK\_RETRY);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00902}00902                                         \textcolor{keywordflow}{goto} out;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00903}00903                                 \}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00904}00904                                 VOP\_UNLOCK(mvp);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00905}00905                                 vn\_lock(*dvp, LK\_SHARED | LK\_RETRY);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00906}00906                         \}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00907}00907                         i -\/= dp-\/>d\_namlen;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00908}00908 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00909}00909                         \textcolor{keywordflow}{if} (i < 0) \{}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00910}00910                                 error = ENOMEM;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00911}00911                                 \textcolor{keywordflow}{goto} out;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00912}00912                         \}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00913}00913                         \textcolor{keywordflow}{if} (dp-\/>d\_namlen == 1 \&\& dp-\/>d\_name[0] == \textcolor{charliteral}{'.'}) \{}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00914}00914                                 error = ENOENT;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00915}00915                         \} \textcolor{keywordflow}{else} \{}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00916}00916                                 bcopy(dp-\/>d\_name, \mbox{\hyperlink{vfs__syscalls_8c_a6defe41b89c760943b86089ec1838319}{buf}} + i, dp-\/>d\_namlen);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00917}00917                                 error = 0;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00918}00918                         \}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00919}00919                         \textcolor{keywordflow}{goto} out;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00920}00920                 \}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00921}00921         \} \textcolor{keywordflow}{while} (len > 0 || !eofflag);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00922}00922         error = ENOENT;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00923}00923 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00924}00924 out:}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00925}00925         \mbox{\hyperlink{kern__malloc_8c_af6592f7dfb186f55f99e52892336fff0}{free}}(dirbuf, M\_TEMP);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00926}00926         \textcolor{keywordflow}{if} (!error) \{}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00927}00927                 *buflen = i;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00928}00928                 \mbox{\hyperlink{vfs__subr_8c_a341b8b88f9350a672b16ef70d57f6f2d}{vref}}(*dvp);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00929}00929         \}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00930}00930         \textcolor{keywordflow}{if} (covered) \{}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00931}00931                 \mbox{\hyperlink{vfs__subr_8c_aadf251b17eee3424efb1b2b487a139fa}{vput}}(*dvp);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00932}00932                 \mbox{\hyperlink{vfs__subr_8c_aa3c01eb8c2a647d940ad8072a59f894f}{vrele}}(mvp);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00933}00933         \} \textcolor{keywordflow}{else} \{}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00934}00934                 VOP\_UNLOCK(mvp);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00935}00935                 \mbox{\hyperlink{vfs__vnops_8c_ad6e383a4e49132514f14b04785f1a423}{vn\_close}}(mvp, FREAD, cred, td);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00936}00936         \}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00937}00937         vn\_lock(vp, locked | LK\_RETRY);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00938}00938         \textcolor{keywordflow}{return} (error);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00939}00939 \}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00940}00940 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00941}00941 \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00942}\mbox{\hyperlink{vfs__default_8c_a0450602274d333979034e6821660d524}{00942}} \mbox{\hyperlink{vfs__default_8c_a0450602274d333979034e6821660d524}{vop\_stdallocate}}(\textcolor{keyword}{struct} vop\_allocate\_args *ap)}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00943}00943 \{}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00944}00944 \textcolor{preprocessor}{\#ifdef \_\_notyet\_\_}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00945}00945         \textcolor{keyword}{struct }statfs *sfs;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00946}00946         off\_t maxfilesize = 0;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00947}00947 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00948}00948         \textcolor{keyword}{struct }iovec aiov;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00949}00949         \textcolor{keyword}{struct }vattr vattr, *vap;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00950}00950         \textcolor{keyword}{struct }uio auio;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00951}00951         off\_t fsize, len, cur, offset;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00952}00952         uint8\_t *\mbox{\hyperlink{vfs__syscalls_8c_a6defe41b89c760943b86089ec1838319}{buf}};}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00953}00953         \textcolor{keyword}{struct }thread *td;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00954}00954         \textcolor{keyword}{struct }vnode *vp;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00955}00955         \textcolor{keywordtype}{size\_t} iosize;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00956}00956         \textcolor{keywordtype}{int} error;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00957}00957 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00958}00958         \mbox{\hyperlink{vfs__syscalls_8c_a6defe41b89c760943b86089ec1838319}{buf}} = NULL;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00959}00959         error = 0;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00960}00960         td = curthread;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00961}00961         vap = \&vattr;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00962}00962         vp = ap-\/>a\_vp;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00963}00963         len = *ap-\/>a\_len;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00964}00964         offset = *ap-\/>a\_offset;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00965}00965 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00966}00966         error = VOP\_GETATTR(vp, vap, ap-\/>a\_cred);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00967}00967         \textcolor{keywordflow}{if} (error != 0)}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00968}00968                 \textcolor{keywordflow}{goto} out;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00969}00969         fsize = vap-\/>va\_size;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00970}00970         iosize = vap-\/>va\_blocksize;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00971}00971         \textcolor{keywordflow}{if} (iosize == 0)}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00972}00972                 iosize = BLKDEV\_IOSIZE;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00973}00973         \textcolor{keywordflow}{if} (iosize > \mbox{\hyperlink{subr__param_8c_abc6d24f7993aadcf527d2ab8feaffbea}{maxphys}})}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00974}00974                 iosize = \mbox{\hyperlink{subr__param_8c_abc6d24f7993aadcf527d2ab8feaffbea}{maxphys}};}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00975}00975         \mbox{\hyperlink{vfs__syscalls_8c_a6defe41b89c760943b86089ec1838319}{buf}} = \mbox{\hyperlink{kern__malloc_8c_a13e924a88f20870d2d55e3f7fb660352}{malloc}}(iosize, M\_TEMP, M\_WAITOK);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00976}00976 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00977}00977 \textcolor{preprocessor}{\#ifdef \_\_notyet\_\_}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00978}00978         \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00979}00979 \textcolor{comment}{         * Check if the filesystem sets f\_maxfilesize; if not use}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00980}00980 \textcolor{comment}{         * VOP\_SETATTR to perform the check.}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00981}00981 \textcolor{comment}{         */}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00982}00982         sfs = \mbox{\hyperlink{kern__malloc_8c_a13e924a88f20870d2d55e3f7fb660352}{malloc}}(\textcolor{keyword}{sizeof}(\textcolor{keyword}{struct} statfs), M\_STATFS, M\_WAITOK);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00983}00983         error = VFS\_STATFS(vp-\/>v\_mount, sfs, td);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00984}00984         \textcolor{keywordflow}{if} (error == 0)}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00985}00985                 maxfilesize = sfs-\/>f\_maxfilesize;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00986}00986         \mbox{\hyperlink{kern__malloc_8c_af6592f7dfb186f55f99e52892336fff0}{free}}(sfs, M\_STATFS);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00987}00987         \textcolor{keywordflow}{if} (error != 0)}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00988}00988                 \textcolor{keywordflow}{goto} out;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00989}00989         \textcolor{keywordflow}{if} (maxfilesize) \{}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00990}00990                 \textcolor{keywordflow}{if} (offset > maxfilesize || len > maxfilesize ||}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00991}00991                     offset + len > maxfilesize) \{}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00992}00992                         error = EFBIG;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00993}00993                         \textcolor{keywordflow}{goto} out;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00994}00994                 \}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00995}00995         \} \textcolor{keywordflow}{else}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00996}00996 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00997}00997         \textcolor{keywordflow}{if} (offset + len > vap-\/>va\_size) \{}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00998}00998                 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l00999}00999 \textcolor{comment}{                 * Test offset + len against the filesystem's maxfilesize.}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01000}01000 \textcolor{comment}{                 */}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01001}01001                 VATTR\_NULL(vap);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01002}01002                 vap-\/>va\_size = offset + len;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01003}01003                 error = VOP\_SETATTR(vp, vap, ap-\/>a\_cred);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01004}01004                 \textcolor{keywordflow}{if} (error != 0)}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01005}01005                         \textcolor{keywordflow}{goto} out;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01006}01006                 VATTR\_NULL(vap);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01007}01007                 vap-\/>va\_size = fsize;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01008}01008                 error = VOP\_SETATTR(vp, vap, ap-\/>a\_cred);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01009}01009                 \textcolor{keywordflow}{if} (error != 0)}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01010}01010                         \textcolor{keywordflow}{goto} out;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01011}01011         \}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01012}01012 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01013}01013         \textcolor{keywordflow}{for} (;;) \{}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01014}01014                 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01015}01015 \textcolor{comment}{                 * Read and write back anything below the nominal file}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01016}01016 \textcolor{comment}{                 * size.  There's currently no way outside the filesystem}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01017}01017 \textcolor{comment}{                 * to know whether this area is sparse or not.}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01018}01018 \textcolor{comment}{                 */}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01019}01019                 cur = iosize;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01020}01020                 \textcolor{keywordflow}{if} ((offset \% iosize) != 0)}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01021}01021                         cur -\/= (offset \% iosize);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01022}01022                 \textcolor{keywordflow}{if} (cur > len)}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01023}01023                         cur = len;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01024}01024                 \textcolor{keywordflow}{if} (offset < fsize) \{}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01025}01025                         aiov.iov\_base = \mbox{\hyperlink{vfs__syscalls_8c_a6defe41b89c760943b86089ec1838319}{buf}};}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01026}01026                         aiov.iov\_len = cur;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01027}01027                         auio.uio\_iov = \&aiov;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01028}01028                         auio.uio\_iovcnt = 1;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01029}01029                         auio.uio\_offset = offset;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01030}01030                         auio.uio\_resid = cur;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01031}01031                         auio.uio\_segflg = UIO\_SYSSPACE;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01032}01032                         auio.uio\_rw = UIO\_READ;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01033}01033                         auio.uio\_td = td;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01034}01034                         error = VOP\_READ(vp, \&auio, ap-\/>a\_ioflag, ap-\/>a\_cred);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01035}01035                         \textcolor{keywordflow}{if} (error != 0)}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01036}01036                                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01037}01037                         \textcolor{keywordflow}{if} (auio.uio\_resid > 0) \{}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01038}01038                                 bzero(\mbox{\hyperlink{vfs__syscalls_8c_a6defe41b89c760943b86089ec1838319}{buf}} + cur -\/ auio.uio\_resid,}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01039}01039                                     auio.uio\_resid);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01040}01040                         \}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01041}01041                 \} \textcolor{keywordflow}{else} \{}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01042}01042                         bzero(\mbox{\hyperlink{vfs__syscalls_8c_a6defe41b89c760943b86089ec1838319}{buf}}, cur);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01043}01043                 \}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01044}01044 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01045}01045                 aiov.iov\_base = \mbox{\hyperlink{vfs__syscalls_8c_a6defe41b89c760943b86089ec1838319}{buf}};}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01046}01046                 aiov.iov\_len = cur;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01047}01047                 auio.uio\_iov = \&aiov;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01048}01048                 auio.uio\_iovcnt = 1;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01049}01049                 auio.uio\_offset = offset;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01050}01050                 auio.uio\_resid = cur;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01051}01051                 auio.uio\_segflg = UIO\_SYSSPACE;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01052}01052                 auio.uio\_rw = UIO\_WRITE;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01053}01053                 auio.uio\_td = td;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01054}01054 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01055}01055                 error = VOP\_WRITE(vp, \&auio, ap-\/>a\_ioflag, ap-\/>a\_cred);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01056}01056                 \textcolor{keywordflow}{if} (error != 0)}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01057}01057                         \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01058}01058 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01059}01059                 len -\/= cur;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01060}01060                 offset += cur;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01061}01061                 \textcolor{keywordflow}{if} (len == 0)}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01062}01062                         \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01063}01063                 \textcolor{keywordflow}{if} (\mbox{\hyperlink{kern__synch_8c_a40b3e9c24028eb3733d4f6958015945d}{should\_yield}}())}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01064}01064                         \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01065}01065         \}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01066}01066 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01067}01067  out:}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01068}01068         *ap-\/>a\_len = len;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01069}01069         *ap-\/>a\_offset = offset;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01070}01070         \mbox{\hyperlink{kern__malloc_8c_af6592f7dfb186f55f99e52892336fff0}{free}}(\mbox{\hyperlink{vfs__syscalls_8c_a6defe41b89c760943b86089ec1838319}{buf}}, M\_TEMP);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01071}01071         \textcolor{keywordflow}{return} (error);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01072}01072 \}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01073}01073 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01074}01074 \textcolor{keyword}{static} \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01075}\mbox{\hyperlink{vfs__default_8c_a91b22bc2e11fc5bc7ab17527cb464ea7}{01075}} \mbox{\hyperlink{vfs__default_8c_a91b22bc2e11fc5bc7ab17527cb464ea7}{vp\_zerofill}}(\textcolor{keyword}{struct} vnode *vp, \textcolor{keyword}{struct} vattr *vap, off\_t *offsetp, off\_t *lenp,}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01076}01076     \textcolor{keywordtype}{int} ioflag, \textcolor{keyword}{struct} ucred *cred)}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01077}01077 \{}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01078}01078         \textcolor{keywordtype}{int} iosize;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01079}01079         \textcolor{keywordtype}{int} error = 0;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01080}01080         \textcolor{keyword}{struct }iovec aiov;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01081}01081         \textcolor{keyword}{struct }uio auio;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01082}01082         \textcolor{keyword}{struct }thread *td;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01083}01083         off\_t offset, len;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01084}01084 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01085}01085         iosize = vap-\/>va\_blocksize;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01086}01086         td = curthread;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01087}01087         offset = *offsetp;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01088}01088         len = *lenp;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01089}01089 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01090}01090         \textcolor{keywordflow}{if} (iosize == 0)}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01091}01091                 iosize = BLKDEV\_IOSIZE;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01092}01092         \textcolor{comment}{/* If va\_blocksize is 512 bytes, iosize will be 4 kilobytes */}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01093}01093         iosize = min(iosize * 8, ZERO\_REGION\_SIZE);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01094}01094 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01095}01095         \textcolor{keywordflow}{while} (len > 0) \{}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01096}01096                 \textcolor{keywordtype}{int} xfersize = iosize;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01097}01097                 \textcolor{keywordflow}{if} (offset \% iosize != 0)}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01098}01098                         xfersize -\/= offset \% iosize;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01099}01099                 \textcolor{keywordflow}{if} (xfersize > len)}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01100}01100                         xfersize = len;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01101}01101 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01102}01102                 aiov.iov\_base = \_\_DECONST(\textcolor{keywordtype}{void} *, zero\_region);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01103}01103                 aiov.iov\_len = xfersize;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01104}01104                 auio.uio\_iov = \&aiov;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01105}01105                 auio.uio\_iovcnt = 1;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01106}01106                 auio.uio\_offset = offset;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01107}01107                 auio.uio\_resid = xfersize;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01108}01108                 auio.uio\_segflg = UIO\_SYSSPACE;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01109}01109                 auio.uio\_rw = UIO\_WRITE;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01110}01110                 auio.uio\_td = td;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01111}01111 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01112}01112                 error = VOP\_WRITE(vp, \&auio, ioflag, cred);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01113}01113                 \textcolor{keywordflow}{if} (error != 0) \{}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01114}01114                         len -\/= xfersize -\/ auio.uio\_resid;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01115}01115                         offset += xfersize -\/ auio.uio\_resid;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01116}01116                         \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01117}01117                 \}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01118}01118 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01119}01119                 len -\/= xfersize;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01120}01120                 offset += xfersize;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01121}01121         \}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01122}01122 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01123}01123         *offsetp = offset;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01124}01124         *lenp = len;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01125}01125         \textcolor{keywordflow}{return} (error);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01126}01126 \}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01127}01127 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01128}01128 \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01129}\mbox{\hyperlink{vfs__default_8c_ad9ce248e5d20f3c991fd92d3952b36ca}{01129}} \mbox{\hyperlink{vfs__default_8c_ad9ce248e5d20f3c991fd92d3952b36ca}{vop\_stddeallocate}}(\textcolor{keyword}{struct} vop\_deallocate\_args *ap)}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01130}01130 \{}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01131}01131         \textcolor{keyword}{struct }vnode *vp;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01132}01132         off\_t offset, len;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01133}01133         \textcolor{keyword}{struct }ucred *cred;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01134}01134         \textcolor{keywordtype}{int} error;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01135}01135         \textcolor{keyword}{struct }vattr va;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01136}01136         off\_t noff, xfersize, rem;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01137}01137 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01138}01138         vp = ap-\/>a\_vp;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01139}01139         offset = *ap-\/>a\_offset;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01140}01140         cred = ap-\/>a\_cred;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01141}01141 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01142}01142         error = VOP\_GETATTR(vp, \&va, cred);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01143}01143         \textcolor{keywordflow}{if} (error)}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01144}01144                 \textcolor{keywordflow}{return} (error);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01145}01145 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01146}01146         len = omin((off\_t)va.va\_size -\/ offset, *ap-\/>a\_len);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01147}01147         \textcolor{keywordflow}{while} (len > 0) \{}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01148}01148                 noff = offset;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01149}01149                 error = \mbox{\hyperlink{vfs__vnops_8c_a4b3552f4b268513cf1bdc0b91658dd43}{vn\_bmap\_seekhole\_locked}}(vp, FIOSEEKDATA, \&noff, cred);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01150}01150                 \textcolor{keywordflow}{if} (error) \{}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01151}01151                         \textcolor{keywordflow}{if} (error != ENXIO)}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01152}01152                                 \textcolor{comment}{/* XXX: Is it okay to fallback further? */}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01153}01153                                 \textcolor{keywordflow}{goto} out;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01154}01154 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01155}01155                         \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01156}01156 \textcolor{comment}{                         * No more data region to be filled}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01157}01157 \textcolor{comment}{                         */}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01158}01158                         offset += len;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01159}01159                         len = 0;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01160}01160                         error = 0;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01161}01161                         \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01162}01162                 \}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01163}01163                 KASSERT(noff >= offset, (\textcolor{stringliteral}{"{}FIOSEEKDATA going backward"{}}));}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01164}01164                 \textcolor{keywordflow}{if} (noff != offset) \{}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01165}01165                         xfersize = omin(noff -\/ offset, len);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01166}01166                         len -\/= xfersize;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01167}01167                         offset += xfersize;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01168}01168                         \textcolor{keywordflow}{if} (len == 0)}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01169}01169                                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01170}01170                 \}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01171}01171                 error = \mbox{\hyperlink{vfs__vnops_8c_a4b3552f4b268513cf1bdc0b91658dd43}{vn\_bmap\_seekhole\_locked}}(vp, FIOSEEKHOLE, \&noff, cred);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01172}01172                 \textcolor{keywordflow}{if} (error)}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01173}01173                         \textcolor{keywordflow}{goto} out;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01174}01174 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01175}01175                 \textcolor{comment}{/* Fill zeroes */}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01176}01176                 xfersize = rem = omin(noff -\/ offset, len);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01177}01177                 error = \mbox{\hyperlink{vfs__default_8c_a91b22bc2e11fc5bc7ab17527cb464ea7}{vp\_zerofill}}(vp, \&va, \&offset, \&rem, ap-\/>a\_ioflag, cred);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01178}01178                 \textcolor{keywordflow}{if} (error) \{}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01179}01179                         len -\/= xfersize -\/ rem;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01180}01180                         \textcolor{keywordflow}{goto} out;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01181}01181                 \}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01182}01182 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01183}01183                 len -\/= xfersize;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01184}01184                 \textcolor{keywordflow}{if} (\mbox{\hyperlink{kern__synch_8c_a40b3e9c24028eb3733d4f6958015945d}{should\_yield}}())}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01185}01185                         \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01186}01186         \}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01187}01187         \textcolor{comment}{/* Handle the case when offset is beyond EOF */}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01188}01188         \textcolor{keywordflow}{if} (len < 0)}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01189}01189                 len = 0;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01190}01190 out:}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01191}01191         *ap-\/>a\_offset = offset;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01192}01192         *ap-\/>a\_len = len;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01193}01193         \textcolor{keywordflow}{return} (error);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01194}01194 \}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01195}01195 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01196}01196 \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01197}\mbox{\hyperlink{vfs__default_8c_a37848f85f6f23673141ea63e9f6b4baa}{01197}} \mbox{\hyperlink{vfs__default_8c_a37848f85f6f23673141ea63e9f6b4baa}{vop\_stdadvise}}(\textcolor{keyword}{struct} vop\_advise\_args *ap)}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01198}01198 \{}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01199}01199         \textcolor{keyword}{struct }vnode *vp;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01200}01200         \textcolor{keyword}{struct }bufobj *bo;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01201}01201         daddr\_t startn, endn;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01202}01202         off\_t bstart, bend, \mbox{\hyperlink{linker__if_8m_a9f8ed6df20d1d777399fd4f0f7f5a719}{start}}, end;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01203}01203         \textcolor{keywordtype}{int} bsize, error;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01204}01204 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01205}01205         vp = ap-\/>a\_vp;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01206}01206         \textcolor{keywordflow}{switch} (ap-\/>a\_advice) \{}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01207}01207         \textcolor{keywordflow}{case} POSIX\_FADV\_WILLNEED:}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01208}01208                 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01209}01209 \textcolor{comment}{                 * Do nothing for now.  Filesystems should provide a}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01210}01210 \textcolor{comment}{                 * custom method which starts an asynchronous read of}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01211}01211 \textcolor{comment}{                 * the requested region.}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01212}01212 \textcolor{comment}{                 */}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01213}01213                 error = 0;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01214}01214                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01215}01215         \textcolor{keywordflow}{case} POSIX\_FADV\_DONTNEED:}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01216}01216                 error = 0;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01217}01217                 vn\_lock(vp, LK\_EXCLUSIVE | LK\_RETRY);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01218}01218                 \textcolor{keywordflow}{if} (VN\_IS\_DOOMED(vp)) \{}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01219}01219                         VOP\_UNLOCK(vp);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01220}01220                         \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01221}01221                 \}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01222}01222 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01223}01223                 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01224}01224 \textcolor{comment}{                 * Round to block boundaries (and later possibly further to}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01225}01225 \textcolor{comment}{                 * page boundaries).  Applications cannot reasonably be aware  }}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01226}01226 \textcolor{comment}{                 * of the boundaries, and the rounding must be to expand at}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01227}01227 \textcolor{comment}{                 * both extremities to cover enough.  It still doesn't cover}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01228}01228 \textcolor{comment}{                 * read-\/ahead.  For partial blocks, this gives unnecessary}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01229}01229 \textcolor{comment}{                 * discarding of buffers but is efficient enough since the}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01230}01230 \textcolor{comment}{                 * pages usually remain in VMIO for some time.}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01231}01231 \textcolor{comment}{                 */}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01232}01232                 bsize = vp-\/>v\_bufobj.bo\_bsize;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01233}01233                 bstart = rounddown(ap-\/>a\_start, bsize);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01234}01234                 bend = roundup(ap-\/>a\_end, bsize);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01235}01235 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01236}01236                 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01237}01237 \textcolor{comment}{                 * Deactivate pages in the specified range from the backing VM}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01238}01238 \textcolor{comment}{                 * object.  Pages that are resident in the buffer cache will}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01239}01239 \textcolor{comment}{                 * remain wired until their corresponding buffers are released}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01240}01240 \textcolor{comment}{                 * below.}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01241}01241 \textcolor{comment}{                 */}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01242}01242                 \textcolor{keywordflow}{if} (vp-\/>v\_object != NULL) \{}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01243}01243                         \mbox{\hyperlink{linker__if_8m_a9f8ed6df20d1d777399fd4f0f7f5a719}{start}} = trunc\_page(bstart);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01244}01244                         end = round\_page(bend);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01245}01245                         VM\_OBJECT\_RLOCK(vp-\/>v\_object);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01246}01246                         vm\_object\_page\_noreuse(vp-\/>v\_object, OFF\_TO\_IDX(\mbox{\hyperlink{linker__if_8m_a9f8ed6df20d1d777399fd4f0f7f5a719}{start}}),}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01247}01247                             OFF\_TO\_IDX(end));}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01248}01248                         VM\_OBJECT\_RUNLOCK(vp-\/>v\_object);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01249}01249                 \}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01250}01250 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01251}01251                 bo = \&vp-\/>v\_bufobj;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01252}01252                 BO\_RLOCK(bo);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01253}01253                 startn = bstart / bsize;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01254}01254                 endn = bend / bsize;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01255}01255                 error = \mbox{\hyperlink{vfs__subr_8c_a36063292b370efb18c5a573cbcea88b9}{bnoreuselist}}(\&bo-\/>bo\_clean, bo, startn, endn);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01256}01256                 \textcolor{keywordflow}{if} (error == 0)}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01257}01257                         error = \mbox{\hyperlink{vfs__subr_8c_a36063292b370efb18c5a573cbcea88b9}{bnoreuselist}}(\&bo-\/>bo\_dirty, bo, startn, endn);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01258}01258                 BO\_RUNLOCK(bo);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01259}01259                 VOP\_UNLOCK(vp);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01260}01260                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01261}01261         \textcolor{keywordflow}{default}:}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01262}01262                 error = EINVAL;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01263}01263                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01264}01264         \}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01265}01265         \textcolor{keywordflow}{return} (error);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01266}01266 \}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01267}01267 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01268}01268 \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01269}\mbox{\hyperlink{vfs__default_8c_a45a893d39d7c11a793a852d03553f209}{01269}} \mbox{\hyperlink{vfs__default_8c_a45a893d39d7c11a793a852d03553f209}{vop\_stdunp\_bind}}(\textcolor{keyword}{struct} vop\_unp\_bind\_args *ap)}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01270}01270 \{}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01271}01271 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01272}01272         ap-\/>a\_vp-\/>v\_unpcb = ap-\/>a\_unpcb;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01273}01273         \textcolor{keywordflow}{return} (0);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01274}01274 \}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01275}01275 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01276}01276 \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01277}\mbox{\hyperlink{vfs__default_8c_abb89d86dea801cf1d1db97617577b0c8}{01277}} \mbox{\hyperlink{vfs__default_8c_abb89d86dea801cf1d1db97617577b0c8}{vop\_stdunp\_connect}}(\textcolor{keyword}{struct} vop\_unp\_connect\_args *ap)}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01278}01278 \{}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01279}01279 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01280}01280         *ap-\/>a\_unpcb = ap-\/>a\_vp-\/>v\_unpcb;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01281}01281         \textcolor{keywordflow}{return} (0);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01282}01282 \}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01283}01283 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01284}01284 \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01285}\mbox{\hyperlink{vfs__default_8c_ac1a973320be7e518d82d64615ef81044}{01285}} \mbox{\hyperlink{vfs__default_8c_ac1a973320be7e518d82d64615ef81044}{vop\_stdunp\_detach}}(\textcolor{keyword}{struct} vop\_unp\_detach\_args *ap)}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01286}01286 \{}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01287}01287 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01288}01288         ap-\/>a\_vp-\/>v\_unpcb = NULL;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01289}01289         \textcolor{keywordflow}{return} (0);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01290}01290 \}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01291}01291 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01292}01292 \textcolor{keyword}{static} \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01293}\mbox{\hyperlink{vfs__default_8c_aebd2c8922cf43d9ed1f7e73197456cd8}{01293}} \mbox{\hyperlink{vfs__default_8c_aebd2c8922cf43d9ed1f7e73197456cd8}{vop\_stdis\_text}}(\textcolor{keyword}{struct} vop\_is\_text\_args *ap)}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01294}01294 \{}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01295}01295 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01296}01296         \textcolor{keywordflow}{return} (atomic\_load\_int(\&ap-\/>a\_vp-\/>v\_writecount) < 0);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01297}01297 \}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01298}01298 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01299}01299 \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01300}\mbox{\hyperlink{vfs__default_8c_a2d0b8fff542e9bac38bc40397c391417}{01300}} \mbox{\hyperlink{vfs__default_8c_a2d0b8fff542e9bac38bc40397c391417}{vop\_stdset\_text}}(\textcolor{keyword}{struct} vop\_set\_text\_args *ap)}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01301}01301 \{}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01302}01302         \textcolor{keyword}{struct }vnode *vp;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01303}01303         \textcolor{keywordtype}{int} n;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01304}01304         \textcolor{keywordtype}{bool} gotref;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01305}01305 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01306}01306         vp = ap-\/>a\_vp;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01307}01307 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01308}01308         n = atomic\_load\_int(\&vp-\/>v\_writecount);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01309}01309         \textcolor{keywordflow}{for} (;;) \{}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01310}01310                 \textcolor{keywordflow}{if} (\_\_predict\_false(n > 0)) \{}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01311}01311                         \textcolor{keywordflow}{return} (ETXTBSY);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01312}01312                 \}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01313}01313 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01314}01314                 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01315}01315 \textcolor{comment}{                 * Transition point, we may need to grab a reference on the vnode.}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01316}01316 \textcolor{comment}{                 *}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01317}01317 \textcolor{comment}{                 * Take the ref early As a safety measure against bogus calls}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01318}01318 \textcolor{comment}{                 * to vop\_stdunset\_text.}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01319}01319 \textcolor{comment}{                 */}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01320}01320                 \textcolor{keywordflow}{if} (n == 0) \{}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01321}01321                         gotref = \textcolor{keyword}{false};}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01322}01322                         \textcolor{keywordflow}{if} ((vn\_irflag\_read(vp) \& VIRF\_TEXT\_REF) != 0) \{}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01323}01323                                 \mbox{\hyperlink{vfs__subr_8c_a341b8b88f9350a672b16ef70d57f6f2d}{vref}}(vp);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01324}01324                                 gotref = \textcolor{keyword}{true};}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01325}01325                         \}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01326}01326                         \textcolor{keywordflow}{if} (atomic\_fcmpset\_int(\&vp-\/>v\_writecount, \&n, -\/1)) \{}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01327}01327                                 \textcolor{keywordflow}{return} (0);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01328}01328                         \}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01329}01329                         \textcolor{keywordflow}{if} (gotref) \{}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01330}01330                                 \mbox{\hyperlink{vfs__subr_8c_acfcc3d360b8a31398b967c40d9583ca8}{vunref}}(vp);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01331}01331                         \}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01332}01332                         \textcolor{keywordflow}{continue};}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01333}01333                 \}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01334}01334 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01335}01335                 MPASS(n < 0);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01336}01336                 \textcolor{keywordflow}{if} (atomic\_fcmpset\_int(\&vp-\/>v\_writecount, \&n, n -\/ 1)) \{}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01337}01337                         \textcolor{keywordflow}{return} (0);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01338}01338                 \}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01339}01339         \}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01340}01340         \_\_assert\_unreachable();}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01341}01341 \}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01342}01342 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01343}01343 \textcolor{keyword}{static} \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01344}\mbox{\hyperlink{vfs__default_8c_a2c11d46dbc987a8e138ceb50dc738cb8}{01344}} \mbox{\hyperlink{vfs__default_8c_a2c11d46dbc987a8e138ceb50dc738cb8}{vop\_stdunset\_text}}(\textcolor{keyword}{struct} vop\_unset\_text\_args *ap)}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01345}01345 \{}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01346}01346         \textcolor{keyword}{struct }vnode *vp;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01347}01347         \textcolor{keywordtype}{int} n;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01348}01348 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01349}01349         vp = ap-\/>a\_vp;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01350}01350 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01351}01351         n = atomic\_load\_int(\&vp-\/>v\_writecount);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01352}01352         \textcolor{keywordflow}{for} (;;) \{}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01353}01353                 \textcolor{keywordflow}{if} (\_\_predict\_false(n >= 0)) \{}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01354}01354                         \textcolor{keywordflow}{return} (EINVAL);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01355}01355                 \}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01356}01356 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01357}01357                 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01358}01358 \textcolor{comment}{                 * Transition point, we may need to release a reference on the vnode.}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01359}01359 \textcolor{comment}{                 */}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01360}01360                 \textcolor{keywordflow}{if} (n == -\/1) \{}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01361}01361                         \textcolor{keywordflow}{if} (atomic\_fcmpset\_int(\&vp-\/>v\_writecount, \&n, 0)) \{}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01362}01362                                 \textcolor{keywordflow}{if} ((vn\_irflag\_read(vp) \& VIRF\_TEXT\_REF) != 0) \{}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01363}01363                                         \mbox{\hyperlink{vfs__subr_8c_acfcc3d360b8a31398b967c40d9583ca8}{vunref}}(vp);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01364}01364                                 \}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01365}01365                                 \textcolor{keywordflow}{return} (0);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01366}01366                         \}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01367}01367                         \textcolor{keywordflow}{continue};}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01368}01368                 \}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01369}01369 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01370}01370                 MPASS(n < -\/1);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01371}01371                 \textcolor{keywordflow}{if} (atomic\_fcmpset\_int(\&vp-\/>v\_writecount, \&n, n + 1)) \{}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01372}01372                         \textcolor{keywordflow}{return} (0);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01373}01373                 \}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01374}01374         \}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01375}01375         \_\_assert\_unreachable();}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01376}01376 \}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01377}01377 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01378}01378 \textcolor{keyword}{static} \textcolor{keywordtype}{int} \_\_always\_inline}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01379}\mbox{\hyperlink{vfs__default_8c_a8b01e1955934ad725c14f74cb331f2af}{01379}} \mbox{\hyperlink{vfs__default_8c_a8b01e1955934ad725c14f74cb331f2af}{vop\_stdadd\_writecount\_impl}}(\textcolor{keyword}{struct} vop\_add\_writecount\_args *ap, \textcolor{keywordtype}{bool} handle\_msync)}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01380}01380 \{}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01381}01381         \textcolor{keyword}{struct }vnode *vp;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01382}01382         \textcolor{keyword}{struct }mount *mp \_\_diagused;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01383}01383         \textcolor{keywordtype}{int} n;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01384}01384 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01385}01385         vp = ap-\/>a\_vp;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01386}01386 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01387}01387 \textcolor{preprocessor}{\#ifdef INVARIANTS}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01388}01388         mp = vp-\/>v\_mount;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01389}01389         \textcolor{keywordflow}{if} (mp != NULL) \{}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01390}01390                 \textcolor{keywordflow}{if} (handle\_msync) \{}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01391}01391                         VNPASS((mp-\/>mnt\_kern\_flag \& MNTK\_NOMSYNC) == 0, vp);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01392}01392                 \} \textcolor{keywordflow}{else} \{}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01393}01393                         VNPASS((mp-\/>mnt\_kern\_flag \& MNTK\_NOMSYNC) != 0, vp);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01394}01394                 \}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01395}01395         \}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01396}01396 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01397}01397 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01398}01398         n = atomic\_load\_int(\&vp-\/>v\_writecount);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01399}01399         \textcolor{keywordflow}{for} (;;) \{}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01400}01400                 \textcolor{keywordflow}{if} (\_\_predict\_false(n < 0)) \{}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01401}01401                         \textcolor{keywordflow}{return} (ETXTBSY);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01402}01402                 \}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01403}01403 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01404}01404                 VNASSERT(n + ap-\/>a\_inc >= 0, vp,}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01405}01405                     (\textcolor{stringliteral}{"{}neg writecount increment \%d + \%d = \%d"{}}, n, ap-\/>a\_inc,}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01406}01406                     n + ap-\/>a\_inc));}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01407}01407                 \textcolor{keywordflow}{if} (n == 0) \{}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01408}01408                         \textcolor{keywordflow}{if} (handle\_msync) \{}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01409}01409                                 \mbox{\hyperlink{vfs__subr_8c_ad0e93910a6ddea0c7b25d097c78626f8}{vlazy}}(vp);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01410}01410                         \}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01411}01411                 \}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01412}01412 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01413}01413                 \textcolor{keywordflow}{if} (atomic\_fcmpset\_int(\&vp-\/>v\_writecount, \&n, n + ap-\/>a\_inc)) \{}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01414}01414                         \textcolor{keywordflow}{return} (0);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01415}01415                 \}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01416}01416         \}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01417}01417         \_\_assert\_unreachable();}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01418}01418 \}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01419}01419 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01420}01420 \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01421}\mbox{\hyperlink{vfs__default_8c_a5a177219f084e6602f9b409ee2b40919}{01421}} \mbox{\hyperlink{vfs__default_8c_a5a177219f084e6602f9b409ee2b40919}{vop\_stdadd\_writecount}}(\textcolor{keyword}{struct} vop\_add\_writecount\_args *ap)}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01422}01422 \{}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01423}01423 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01424}01424         \textcolor{keywordflow}{return} (\mbox{\hyperlink{vfs__default_8c_a8b01e1955934ad725c14f74cb331f2af}{vop\_stdadd\_writecount\_impl}}(ap, \textcolor{keyword}{true}));}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01425}01425 \}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01426}01426 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01427}01427 \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01428}\mbox{\hyperlink{vfs__default_8c_a55497e0772165bdf97ba338712a29498}{01428}} \mbox{\hyperlink{vfs__default_8c_a55497e0772165bdf97ba338712a29498}{vop\_stdadd\_writecount\_nomsync}}(\textcolor{keyword}{struct} vop\_add\_writecount\_args *ap)}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01429}01429 \{}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01430}01430 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01431}01431         \textcolor{keywordflow}{return} (\mbox{\hyperlink{vfs__default_8c_a8b01e1955934ad725c14f74cb331f2af}{vop\_stdadd\_writecount\_impl}}(ap, \textcolor{keyword}{false}));}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01432}01432 \}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01433}01433 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01434}01434 \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01435}\mbox{\hyperlink{vfs__default_8c_ad992d019a1fe6360512698eaa8a64d1d}{01435}} \mbox{\hyperlink{vfs__default_8c_ad992d019a1fe6360512698eaa8a64d1d}{vop\_stdneed\_inactive}}(\textcolor{keyword}{struct} vop\_need\_inactive\_args *ap)}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01436}01436 \{}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01437}01437 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01438}01438         \textcolor{keywordflow}{return} (1);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01439}01439 \}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01440}01440 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01441}01441 \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01442}\mbox{\hyperlink{vfs__default_8c_a152c261225161ef93ce889a0fbb5c6fa}{01442}} \mbox{\hyperlink{vfs__default_8c_a152c261225161ef93ce889a0fbb5c6fa}{vop\_stdioctl}}(\textcolor{keyword}{struct} vop\_ioctl\_args *ap)}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01443}01443 \{}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01444}01444         \textcolor{keyword}{struct }vnode *vp;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01445}01445         \textcolor{keyword}{struct }vattr va;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01446}01446         off\_t *offp;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01447}01447         \textcolor{keywordtype}{int} error;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01448}01448 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01449}01449         \textcolor{keywordflow}{switch} (ap-\/>a\_command) \{}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01450}01450         \textcolor{keywordflow}{case} FIOSEEKDATA:}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01451}01451         \textcolor{keywordflow}{case} FIOSEEKHOLE:}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01452}01452                 vp = ap-\/>a\_vp;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01453}01453                 error = vn\_lock(vp, LK\_SHARED);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01454}01454                 \textcolor{keywordflow}{if} (error != 0)}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01455}01455                         \textcolor{keywordflow}{return} (EBADF);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01456}01456                 \textcolor{keywordflow}{if} (vp-\/>v\_type == VREG)}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01457}01457                         error = VOP\_GETATTR(vp, \&va, ap-\/>a\_cred);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01458}01458                 \textcolor{keywordflow}{else}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01459}01459                         error = ENOTTY;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01460}01460                 \textcolor{keywordflow}{if} (error == 0) \{}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01461}01461                         offp = ap-\/>a\_data;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01462}01462                         \textcolor{keywordflow}{if} (*offp < 0 || *offp >= va.va\_size)}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01463}01463                                 error = ENXIO;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01464}01464                         \textcolor{keywordflow}{else} \textcolor{keywordflow}{if} (ap-\/>a\_command == FIOSEEKHOLE)}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01465}01465                                 *offp = va.va\_size;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01466}01466                 \}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01467}01467                 VOP\_UNLOCK(vp);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01468}01468                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01469}01469         \textcolor{keywordflow}{default}:}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01470}01470                 error = ENOTTY;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01471}01471                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01472}01472         \}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01473}01473         \textcolor{keywordflow}{return} (error);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01474}01474 \}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01475}01475 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01476}01476 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01477}01477 \textcolor{comment}{ * vfs default ops}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01478}01478 \textcolor{comment}{ * used to fill the vfs function table to get reasonable default return values.}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01479}01479 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01480}01480 \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01481}\mbox{\hyperlink{vfs__default_8c_a690d33cac48b6488b2f46de9055e3636}{01481}} \mbox{\hyperlink{vfs__default_8c_a690d33cac48b6488b2f46de9055e3636}{vfs\_stdroot}} (mp, \mbox{\hyperlink{subr__stats_8c_a1e87af3c18a2fd36c61faf89949bdc3f}{flags}}, vpp)}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01482}01482         \textcolor{keyword}{struct }mount *mp;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01483}01483         \textcolor{keywordtype}{int} \mbox{\hyperlink{subr__stats_8c_a1e87af3c18a2fd36c61faf89949bdc3f}{flags}};}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01484}01484         \textcolor{keyword}{struct }vnode **vpp;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01485}01485 \{}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01486}01486 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01487}01487         \textcolor{keywordflow}{return} (EOPNOTSUPP);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01488}01488 \}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01489}01489 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01490}01490 \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01491}\mbox{\hyperlink{vfs__default_8c_a732c0c4241ad5c0a2f656020b4ab96ab}{01491}} \mbox{\hyperlink{vfs__default_8c_a732c0c4241ad5c0a2f656020b4ab96ab}{vfs\_stdstatfs}} (mp, sbp)}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01492}01492         \textcolor{keyword}{struct }mount *mp;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01493}01493         \textcolor{keyword}{struct }statfs *sbp;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01494}01494 \{}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01495}01495 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01496}01496         \textcolor{keywordflow}{return} (EOPNOTSUPP);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01497}01497 \}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01498}01498 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01499}01499 \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01500}\mbox{\hyperlink{vfs__default_8c_a799a317559d2833158c1dbc60609b602}{01500}} \mbox{\hyperlink{vfs__default_8c_a799a317559d2833158c1dbc60609b602}{vfs\_stdquotactl}} (mp, cmds, uid, arg, mp\_busy)}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01501}01501         \textcolor{keyword}{struct }mount *mp;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01502}01502         \textcolor{keywordtype}{int} cmds;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01503}01503         uid\_t uid;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01504}01504         \textcolor{keywordtype}{void} *arg;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01505}01505         \textcolor{keywordtype}{bool} *mp\_busy;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01506}01506 \{}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01507}01507         \textcolor{keywordflow}{return} (EOPNOTSUPP);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01508}01508 \}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01509}01509 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01510}01510 \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01511}\mbox{\hyperlink{vfs__default_8c_ab406397961fa90736016d22c78f802f5}{01511}} \mbox{\hyperlink{vfs__default_8c_ab406397961fa90736016d22c78f802f5}{vfs\_stdsync}}(mp, waitfor)}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01512}01512         \textcolor{keyword}{struct }mount *mp;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01513}01513         \textcolor{keywordtype}{int} waitfor;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01514}01514 \{}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01515}01515         \textcolor{keyword}{struct }vnode *vp, *mvp;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01516}01516         \textcolor{keyword}{struct }thread *td;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01517}01517         \textcolor{keywordtype}{int} error, lockreq, allerror = 0;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01518}01518 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01519}01519         td = curthread;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01520}01520         lockreq = LK\_EXCLUSIVE | LK\_INTERLOCK;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01521}01521         \textcolor{keywordflow}{if} (waitfor != MNT\_WAIT)}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01522}01522                 lockreq |= LK\_NOWAIT;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01523}01523         \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01524}01524 \textcolor{comment}{         * Force stale buffer cache information to be flushed.}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01525}01525 \textcolor{comment}{         */}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01526}01526 loop:}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01527}01527         MNT\_VNODE\_FOREACH\_ALL(vp, mp, mvp) \{}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01528}01528                 \textcolor{keywordflow}{if} (vp-\/>v\_bufobj.bo\_dirty.bv\_cnt == 0) \{}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01529}01529                         VI\_UNLOCK(vp);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01530}01530                         \textcolor{keywordflow}{continue};}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01531}01531                 \}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01532}01532                 \textcolor{keywordflow}{if} ((error = \mbox{\hyperlink{vfs__subr_8c_afa43aa06be24a314f2f1d33f0169b7ea}{vget}}(vp, lockreq)) != 0) \{}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01533}01533                         \textcolor{keywordflow}{if} (error == ENOENT) \{}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01534}01534                                 MNT\_VNODE\_FOREACH\_ALL\_ABORT(mp, mvp);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01535}01535                                 \textcolor{keywordflow}{goto} loop;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01536}01536                         \}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01537}01537                         \textcolor{keywordflow}{continue};}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01538}01538                 \}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01539}01539                 error = VOP\_FSYNC(vp, waitfor, td);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01540}01540                 \textcolor{keywordflow}{if} (error)}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01541}01541                         allerror = error;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01542}01542                 \mbox{\hyperlink{vfs__subr_8c_aadf251b17eee3424efb1b2b487a139fa}{vput}}(vp);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01543}01543         \}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01544}01544         \textcolor{keywordflow}{return} (allerror);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01545}01545 \}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01546}01546 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01547}01547 \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01548}\mbox{\hyperlink{vfs__default_8c_ae68e04097d5b660d7736e90a2defd9db}{01548}} \mbox{\hyperlink{vfs__default_8c_ae68e04097d5b660d7736e90a2defd9db}{vfs\_stdnosync}} (mp, waitfor)}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01549}01549         \textcolor{keyword}{struct }mount *mp;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01550}01550         \textcolor{keywordtype}{int} waitfor;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01551}01551 \{}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01552}01552 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01553}01553         \textcolor{keywordflow}{return} (0);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01554}01554 \}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01555}01555 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01556}01556 \textcolor{keyword}{static} \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01557}\mbox{\hyperlink{vfs__default_8c_a85d60cd828de2afd41e2cd74d0f64289}{01557}} \mbox{\hyperlink{vfs__default_8c_a85d60cd828de2afd41e2cd74d0f64289}{vop\_stdcopy\_file\_range}}(\textcolor{keyword}{struct} vop\_copy\_file\_range\_args *ap)}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01558}01558 \{}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01559}01559         \textcolor{keywordtype}{int} error;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01560}01560 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01561}01561         error = \mbox{\hyperlink{vfs__vnops_8c_a5aabb2dedfd58cd9f9480037f0e1ed32}{vn\_generic\_copy\_file\_range}}(ap-\/>a\_invp, ap-\/>a\_inoffp,}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01562}01562             ap-\/>a\_outvp, ap-\/>a\_outoffp, ap-\/>a\_lenp, ap-\/>a\_flags, ap-\/>a\_incred,}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01563}01563             ap-\/>a\_outcred, ap-\/>a\_fsizetd);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01564}01564         \textcolor{keywordflow}{return} (error);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01565}01565 \}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01566}01566 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01567}01567 \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01568}\mbox{\hyperlink{vfs__default_8c_a5711a603267e2a5edc406b960cdfa3df}{01568}} \mbox{\hyperlink{vfs__default_8c_a5711a603267e2a5edc406b960cdfa3df}{vfs\_stdvget}} (mp, ino, \mbox{\hyperlink{subr__stats_8c_a1e87af3c18a2fd36c61faf89949bdc3f}{flags}}, vpp)}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01569}01569         \textcolor{keyword}{struct }mount *mp;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01570}01570         ino\_t ino;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01571}01571         \textcolor{keywordtype}{int} \mbox{\hyperlink{subr__stats_8c_a1e87af3c18a2fd36c61faf89949bdc3f}{flags}};}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01572}01572         \textcolor{keyword}{struct }vnode **vpp;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01573}01573 \{}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01574}01574 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01575}01575         \textcolor{keywordflow}{return} (EOPNOTSUPP);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01576}01576 \}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01577}01577 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01578}01578 \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01579}\mbox{\hyperlink{vfs__default_8c_a9760db1d9b751eca5de2f94aa1bb5cec}{01579}} \mbox{\hyperlink{vfs__default_8c_a9760db1d9b751eca5de2f94aa1bb5cec}{vfs\_stdfhtovp}} (mp, fhp, \mbox{\hyperlink{subr__stats_8c_a1e87af3c18a2fd36c61faf89949bdc3f}{flags}}, vpp)}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01580}01580         \textcolor{keyword}{struct }mount *mp;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01581}01581         \textcolor{keyword}{struct }fid *fhp;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01582}01582         \textcolor{keywordtype}{int} \mbox{\hyperlink{subr__stats_8c_a1e87af3c18a2fd36c61faf89949bdc3f}{flags}};}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01583}01583         \textcolor{keyword}{struct }vnode **vpp;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01584}01584 \{}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01585}01585 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01586}01586         \textcolor{keywordflow}{return} (EOPNOTSUPP);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01587}01587 \}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01588}01588 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01589}01589 \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01590}\mbox{\hyperlink{vfs__default_8c_a74981e0ca1cb5d5da02d6e686760d8fc}{01590}} \mbox{\hyperlink{vfs__default_8c_a74981e0ca1cb5d5da02d6e686760d8fc}{vfs\_stdinit}} (vfsp)}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01591}01591         \textcolor{keyword}{struct }\mbox{\hyperlink{vfs__init_8c_a0e9f101e0b10209f74965a600b8d7de2}{vfsconf}} *vfsp;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01592}01592 \{}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01593}01593 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01594}01594         \textcolor{keywordflow}{return} (0);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01595}01595 \}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01596}01596 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01597}01597 \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01598}\mbox{\hyperlink{vfs__default_8c_aad3eef2f58994dd7ef012aa16361905a}{01598}} \mbox{\hyperlink{vfs__default_8c_aad3eef2f58994dd7ef012aa16361905a}{vfs\_stduninit}} (vfsp)}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01599}01599         \textcolor{keyword}{struct }\mbox{\hyperlink{vfs__init_8c_a0e9f101e0b10209f74965a600b8d7de2}{vfsconf}} *vfsp;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01600}01600 \{}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01601}01601 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01602}01602         \textcolor{keywordflow}{return}(0);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01603}01603 \}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01604}01604 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01605}01605 \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01606}\mbox{\hyperlink{vfs__default_8c_a3a58de49fe5e090280d6b5afa94b9e22}{01606}} \mbox{\hyperlink{vfs__default_8c_a3a58de49fe5e090280d6b5afa94b9e22}{vfs\_stdextattrctl}}(mp, cmd, filename\_vp, \mbox{\hyperlink{vfs__extattr_8c_a97af1c1df0622955c63ee787af7ef01b}{attrnamespace}}, attrname)}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01607}01607         \textcolor{keyword}{struct }mount *mp;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01608}01608         \textcolor{keywordtype}{int} cmd;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01609}01609         \textcolor{keyword}{struct }vnode *filename\_vp;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01610}01610         \textcolor{keywordtype}{int} \mbox{\hyperlink{vfs__extattr_8c_a97af1c1df0622955c63ee787af7ef01b}{attrnamespace}};}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01611}01611         \textcolor{keyword}{const} \textcolor{keywordtype}{char} *attrname;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01612}01612 \{}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01613}01613 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01614}01614         \textcolor{keywordflow}{if} (filename\_vp != NULL)}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01615}01615                 VOP\_UNLOCK(filename\_vp);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01616}01616         \textcolor{keywordflow}{return} (EOPNOTSUPP);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01617}01617 \}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01618}01618 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01619}01619 \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01620}\mbox{\hyperlink{vfs__default_8c_a2371b3ecab19bd245d3f2b445f62a919}{01620}} \mbox{\hyperlink{vfs__default_8c_a2371b3ecab19bd245d3f2b445f62a919}{vfs\_stdsysctl}}(mp, op, req)}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01621}01621         \textcolor{keyword}{struct }mount *mp;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01622}01622         fsctlop\_t op;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01623}01623         \textcolor{keyword}{struct }sysctl\_req *req;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01624}01624 \{}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01625}01625 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01626}01626         \textcolor{keywordflow}{return} (EOPNOTSUPP);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01627}01627 \}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01628}01628 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01629}01629 \textcolor{keyword}{static} vop\_bypass\_t *}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01630}\mbox{\hyperlink{vfs__default_8c_a63e8cb58f4a947fff6c1d8b669026ed2}{01630}} \mbox{\hyperlink{vfs__default_8c_a63e8cb58f4a947fff6c1d8b669026ed2}{bp\_by\_off}}(\textcolor{keyword}{struct} vop\_vector *vop, \textcolor{keyword}{struct} vop\_generic\_args *a)}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01631}01631 \{}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01632}01632 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01633}01633         \textcolor{keywordflow}{return} (*(vop\_bypass\_t **)((\textcolor{keywordtype}{char} *)vop + a-\/>a\_desc-\/>vdesc\_vop\_offset));}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01634}01634 \}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01635}01635 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01636}01636 \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01637}\mbox{\hyperlink{vfs__default_8c_aab75b285f2d7d8b4d11c2652f3c6cb32}{01637}} \mbox{\hyperlink{vfs__default_8c_aab75b285f2d7d8b4d11c2652f3c6cb32}{vop\_sigdefer}}(\textcolor{keyword}{struct} vop\_vector *vop, \textcolor{keyword}{struct} vop\_generic\_args *a)}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01638}01638 \{}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01639}01639         vop\_bypass\_t *bp;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01640}01640         \textcolor{keywordtype}{int} prev\_stops, rc;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01641}01641 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01642}01642         bp = \mbox{\hyperlink{vfs__default_8c_a63e8cb58f4a947fff6c1d8b669026ed2}{bp\_by\_off}}(vop, a);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01643}01643         MPASS(bp != NULL);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01644}01644 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01645}01645         prev\_stops = sigdeferstop(SIGDEFERSTOP\_SILENT);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01646}01646         rc = bp(a);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01647}01647         sigallowstop(prev\_stops);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01648}01648         \textcolor{keywordflow}{return} (rc);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01649}01649 \}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01650}01650 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01651}01651 \textcolor{keyword}{static} \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01652}\mbox{\hyperlink{vfs__default_8c_a2541a61b4895bfa0fa086297c8c0a5e0}{01652}} \mbox{\hyperlink{vfs__default_8c_a2541a61b4895bfa0fa086297c8c0a5e0}{vop\_stdstat}}(\textcolor{keyword}{struct} vop\_stat\_args *a)}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01653}01653 \{}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01654}01654         \textcolor{keyword}{struct }vattr vattr;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01655}01655         \textcolor{keyword}{struct }vattr *vap;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01656}01656         \textcolor{keyword}{struct }vnode *vp;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01657}01657         \textcolor{keyword}{struct }stat *sb;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01658}01658         \textcolor{keywordtype}{int} error;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01659}01659         u\_short \mbox{\hyperlink{vfs__syscalls_8c_adc8d3cf511ceb277aea0cfa1cd027c59}{mode}};}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01660}01660 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01661}01661         vp = a-\/>a\_vp;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01662}01662         sb = a-\/>a\_sb;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01663}01663 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01664}01664         error = vop\_stat\_helper\_pre(a);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01665}01665         \textcolor{keywordflow}{if} (error != 0)}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01666}01666                 \textcolor{keywordflow}{return} (error);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01667}01667 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01668}01668         vap = \&vattr;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01669}01669 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01670}01670         \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01671}01671 \textcolor{comment}{         * Initialize defaults for new and unusual fields, so that file}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01672}01672 \textcolor{comment}{         * systems which don't support these fields don't need to know}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01673}01673 \textcolor{comment}{         * about them.}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01674}01674 \textcolor{comment}{         */}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01675}01675         vap-\/>va\_birthtime.tv\_sec = -\/1;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01676}01676         vap-\/>va\_birthtime.tv\_nsec = 0;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01677}01677         vap-\/>va\_fsid = VNOVAL;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01678}01678         vap-\/>va\_gen = 0;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01679}01679         vap-\/>va\_rdev = NODEV;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01680}01680 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01681}01681         error = VOP\_GETATTR(vp, vap, a-\/>a\_active\_cred);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01682}01682         \textcolor{keywordflow}{if} (error)}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01683}01683                 \textcolor{keywordflow}{goto} out;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01684}01684 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01685}01685         \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01686}01686 \textcolor{comment}{         * Zero the spare stat fields}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01687}01687 \textcolor{comment}{         */}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01688}01688         bzero(sb, \textcolor{keyword}{sizeof} *sb);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01689}01689 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01690}01690         \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01691}01691 \textcolor{comment}{         * Copy from vattr table}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01692}01692 \textcolor{comment}{         */}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01693}01693         \textcolor{keywordflow}{if} (vap-\/>va\_fsid != VNOVAL)}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01694}01694                 sb-\/>st\_dev = vap-\/>va\_fsid;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01695}01695         \textcolor{keywordflow}{else}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01696}01696                 sb-\/>st\_dev = vp-\/>v\_mount-\/>mnt\_stat.f\_fsid.val[0];}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01697}01697         sb-\/>st\_ino = vap-\/>va\_fileid;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01698}01698         \mbox{\hyperlink{vfs__syscalls_8c_adc8d3cf511ceb277aea0cfa1cd027c59}{mode}} = vap-\/>va\_mode;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01699}01699         \textcolor{keywordflow}{switch} (vap-\/>va\_type) \{}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01700}01700         \textcolor{keywordflow}{case} VREG:}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01701}01701                 \mbox{\hyperlink{vfs__syscalls_8c_adc8d3cf511ceb277aea0cfa1cd027c59}{mode}} |= S\_IFREG;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01702}01702                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01703}01703         \textcolor{keywordflow}{case} VDIR:}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01704}01704                 \mbox{\hyperlink{vfs__syscalls_8c_adc8d3cf511ceb277aea0cfa1cd027c59}{mode}} |= S\_IFDIR;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01705}01705                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01706}01706         \textcolor{keywordflow}{case} VBLK:}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01707}01707                 \mbox{\hyperlink{vfs__syscalls_8c_adc8d3cf511ceb277aea0cfa1cd027c59}{mode}} |= S\_IFBLK;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01708}01708                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01709}01709         \textcolor{keywordflow}{case} VCHR:}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01710}01710                 \mbox{\hyperlink{vfs__syscalls_8c_adc8d3cf511ceb277aea0cfa1cd027c59}{mode}} |= S\_IFCHR;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01711}01711                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01712}01712         \textcolor{keywordflow}{case} VLNK:}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01713}01713                 \mbox{\hyperlink{vfs__syscalls_8c_adc8d3cf511ceb277aea0cfa1cd027c59}{mode}} |= S\_IFLNK;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01714}01714                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01715}01715         \textcolor{keywordflow}{case} VSOCK:}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01716}01716                 \mbox{\hyperlink{vfs__syscalls_8c_adc8d3cf511ceb277aea0cfa1cd027c59}{mode}} |= S\_IFSOCK;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01717}01717                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01718}01718         \textcolor{keywordflow}{case} VFIFO:}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01719}01719                 \mbox{\hyperlink{vfs__syscalls_8c_adc8d3cf511ceb277aea0cfa1cd027c59}{mode}} |= S\_IFIFO;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01720}01720                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01721}01721         \textcolor{keywordflow}{default}:}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01722}01722                 error = EBADF;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01723}01723                 \textcolor{keywordflow}{goto} out;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01724}01724         \}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01725}01725         sb-\/>st\_mode = \mbox{\hyperlink{vfs__syscalls_8c_adc8d3cf511ceb277aea0cfa1cd027c59}{mode}};}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01726}01726         sb-\/>st\_nlink = vap-\/>va\_nlink;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01727}01727         sb-\/>st\_uid = vap-\/>va\_uid;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01728}01728         sb-\/>st\_gid = vap-\/>va\_gid;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01729}01729         sb-\/>st\_rdev = vap-\/>va\_rdev;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01730}01730         \textcolor{keywordflow}{if} (vap-\/>va\_size > OFF\_MAX) \{}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01731}01731                 error = EOVERFLOW;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01732}01732                 \textcolor{keywordflow}{goto} out;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01733}01733         \}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01734}01734         sb-\/>st\_size = vap-\/>va\_size;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01735}01735         sb-\/>st\_atim.tv\_sec = vap-\/>va\_atime.tv\_sec;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01736}01736         sb-\/>st\_atim.tv\_nsec = vap-\/>va\_atime.tv\_nsec;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01737}01737         sb-\/>st\_mtim.tv\_sec = vap-\/>va\_mtime.tv\_sec;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01738}01738         sb-\/>st\_mtim.tv\_nsec = vap-\/>va\_mtime.tv\_nsec;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01739}01739         sb-\/>st\_ctim.tv\_sec = vap-\/>va\_ctime.tv\_sec;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01740}01740         sb-\/>st\_ctim.tv\_nsec = vap-\/>va\_ctime.tv\_nsec;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01741}01741         sb-\/>st\_birthtim.tv\_sec = vap-\/>va\_birthtime.tv\_sec;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01742}01742         sb-\/>st\_birthtim.tv\_nsec = vap-\/>va\_birthtime.tv\_nsec;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01743}01743 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01744}01744         \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01745}01745 \textcolor{comment}{         * According to www.opengroup.org, the meaning of st\_blksize is}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01746}01746 \textcolor{comment}{         *   "{}a filesystem-\/specific preferred I/O block size for this}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01747}01747 \textcolor{comment}{         *    object.  In some filesystem types, this may vary from file}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01748}01748 \textcolor{comment}{         *    to file"{}}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01749}01749 \textcolor{comment}{         * Use minimum/default of PAGE\_SIZE (e.g. for VCHR).}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01750}01750 \textcolor{comment}{         */}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01751}01751 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01752}01752         sb-\/>st\_blksize = max(PAGE\_SIZE, vap-\/>va\_blocksize);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01753}01753         sb-\/>st\_flags = vap-\/>va\_flags;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01754}01754         sb-\/>st\_blocks = vap-\/>va\_bytes / S\_BLKSIZE;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01755}01755         sb-\/>st\_gen = vap-\/>va\_gen;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01756}01756 out:}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01757}01757         \textcolor{keywordflow}{return} (vop\_stat\_helper\_post(a, error));}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01758}01758 \}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01759}01759 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01760}01760 \textcolor{keyword}{static} \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01761}\mbox{\hyperlink{vfs__default_8c_a279230c2473c77400fc7e8a3a8a22fae}{01761}} \mbox{\hyperlink{vfs__default_8c_a5c766d29b8f7133e8e0f62d918605f50}{vop\_stdread\_pgcache}}(\textcolor{keyword}{struct} vop\_read\_pgcache\_args *ap \_\_unused)}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01762}01762 \{}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01763}01763         \textcolor{keywordflow}{return} (EJUSTRETURN);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01764}01764 \}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01765}01765 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01766}01766 \textcolor{keyword}{static} \textcolor{keywordtype}{int}}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01767}\mbox{\hyperlink{vfs__default_8c_a4e5d948f249d18c0829a36831c86e908}{01767}} \mbox{\hyperlink{vfs__default_8c_a4e5d948f249d18c0829a36831c86e908}{vop\_stdvput\_pair}}(\textcolor{keyword}{struct} vop\_vput\_pair\_args *ap)}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01768}01768 \{}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01769}01769         \textcolor{keyword}{struct }vnode *dvp, *vp, **vpp;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01770}01770 }
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01771}01771         dvp = ap-\/>a\_dvp;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01772}01772         vpp = ap-\/>a\_vpp;}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01773}01773         \mbox{\hyperlink{vfs__subr_8c_aadf251b17eee3424efb1b2b487a139fa}{vput}}(dvp);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01774}01774         \textcolor{keywordflow}{if} (vpp != NULL \&\& ap-\/>a\_unlock\_vp \&\& (vp = *vpp) != NULL)}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01775}01775                 \mbox{\hyperlink{vfs__subr_8c_aadf251b17eee3424efb1b2b487a139fa}{vput}}(vp);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01776}01776         \textcolor{keywordflow}{return} (0);}
\DoxyCodeLine{\Hypertarget{vfs__default_8c_source_l01777}01777 \}}

\end{DoxyCode}
