diff options
Diffstat (limited to 'static/netbsd/man9/vfsops.9 3.html')
| -rw-r--r-- | static/netbsd/man9/vfsops.9 3.html | 461 |
1 files changed, 0 insertions, 461 deletions
diff --git a/static/netbsd/man9/vfsops.9 3.html b/static/netbsd/man9/vfsops.9 3.html deleted file mode 100644 index 0466fe6d..00000000 --- a/static/netbsd/man9/vfsops.9 3.html +++ /dev/null @@ -1,461 +0,0 @@ -<table class="head"> - <tr> - <td class="head-ltitle">VFSOPS(9)</td> - <td class="head-vol">Kernel Developer's Manual</td> - <td class="head-rtitle">VFSOPS(9)</td> - </tr> -</table> -<div class="manual-text"> -<section class="Sh"> -<h1 class="Sh" id="NAME"><a class="permalink" href="#NAME">NAME</a></h1> -<p class="Pp"><code class="Nm">vfsops</code>, <code class="Nm">VFS_MOUNT</code>, - <code class="Nm">VFS_START</code>, <code class="Nm">VFS_UNMOUNT</code>, - <code class="Nm">VFS_ROOT</code>, <code class="Nm">VFS_QUOTACTL</code>, - <code class="Nm">VFS_STATVFS</code>, <code class="Nm">VFS_SYNC</code>, - <code class="Nm">VFS_VGET</code>, <code class="Nm">VFS_LOADVNODE</code>, - <code class="Nm">VFS_NEWVNODE</code>, <code class="Nm">VFS_FHTOVP</code>, - <code class="Nm">VFS_VPTOFH</code>, <code class="Nm">VFS_SNAPSHOT</code>, - <code class="Nm">VFS_SUSPENDCTL</code> — <span class="Nd">kernel file - system interface</span></p> -</section> -<section class="Sh"> -<h1 class="Sh" id="SYNOPSIS"><a class="permalink" href="#SYNOPSIS">SYNOPSIS</a></h1> -<p class="Pp"><code class="In">#include - <<a class="In">sys/param.h</a>></code> - <br/> - <code class="In">#include <<a class="In">sys/mount.h</a>></code> - <br/> - <code class="In">#include <<a class="In">sys/vnode.h</a>></code></p> -<p class="Pp"><var class="Ft">int</var> - <br/> - <code class="Fn">VFS_MOUNT</code>(<var class="Fa">struct mount *mp</var>, - <var class="Fa">const char *path</var>, <var class="Fa">void *data</var>, - <var class="Fa">size_t *dlen</var>);</p> -<p class="Pp"><var class="Ft">int</var> - <br/> - <code class="Fn">VFS_START</code>(<var class="Fa" style="white-space: nowrap;">struct - mount *mp</var>, <var class="Fa" style="white-space: nowrap;">int - flags</var>);</p> -<p class="Pp"><var class="Ft">int</var> - <br/> - <code class="Fn">VFS_UNMOUNT</code>(<var class="Fa" style="white-space: nowrap;">struct - mount *mp</var>, <var class="Fa" style="white-space: nowrap;">int - mntflags</var>);</p> -<p class="Pp"><var class="Ft">int</var> - <br/> - <code class="Fn">VFS_ROOT</code>(<var class="Fa" style="white-space: nowrap;">struct - mount *mp</var>, <var class="Fa" style="white-space: nowrap;">int - lktype</var>, <var class="Fa" style="white-space: nowrap;">struct vnode - **vpp</var>);</p> -<p class="Pp"><var class="Ft">int</var> - <br/> - <code class="Fn">VFS_QUOTACTL</code>(<var class="Fa" style="white-space: nowrap;">struct - mount *mp</var>, <var class="Fa" style="white-space: nowrap;">struct - quotactl_args *args</var>);</p> -<p class="Pp"><var class="Ft">int</var> - <br/> - <code class="Fn">VFS_STATVFS</code>(<var class="Fa" style="white-space: nowrap;">struct - mount *mp</var>, <var class="Fa" style="white-space: nowrap;">struct statvfs - *sbp</var>);</p> -<p class="Pp"><var class="Ft">int</var> - <br/> - <code class="Fn">VFS_SYNC</code>(<var class="Fa" style="white-space: nowrap;">struct - mount *mp</var>, <var class="Fa" style="white-space: nowrap;">int - waitfor</var>, <var class="Fa" style="white-space: nowrap;">kauth_cred_t - cred</var>);</p> -<p class="Pp"><var class="Ft">int</var> - <br/> - <code class="Fn">VFS_VGET</code>(<var class="Fa" style="white-space: nowrap;">struct - mount *mp</var>, <var class="Fa" style="white-space: nowrap;">ino_t - ino</var>, <var class="Fa" style="white-space: nowrap;">int lktype</var>, - <var class="Fa" style="white-space: nowrap;">struct vnode **vpp</var>);</p> -<p class="Pp"><var class="Ft">int</var> - <br/> - <code class="Fn">VFS_LOADVNODE</code>(<var class="Fa" style="white-space: nowrap;">struct - mount *mp</var>, <var class="Fa" style="white-space: nowrap;">struct vnode - *vp</var>, <var class="Fa" style="white-space: nowrap;">const void - *key</var>, <var class="Fa" style="white-space: nowrap;">size_t - key_len</var>, <var class="Fa" style="white-space: nowrap;">const void - **new_key</var>);</p> -<p class="Pp"><var class="Ft">int</var> - <br/> - <code class="Fn">VFS_NEWVNODE</code>(<var class="Fa" style="white-space: nowrap;">struct - mount *mp</var>, <var class="Fa" style="white-space: nowrap;">struct vnode - *dvp</var>, <var class="Fa" style="white-space: nowrap;">struct vnode - *vp</var>, <var class="Fa" style="white-space: nowrap;">struct vattr - *vap</var>, <var class="Fa" style="white-space: nowrap;">kauth_cred_t - cred</var>, <var class="Fa" style="white-space: nowrap;">void *extra</var>, - <var class="Fa" style="white-space: nowrap;">size_t *key_len</var>, - <var class="Fa" style="white-space: nowrap;">const void - **new_key</var>);</p> -<p class="Pp"><var class="Ft">int</var> - <br/> - <code class="Fn">VFS_FHTOVP</code>(<var class="Fa" style="white-space: nowrap;">struct - mount *mp</var>, <var class="Fa" style="white-space: nowrap;">struct fid - *fhp</var>, <var class="Fa" style="white-space: nowrap;">int lktype</var>, - <var class="Fa" style="white-space: nowrap;">struct vnode **vpp</var>);</p> -<p class="Pp"><var class="Ft">int</var> - <br/> - <code class="Fn">VFS_VPTOFH</code>(<var class="Fa" style="white-space: nowrap;">struct - vnode *vp</var>, <var class="Fa" style="white-space: nowrap;">struct fid - *fhp</var>, <var class="Fa" style="white-space: nowrap;">size_t - *fh_size</var>);</p> -<p class="Pp"><var class="Ft">int</var> - <br/> - <code class="Fn">VFS_SNAPSHOT</code>(<var class="Fa" style="white-space: nowrap;">struct - mount *mp</var>, <var class="Fa" style="white-space: nowrap;">struct vnode - *vp</var>, <var class="Fa" style="white-space: nowrap;">struct timespec - *ts</var>);</p> -<p class="Pp"><var class="Ft">int</var> - <br/> - <code class="Fn">VFS_SUSPENDCTL</code>(<var class="Fa" style="white-space: nowrap;">struct - mount *mp</var>, <var class="Fa" style="white-space: nowrap;">int - cmd</var>);</p> -</section> -<section class="Sh"> -<h1 class="Sh" id="DESCRIPTION"><a class="permalink" href="#DESCRIPTION">DESCRIPTION</a></h1> -<p class="Pp">In a similar fashion to the <a class="Xr">vnode(9)</a> interface, - all operations that are done on a file system are conducted through a single - interface that allows the system to carry out operations on a file system - without knowing its construction or type.</p> -<p class="Pp">All supported file systems in the kernel have an entry in the - <var class="Va">vfs_list_initial</var> table. This table is generated by - <a class="Xr">config(1)</a> and is a - <code class="Dv">NULL</code><span class="No">-terminated</span> list of - <var class="Vt">vfsops</var> structures. The vfsops structure describes the - operations that can be done to a specific file system type. The following - table lists the elements of the vfsops vector, the corresponding invocation - macro, and a description of the element.</p> -<p class="Pp"></p> -<table class="Bl-column Bl-compact"> - <tr id="Vector"> - <td><a class="permalink" href="#Vector"><b class="Sy">Vector - element</b></a></td> - <td><a class="permalink" href="#Macro"><b class="Sy" id="Macro">Macro</b></a></td> - <td><a class="permalink" href="#Description"><b class="Sy" id="Description">Description</b></a></td> - </tr> - <tr id="VFS_MOUNT"> - <td>int (*vfs_mount)()</td> - <td><a class="permalink" href="#VFS_MOUNT"><code class="Dv">VFS_MOUNT</code></a></td> - <td>Mount a file system</td> - </tr> - <tr id="VFS_START"> - <td>int (*vfs_start)()</td> - <td><a class="permalink" href="#VFS_START"><code class="Dv">VFS_START</code></a></td> - <td>Make operational</td> - </tr> - <tr id="VFS_UNMOUNT"> - <td>int (*vfs_unmount)()</td> - <td><a class="permalink" href="#VFS_UNMOUNT"><code class="Dv">VFS_UNMOUNT</code></a></td> - <td>Unmount a file system</td> - </tr> - <tr id="VFS_ROOT"> - <td>int (*vfs_root)()</td> - <td><a class="permalink" href="#VFS_ROOT"><code class="Dv">VFS_ROOT</code></a></td> - <td>Get the file system root vnode</td> - </tr> - <tr id="VFS_QUOTACTL"> - <td>int (*vfs_quotactl)()</td> - <td><a class="permalink" href="#VFS_QUOTACTL"><code class="Dv">VFS_QUOTACTL</code></a></td> - <td>Query/modify space quotas</td> - </tr> - <tr id="VFS_STATVFS"> - <td>int (*vfs_statvfs)()</td> - <td><a class="permalink" href="#VFS_STATVFS"><code class="Dv">VFS_STATVFS</code></a></td> - <td>Get file system statistics</td> - </tr> - <tr id="VFS_SYNC"> - <td>int (*vfs_sync)()</td> - <td><a class="permalink" href="#VFS_SYNC"><code class="Dv">VFS_SYNC</code></a></td> - <td>Flush file system buffers</td> - </tr> - <tr id="VFS_VGET"> - <td>int (*vfs_vget)()</td> - <td><a class="permalink" href="#VFS_VGET"><code class="Dv">VFS_VGET</code></a></td> - <td>Get vnode from file id</td> - </tr> - <tr id="VFS_LOADVNODE"> - <td>int (*vfs_loadvnode)()</td> - <td><a class="permalink" href="#VFS_LOADVNODE"><code class="Dv">VFS_LOADVNODE</code></a></td> - <td>Initialize vnode with file</td> - </tr> - <tr id="VFS_NEWVNODE"> - <td>int (*vfs_newvnode)()</td> - <td><a class="permalink" href="#VFS_NEWVNODE"><code class="Dv">VFS_NEWVNODE</code></a></td> - <td>Initialize vnode with new file</td> - </tr> - <tr id="VFS_FHTOVP"> - <td>int (*vfs_fhtovp)()</td> - <td><a class="permalink" href="#VFS_FHTOVP"><code class="Dv">VFS_FHTOVP</code></a></td> - <td>NFS file handle to vnode lookup</td> - </tr> - <tr id="VFS_VPTOFH"> - <td>int (*vfs_vptofh)()</td> - <td><a class="permalink" href="#VFS_VPTOFH"><code class="Dv">VFS_VPTOFH</code></a></td> - <td>Vnode to NFS file handle lookup</td> - </tr> - <tr> - <td>void (*vfs_init)()</td> - <td>-</td> - <td>Initialize file system</td> - </tr> - <tr> - <td>void (*vfs_reinit)()</td> - <td>-</td> - <td>Reinitialize file system</td> - </tr> - <tr> - <td>void (*vfs_done)()</td> - <td>-</td> - <td>Cleanup unmounted file system</td> - </tr> - <tr> - <td>int (*vfs_mountroot)()</td> - <td>-</td> - <td>Mount the root file system</td> - </tr> - <tr id="VFS_SNAPSHOT"> - <td>int (*vfs_snapshot)()</td> - <td><a class="permalink" href="#VFS_SNAPSHOT"><code class="Dv">VFS_SNAPSHOT</code></a></td> - <td>Take a snapshot</td> - </tr> - <tr id="VFS_SUSPENDCTL"> - <td>int (*vfs_suspendctl)()</td> - <td><a class="permalink" href="#VFS_SUSPENDCTL"><code class="Dv">VFS_SUSPENDCTL</code></a></td> - <td>Suspend or resume</td> - </tr> -</table> -<p class="Pp">Some additional non-function members of the vfsops structure are - the file system name <var class="Fa">vfs_name</var> and a reference count - <var class="Fa">vfs_refcount</var>. It is not mandatory for a file system - type to support a particular operation, but it must assign each member - function pointer to a suitable function to do the minimum required of it. In - most cases, such functions either do nothing or return an error value to the - effect that it is not supported. <var class="Fa">vfs_reinit</var>, - <var class="Fa">vfs_mountroot</var>, <var class="Fa">vfs_fhtovp</var>, and - <var class="Fa">vfs_vptofh</var> may be <code class="Dv">NULL</code>.</p> -<p class="Pp">At system boot, each file system with an entry in - <var class="Va">vfs_list_initial</var> is established and initialized. Each - initialized file system is recorded by the kernel in the list - <var class="Va">vfs_list</var> and the file system specific initialization - function <var class="Fa">vfs_init</var> in its vfsops vector is invoked. - When the file system is no longer needed <var class="Fa">vfs_done</var> is - invoked to run file system specific cleanups and the file system is removed - from the kernel list.</p> -<p class="Pp">At system boot, the root file system is mounted by invoking the - file system type specific <var class="Fa">vfs_mountroot</var> function in - the vfsops vector. All file systems that can be mounted as a root file - system must define this function. It is responsible for initializing to list - of mount structures for all future mounted file systems.</p> -<p class="Pp">Kernel state which affects a specific file system type can be - queried and modified using the <a class="Xr">sysctl(8)</a> interface.</p> -</section> -<section class="Sh"> -<h1 class="Sh" id="FUNCTIONS"><a class="permalink" href="#FUNCTIONS">FUNCTIONS</a></h1> -<dl class="Bl-tag"> - <dt id="VFS_MOUNT~2"><a class="permalink" href="#VFS_MOUNT~2"><code class="Fn">VFS_MOUNT</code></a>(<var class="Fa">mp</var>, - <var class="Fa">path</var>, <var class="Fa">data</var>, - <var class="Fa">dlen</var>)</dt> - <dd>Mount a file system specified by the mount structure - <var class="Fa">mp</var> on the mount point described by - <var class="Fa">path</var>. The argument <var class="Fa">data</var> - contains file system type specific data, while the argument - <var class="Fa">dlen</var> points to a location specifying the length of - the data. - <p class="Pp" id="VFS_MOUNT~3"><a class="permalink" href="#VFS_MOUNT~3"><code class="Fn">VFS_MOUNT</code></a>() - initializes the mount structure for the mounted file system. This - structure records mount-specific information for the file system and - records the list of vnodes associated with the file system. This - function is invoked both to mount new file systems and to change the - attributes of an existing file system. If the flag - <code class="Dv">MNT_UPDATE</code> is set in - <var class="Va">mp->mnt_flag</var>, the file system should update its - state. This can be used, for instance, to convert a read-only file - system to read-write. The current attributes for a mounted file system - can be fetched by specifying <code class="Dv">MNT_GETARGS</code>. If - neither <code class="Dv">MNT_UPDATE</code> or - <code class="Dv">MNT_GETARGS</code> are specified, a new file system - will attempted to be mounted.</p> - </dd> - <dt><code class="Fn">VFS_START</code>(<var class="Fa">mp</var>, - <var class="Fa">flags</var>)</dt> - <dd>Make the file system specified by the mount structure - <var class="Fa">mp</var> operational. The argument - <var class="Fa">flags</var> is a set of flags for controlling the - operation of <code class="Fn">VFS_START</code>(). This function is invoked - after <code class="Fn">VFS_MOUNT</code>() and before the first access to - the file system.</dd> - <dt><code class="Fn">VFS_UNMOUNT</code>(<var class="Fa">mp</var>, - <var class="Fa">mntflags</var>)</dt> - <dd>Unmount a file system specified by the mount structure - <var class="Fa">mp</var>. <code class="Fn">VFS_UNMOUNT</code>() performs - any file system type specific operations required before the file system - is unmounted, such are flushing buffers. If - <code class="Dv">MNT_FORCE</code> is specified in the flags - <var class="Fa">mntflags</var> then open files are forcibly closed. The - function also deallocates space associated with data structure that were - allocated for the file system when it was mounted.</dd> - <dt><code class="Fn">VFS_ROOT</code>(<var class="Fa">mp</var>, - <var class="Fa">lktype</var>, <var class="Fa">vpp</var>)</dt> - <dd>Get the root vnode of the file system specified by the mount structure - <var class="Fa">mp</var>. The vnode is returned in the address given by - <var class="Fa">vpp</var>, with lock type <var class="Fa">lktype</var>. - <var class="Fa">lktype</var> can be <code class="Dv">LK_NONE</code>, or - <code class="Dv">LK_SHARED</code>, or - <code class="Dv">LK_EXCLUSIVE</code>. This function is used by the - pathname translation algorithms when a vnode that has been covered by a - mounted file system is encountered. While resolving the pathname, the - pathname translation algorithm will have to go through the directory tree - in the file system associated with that mount point and therefore requires - the root vnode of the file system.</dd> - <dt><code class="Fn">VFS_QUOTACTL</code>(<var class="Fa">mp</var>, - <var class="Fa">args</var>)</dt> - <dd>Query/modify user space quotas for the file system specified by the mount - structure <var class="Fa">mp</var>. The argument structure provides the - operation ID and arguments to perform. This is the same interface as - documented in <a class="Xr">__quotactl(2)</a> except that the file system - argument has been resolved. All <a class="Xr">copyin(9)</a> and - <a class="Xr">copyout(9)</a> processing is handled by code above the file - system.</dd> - <dt><code class="Fn">VFS_STATVFS</code>(<var class="Fa">mp</var>, - <var class="Fa">sbp</var>)</dt> - <dd>Get file system statistics for the file system specified by the mount - structure <var class="Fa">mp</var>. A statvfs structure filled with the - statistics is returned in <var class="Fa">sbp</var>. - <code class="Fn">VFS_STATVFS</code>() is the file system type specific - implementation of the <a class="Xr">statvfs(2)</a> and - <a class="Xr">fstatvfs(2)</a> system calls.</dd> - <dt><code class="Fn">VFS_SYNC</code>(<var class="Fa">mp</var>, - <var class="Fa">waitfor</var>, <var class="Fa">cred</var>)</dt> - <dd>Flush file system I/O buffers for the file system specified by the mount - structure <var class="Fa">mp</var>. The <var class="Fa">waitfor</var> - argument indicates whether a partial flush or complete flush should be - performed. The argument <var class="Fa">cred</var> specifies the calling - credentials. <code class="Fn">VFS_SYNC</code>() does not provide any - return value since the operation can never fail.</dd> - <dt><code class="Fn">VFS_VGET</code>(<var class="Fa">mp</var>, - <var class="Fa">ino</var>, <var class="Fa">lktype</var>, - <var class="Fa">vpp</var>)</dt> - <dd>Get vnode for a file system type specific file id - <var class="Fa">ino</var> for the file system specified by the mount - structure <var class="Fa">mp</var>, with lock type - <var class="Fa">lktype</var>. <var class="Fa">lktype</var> can be - <code class="Dv">LK_NONE</code>, or <code class="Dv">LK_SHARED</code>, or - <code class="Dv">LK_EXCLUSIVE</code>. The vnode is returned in the address - specified <var class="Fa">vpp</var>. The function is optional for file - systems which have a unique id number for every file in the file system. - It is used internally by the UFS file system and also by the NFSv3 server - to implement the READDIRPLUS NFS call. If the file system does not support - this function, it should return <code class="Er">EOPNOTSUPP</code>.</dd> - <dt><code class="Fn">VFS_LOADVNODE</code>(<var class="Fa">mp</var>, - <var class="Fa">vp</var>, <var class="Fa">key</var>, - <var class="Fa">key_len</var>, <var class="Fa">new_key</var>)</dt> - <dd>Initialise the vnode <var class="Fa">vp</var> with the file identified by - the arguments <var class="Fa">key</var> and <var class="Fa">key_len</var> - for the file system specified by the mount structure - <var class="Fa">mp</var>. - <p class="Pp">The new key is returned in the address specified by - <var class="Fa">new_key</var>.</p> - <p class="Pp">Caller of this function assures no other thread will try to - load this file.</p> - </dd> - <dt id="VFS_NEWVNODE~2"><a class="permalink" href="#VFS_NEWVNODE~2"><code class="Fn">VFS_NEWVNODE</code></a>(<var class="Fa">mp</var>, - <var class="Fa">dvp</var>, <var class="Fa">vp</var>, - <var class="Fa">vap</var>, <var class="Fa">cred</var>, - <var class="Fa">extra</var>, <var class="Fa">key_len</var>, - <var class="Fa">new_key</var>)</dt> - <dd>Initialise the vnode <var class="Fa">vp</var> with a new file for the file - system specified by the mount structure <var class="Fa">mp</var>. - <p class="Pp">The argument <var class="Fa">dvp</var> points to the directory - to create the file in.</p> - <p class="Pp">The argument <var class="Fa">vap</var> points to the - attributes for the file to create.</p> - <p class="Pp">The argument <var class="Fa">cred</var> holds the credentials - for the file to create.</p> - <p class="Pp">The argument <var class="Fa">extra</var> allows the caller to - pass more information about the file to create.</p> - <p class="Pp">The key for the file is returned in the addresses specified by - <var class="Fa">key_len</var> and <var class="Fa">new_key</var>.</p> - </dd> - <dt id="VFS_FHTOVP~2"><a class="permalink" href="#VFS_FHTOVP~2"><code class="Fn">VFS_FHTOVP</code></a>(<var class="Fa">mp</var>, - <var class="Fa">fhp</var>, <var class="Fa">lktype</var>, - <var class="Fa">vpp</var>)</dt> - <dd>Get the vnode for the file handle <var class="Fa">fhp</var> in the file - system specified by the mount structure <var class="Fa">mp</var>, with - lock type <var class="Fa">lktype</var>. <var class="Fa">lktype</var> can - be <code class="Dv">LK_NONE</code>, or <code class="Dv">LK_SHARED</code>, - or <code class="Dv">LK_EXCLUSIVE</code>. The locked vnode is returned in - <var class="Fa">vpp</var>. - <p class="Pp" id="VFS_FHTOVP~3">When exporting, the call to - <a class="permalink" href="#VFS_FHTOVP~3"><code class="Fn">VFS_FHTOVP</code></a>() - should follow a call to - <a class="permalink" href="#netexport_check"><code class="Fn" id="netexport_check">netexport_check</code></a>(), - which checks if the file is accessible to the client.</p> - <p class="Pp">If file handles are not supported by the file system, this - function must return <code class="Er">EOPNOTSUPP</code>.</p> - </dd> - <dt id="VFS_VPTOFH~2"><a class="permalink" href="#VFS_VPTOFH~2"><code class="Fn">VFS_VPTOFH</code></a>(<var class="Fa">vp</var>, - <var class="Fa">fhp</var>, <var class="Fa">fh_size</var>)</dt> - <dd>Get a file handle for the vnode specified by <var class="Fa">vp</var>. The - file handle is returned in <var class="Fa">fhp</var>. The contents of the - file handle are defined by the file system and are not examined by any - other subsystems. It should contain enough information to uniquely - identify a file within the file system as well as noticing when a file has - been removed and the file system resources have been recycled for a new - file. - <p class="Pp">The parameter <var class="Fa">fh_size</var> points to the - container size for the file handle. This parameter should be updated to - the size of the finished file handle. Note that it is legal to call this - function with <var class="Fa">fhp</var> set to - <code class="Dv">NULL</code> in case <var class="Fa">fh_size</var> is - zero. In case <var class="Fa">fh_size</var> indicates a storage space - too small, the storage space required for the file handle corresponding - to <var class="Fa">vp</var> should be filled in and - <code class="Er">E2BIG</code> should be returned.</p> - <p class="Pp">If file handles are not supported by the file system, this - function must return <code class="Er">EOPNOTSUPP</code>.</p> - </dd> - <dt id="VFS_SNAPSHOT~2"><a class="permalink" href="#VFS_SNAPSHOT~2"><code class="Fn">VFS_SNAPSHOT</code></a>(<var class="Fa">mp</var>, - <var class="Fa">vp</var>, <var class="Fa">ts</var>)</dt> - <dd>Take a snapshot of the file system specified by the mount structure - <var class="Fa">mp</var> and make it accessible through the locked vnode - <var class="Fa">vp</var>. If <var class="Fa">ts</var> is not - <code class="Dv">NULL</code> it will receive the time this snapshot was - taken. If the file system does not support this function, it should return - <code class="Er">EOPNOTSUPP</code>.</dd> - <dt><code class="Fn">VFS_SUSPENDCTL</code>(<var class="Fa">mp</var>, - <var class="Fa">cmd</var>)</dt> - <dd>Suspend or resume all operations on this file system. - <var class="Fa">cmd</var> is either - <code class="Dv">SUSPEND_SUSPEND</code> to suspend or - <code class="Dv">SUSPEND_RESUME</code> to resume operations. If the file - system does not support this function, it should return - <code class="Er">EOPNOTSUPP</code>.</dd> -</dl> -</section> -<section class="Sh"> -<h1 class="Sh" id="CODE_REFERENCES"><a class="permalink" href="#CODE_REFERENCES">CODE - REFERENCES</a></h1> -<p class="Pp">The vfs operations are implemented within the files - <span class="Pa">sys/kern/vfs_subr.c</span> and - <span class="Pa">sys/kern/vfs_init.c</span>.</p> -</section> -<section class="Sh"> -<h1 class="Sh" id="SEE_ALSO"><a class="permalink" href="#SEE_ALSO">SEE - ALSO</a></h1> -<p class="Pp"><a class="Xr">intro(9)</a>, <a class="Xr">namei(9)</a>, - <a class="Xr">vfs(9)</a>, <a class="Xr">vfssubr(9)</a>, - <a class="Xr">vnode(9)</a>, <a class="Xr">vnodeops(9)</a></p> -</section> -<section class="Sh"> -<h1 class="Sh" id="HISTORY"><a class="permalink" href="#HISTORY">HISTORY</a></h1> -<p class="Pp">The vfs operations vector, its functions and the corresponding - macros appeared in <span class="Ux">4.3BSD</span>.</p> -</section> -</div> -<table class="foot"> - <tr> - <td class="foot-date">August 7, 2020</td> - <td class="foot-os">NetBSD 10.1</td> - </tr> -</table> |
