<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://tech-pubs.net/wiki/index.php?action=history&amp;feed=atom&amp;title=Kernel%3A_vnode_Operations</id>
	<title>Kernel: vnode Operations - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://tech-pubs.net/wiki/index.php?action=history&amp;feed=atom&amp;title=Kernel%3A_vnode_Operations"/>
	<link rel="alternate" type="text/html" href="https://tech-pubs.net/wiki/index.php?title=Kernel:_vnode_Operations&amp;action=history"/>
	<updated>2026-04-22T11:36:22Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.44.2</generator>
	<entry>
		<id>https://tech-pubs.net/wiki/index.php?title=Kernel:_vnode_Operations&amp;diff=479&amp;oldid=prev</id>
		<title>Raion at 23:58, 9 January 2026</title>
		<link rel="alternate" type="text/html" href="https://tech-pubs.net/wiki/index.php?title=Kernel:_vnode_Operations&amp;diff=479&amp;oldid=prev"/>
		<updated>2026-01-09T23:58:53Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 23:58, 9 January 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l238&quot;&gt;Line 238:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 238:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &amp;#039;&amp;#039;&amp;#039;Vnode ops:&amp;#039;&amp;#039;&amp;#039; &amp;lt;code&amp;gt;inactive&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;reclaim&amp;lt;/code&amp;gt; ensure per-vnode cleanup.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &amp;#039;&amp;#039;&amp;#039;Vnode ops:&amp;#039;&amp;#039;&amp;#039; &amp;lt;code&amp;gt;inactive&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;reclaim&amp;lt;/code&amp;gt; ensure per-vnode cleanup.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &amp;#039;&amp;#039;&amp;#039;BHVs:&amp;#039;&amp;#039;&amp;#039; behavior chain allows multiple layers to participate in cleanup or dispatch.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &amp;#039;&amp;#039;&amp;#039;BHVs:&amp;#039;&amp;#039;&amp;#039; behavior chain allows multiple layers to participate in cleanup or dispatch.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Category: Kernel Documentation]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Raion</name></author>
	</entry>
	<entry>
		<id>https://tech-pubs.net/wiki/index.php?title=Kernel:_vnode_Operations&amp;diff=438&amp;oldid=prev</id>
		<title>Raion: Created page with &quot;Summary of known vfs operations and vnode operations.  === 1. VFS Operations (&lt;code&gt;vfsops_t&lt;/code&gt;) === These are operations on the &#039;&#039;&#039;filesystem as a whole&#039;&#039;&#039;: {| class=&quot;wikitable&quot; !Operation !Purpose / Semantics !Typical FS Relevance |- |&lt;code&gt;mount&lt;/code&gt; |Mount the filesystem; initialize structures, link root vnode. |All FS |- |&lt;code&gt;umount&lt;/code&gt; |Unmount; flush buffers, release resources. |All FS |- |&lt;code&gt;sync&lt;/code&gt; |Flush all dirty buf...&quot;</title>
		<link rel="alternate" type="text/html" href="https://tech-pubs.net/wiki/index.php?title=Kernel:_vnode_Operations&amp;diff=438&amp;oldid=prev"/>
		<updated>2025-12-27T05:03:14Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;Summary of known vfs operations and &lt;a href=&quot;/wiki/index.php/Kernel:_vnode_and_vfs&quot; title=&quot;Kernel: vnode and vfs&quot;&gt;vnode&lt;/a&gt; operations.  === 1. VFS Operations (&amp;lt;code&amp;gt;vfsops_t&amp;lt;/code&amp;gt;) === These are operations on the &amp;#039;&amp;#039;&amp;#039;filesystem as a whole&amp;#039;&amp;#039;&amp;#039;: {| class=&amp;quot;wikitable&amp;quot; !Operation !Purpose / Semantics !Typical FS Relevance |- |&amp;lt;code&amp;gt;mount&amp;lt;/code&amp;gt; |Mount the filesystem; initialize structures, link root vnode. |All FS |- |&amp;lt;code&amp;gt;umount&amp;lt;/code&amp;gt; |Unmount; flush buffers, release resources. |All FS |- |&amp;lt;code&amp;gt;sync&amp;lt;/code&amp;gt; |Flush all dirty buf...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Summary of known vfs operations and [[Kernel: vnode and vfs|vnode]] operations.&lt;br /&gt;
&lt;br /&gt;
=== 1. VFS Operations (&amp;lt;code&amp;gt;vfsops_t&amp;lt;/code&amp;gt;) ===&lt;br /&gt;
These are operations on the &amp;#039;&amp;#039;&amp;#039;filesystem as a whole&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Operation&lt;br /&gt;
!Purpose / Semantics&lt;br /&gt;
!Typical FS Relevance&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mount&amp;lt;/code&amp;gt;&lt;br /&gt;
|Mount the filesystem; initialize structures, link root vnode.&lt;br /&gt;
|All FS&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;umount&amp;lt;/code&amp;gt;&lt;br /&gt;
|Unmount; flush buffers, release resources.&lt;br /&gt;
|All FS&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;sync&amp;lt;/code&amp;gt;&lt;br /&gt;
|Flush all dirty buffers and VM pages to disk.&lt;br /&gt;
|Persistent FS (EFS, XFS)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;statvfs&amp;lt;/code&amp;gt;&lt;br /&gt;
|Retrieve filesystem statistics (free space, block size).&lt;br /&gt;
|All FS&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;vget&amp;lt;/code&amp;gt;&lt;br /&gt;
|Retrieve vnode by inode number or identifier.&lt;br /&gt;
|Persistent FS&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;quotactl&amp;lt;/code&amp;gt;&lt;br /&gt;
|Manage quotas on filesystem (user/group limits).&lt;br /&gt;
|Optional, persistent FS&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;import&amp;lt;/code&amp;gt;&lt;br /&gt;
|Integrate remote filesystem structures (NFS, exported FS).&lt;br /&gt;
|Network FS&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;root&amp;lt;/code&amp;gt;&lt;br /&gt;
|Return root vnode of filesystem.&lt;br /&gt;
|All FS&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;reclaim&amp;lt;/code&amp;gt;&lt;br /&gt;
|Cleanup filesystem-specific vnode data before freeing vnode memory.&lt;br /&gt;
|All FS&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;fsid&amp;lt;/code&amp;gt;&lt;br /&gt;
|Return filesystem ID.&lt;br /&gt;
|Persistent FS&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;check&amp;lt;/code&amp;gt;&lt;br /&gt;
|Perform consistency or integrity checks (optional).&lt;br /&gt;
|Persistent FS&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;remount&amp;lt;/code&amp;gt;&lt;br /&gt;
|Update mount options without unmounting.&lt;br /&gt;
|Optional&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;statfs&amp;lt;/code&amp;gt;&lt;br /&gt;
|Return summarized filesystem status.&lt;br /&gt;
|Persistent FS&lt;br /&gt;
|}&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Notes:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
* Pseudo-filesystems (pipefs, fifofs) stub most of these functions; only &amp;lt;code&amp;gt;root&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;vget&amp;lt;/code&amp;gt; may return in-memory structures.&lt;br /&gt;
* Real filesystems (EFS, XFS) implement almost all operations for proper filesystem management.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== 2. Vnode Operations (&amp;lt;code&amp;gt;vnodeops_t&amp;lt;/code&amp;gt;) ===&lt;br /&gt;
These are operations on &amp;#039;&amp;#039;&amp;#039;individual vnodes&amp;#039;&amp;#039;&amp;#039;, dispatched via the BHV layer.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Operation&lt;br /&gt;
!Purpose / Semantics&lt;br /&gt;
!FS Relevance / Typical Implementation&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;read&amp;lt;/code&amp;gt;&lt;br /&gt;
|Read data from vnode into user or kernel buffer.&lt;br /&gt;
|All FS supporting files or streams&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;write&amp;lt;/code&amp;gt;&lt;br /&gt;
|Write data to vnode from buffer.&lt;br /&gt;
|All FS supporting files or streams&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;ioctl&amp;lt;/code&amp;gt;&lt;br /&gt;
|Perform device-specific or FS-specific commands.&lt;br /&gt;
|Devices, pseudo-FS, streams&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;getattr&amp;lt;/code&amp;gt;&lt;br /&gt;
|Retrieve vnode attributes (mode, owner, size, timestamps).&lt;br /&gt;
|All FS&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;setattr&amp;lt;/code&amp;gt;&lt;br /&gt;
|Update vnode attributes.&lt;br /&gt;
|All FS&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;access&amp;lt;/code&amp;gt;&lt;br /&gt;
|Check access permissions.&lt;br /&gt;
|All FS&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;lookup&amp;lt;/code&amp;gt;&lt;br /&gt;
|Resolve pathname component to vnode.&lt;br /&gt;
|Directory FS (EFS, XFS, pipefs limited)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;create&amp;lt;/code&amp;gt;&lt;br /&gt;
|Create a new file.&lt;br /&gt;
|Persistent FS; pseudo-FS may stub&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;remove&amp;lt;/code&amp;gt;&lt;br /&gt;
|Remove a file.&lt;br /&gt;
|Persistent FS; pipefs/FIFO may implement&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;mkdir&amp;lt;/code&amp;gt;&lt;br /&gt;
|Create directory.&lt;br /&gt;
|Persistent FS&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;rmdir&amp;lt;/code&amp;gt;&lt;br /&gt;
|Remove directory.&lt;br /&gt;
|Persistent FS&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;readdir&amp;lt;/code&amp;gt;&lt;br /&gt;
|Read directory entries.&lt;br /&gt;
|Persistent FS&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;symlink&amp;lt;/code&amp;gt;&lt;br /&gt;
|Create symbolic link.&lt;br /&gt;
|Optional, persistent FS&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;readlink&amp;lt;/code&amp;gt;&lt;br /&gt;
|Read symbolic link target.&lt;br /&gt;
|Optional, persistent FS&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;rename&amp;lt;/code&amp;gt;&lt;br /&gt;
|Rename a file.&lt;br /&gt;
|Persistent FS&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;link&amp;lt;/code&amp;gt;&lt;br /&gt;
|Create hard link.&lt;br /&gt;
|Persistent FS&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;unlink&amp;lt;/code&amp;gt;&lt;br /&gt;
|Remove a link.&lt;br /&gt;
|Persistent FS&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;fsync&amp;lt;/code&amp;gt;&lt;br /&gt;
|Flush vnode’s buffers to disk.&lt;br /&gt;
|Persistent FS&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;map&amp;lt;/code&amp;gt;&lt;br /&gt;
|Map file pages into VM.&lt;br /&gt;
|Persistent FS, memory-mapped files&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;addmap&amp;lt;/code&amp;gt;&lt;br /&gt;
|Notify FS of memory mapping.&lt;br /&gt;
|Persistent FS&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;delmap&amp;lt;/code&amp;gt;&lt;br /&gt;
|Notify FS of unmapped region.&lt;br /&gt;
|Persistent FS&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;frlock&amp;lt;/code&amp;gt;&lt;br /&gt;
|File region locking.&lt;br /&gt;
|All FS supporting advisory locks&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;poll&amp;lt;/code&amp;gt;&lt;br /&gt;
|Determine readiness for I/O.&lt;br /&gt;
|Streams, pipes, devices&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;seek&amp;lt;/code&amp;gt;&lt;br /&gt;
|Validate seek operation.&lt;br /&gt;
|Regular files, optionally pseudo-FS&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;inactive&amp;lt;/code&amp;gt;&lt;br /&gt;
|Called when last reference released; free resources.&lt;br /&gt;
|All FS&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;reclaim&amp;lt;/code&amp;gt;&lt;br /&gt;
|Called to cleanup filesystem-specific vnode state.&lt;br /&gt;
|All FS&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;realvp&amp;lt;/code&amp;gt;&lt;br /&gt;
|Return underlying “real” vnode in layered FS.&lt;br /&gt;
|Stacked or layered FS&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;cover&amp;lt;/code&amp;gt;&lt;br /&gt;
|Return vnode that this vnode overlays.&lt;br /&gt;
|Stacked FS&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;link_removed&amp;lt;/code&amp;gt;&lt;br /&gt;
|Notify FS that a link was removed.&lt;br /&gt;
|Persistent FS&lt;br /&gt;
|}&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Notes:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Pseudo-filesystems&amp;#039;&amp;#039;&amp;#039; (pipefs, fifofs):&lt;br /&gt;
** Implement &amp;lt;code&amp;gt;read&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;write&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;poll&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;inactive&amp;lt;/code&amp;gt;&lt;br /&gt;
** Many other operations are stubs (&amp;lt;code&amp;gt;fs_nosys&amp;lt;/code&amp;gt;) because they have no persistent storage.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Persistent filesystems&amp;#039;&amp;#039;&amp;#039; (EFS, XFS):&lt;br /&gt;
** Implement almost all operations fully.&lt;br /&gt;
** VM integration (&amp;lt;code&amp;gt;map&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;addmap&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;delmap&amp;lt;/code&amp;gt;) links vnode buffers with page cache.&lt;br /&gt;
** Locking (&amp;lt;code&amp;gt;frlock&amp;lt;/code&amp;gt;) and attribute operations are critical for filesystem consistency.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Streams / devices:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
** Integrate with &amp;lt;code&amp;gt;poll&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;select&amp;lt;/code&amp;gt; via pollhead structures.&lt;br /&gt;
** &amp;lt;code&amp;gt;ioctl&amp;lt;/code&amp;gt; is heavily used to expose device-specific functionality.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== 3. Behavior Semantics ===&lt;br /&gt;
&lt;br /&gt;
* Vnode operations are &amp;#039;&amp;#039;&amp;#039;dispatched via the behavior chain&amp;#039;&amp;#039;&amp;#039;, allowing:&lt;br /&gt;
** &amp;#039;&amp;#039;&amp;#039;Layered filesystems&amp;#039;&amp;#039;&amp;#039;: stacking additional behaviors (e.g., shadow vnodes, network FS).&lt;br /&gt;
** &amp;#039;&amp;#039;&amp;#039;Pseudo-filesystems&amp;#039;&amp;#039;&amp;#039;: handle vnodes without disk backing.&lt;br /&gt;
* Operations are &amp;#039;&amp;#039;&amp;#039;always invoked on BHV descriptors&amp;#039;&amp;#039;&amp;#039;, not directly on vnodes. This ensures correct dispatch in multi-layer environments.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== 4. Filesystem Type Considerations ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!FS Type&lt;br /&gt;
!Implemented Operations&lt;br /&gt;
|-&lt;br /&gt;
|Persistent (EFS/XFS)&lt;br /&gt;
|All VFS and vnode ops; full VM/page cache integration, locking, attributes&lt;br /&gt;
|-&lt;br /&gt;
|Pseudo-FS (pipefs/fifofs)&lt;br /&gt;
|&amp;lt;code&amp;gt;read&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;write&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;poll&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;inactive&amp;lt;/code&amp;gt;; stubs for most others&lt;br /&gt;
|-&lt;br /&gt;
|Device FS (devfs)&lt;br /&gt;
|&amp;lt;code&amp;gt;read&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;write&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ioctl&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;poll&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;getattr&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;setattr&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Network FS (NFS-like)&lt;br /&gt;
|&amp;lt;code&amp;gt;import&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;vget&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;root&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;lookup&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;read&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;write&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== 5. Reference / Lifecycle Management ===&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;VFS ops:&amp;#039;&amp;#039;&amp;#039; &amp;lt;code&amp;gt;reclaim&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;sync&amp;lt;/code&amp;gt; ensure global cleanup.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Vnode ops:&amp;#039;&amp;#039;&amp;#039; &amp;lt;code&amp;gt;inactive&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;reclaim&amp;lt;/code&amp;gt; ensure per-vnode cleanup.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;BHVs:&amp;#039;&amp;#039;&amp;#039; behavior chain allows multiple layers to participate in cleanup or dispatch.&lt;/div&gt;</summary>
		<author><name>Raion</name></author>
	</entry>
</feed>