€•4Œsphinx.addnodes”Œdocument”“”)”}”(Œ rawsource”Œ”Œchildren”]”(Œ translations”Œ LanguagesNode”“”)”}”(hhh]”(hŒ pending_xref”“”)”}”(hhh]”Œdocutils.nodes”ŒText”“”ŒChinese (Simplified)”…””}”Œparent”hsbaŒ attributes”}”(Œids”]”Œclasses”]”Œnames”]”Œdupnames”]”Œbackrefs”]”Œ refdomain”Œstd”Œreftype”Œdoc”Œ reftarget”Œ(/translations/zh_CN/filesystems/virtiofs”Œmodname”NŒ classname”NŒ refexplicit”ˆuŒtagname”hhh ubh)”}”(hhh]”hŒChinese (Traditional)”…””}”hh2sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ(/translations/zh_TW/filesystems/virtiofs”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒItalian”…””}”hhFsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ(/translations/it_IT/filesystems/virtiofs”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒJapanese”…””}”hhZsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ(/translations/ja_JP/filesystems/virtiofs”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒKorean”…””}”hhnsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ(/translations/ko_KR/filesystems/virtiofs”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒSpanish”…””}”hh‚sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ(/translations/sp_SP/filesystems/virtiofs”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubeh}”(h]”h ]”h"]”h$]”h&]”Œcurrent_language”ŒEnglish”uh1h hhŒ _document”hŒsource”NŒline”NubhŒcomment”“”)”}”(hŒ SPDX-License-Identifier: GPL-2.0”h]”hŒ SPDX-License-Identifier: GPL-2.0”…””}”hh£sbah}”(h]”h ]”h"]”h$]”h&]”Œ xml:space”Œpreserve”uh1h¡hhhžhhŸŒB/var/lib/git/docbuild/linux/Documentation/filesystems/virtiofs.rst”h KubhŒtarget”“”)”}”(hŒ.. _virtiofs_index:”h]”h}”(h]”h ]”h"]”h$]”h&]”Œrefid”Œvirtiofs-index”uh1h´h KhhhžhhŸh³ubhŒsection”“”)”}”(hhh]”(hŒtitle”“”)”}”(hŒ3virtiofs: virtio-fs host<->guest shared file system”h]”hŒ3virtiofs: virtio-fs host<->guest shared file system”…””}”(hhÉhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÇhhÄhžhhŸh³h KubhŒ bullet_list”“”)”}”(hhh]”hŒ list_item”“”)”}”(hŒ!Copyright (C) 2019 Red Hat, Inc. ”h]”hŒ paragraph”“”)”}”(hŒ Copyright (C) 2019 Red Hat, Inc.”h]”hŒ Copyright (C) 2019 Red Hat, Inc.”…””}”(hhähžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hâhŸh³h K hhÞubah}”(h]”h ]”h"]”h$]”h&]”uh1hÜhhÙhžhhŸh³h Nubah}”(h]”h ]”h"]”h$]”h&]”Œbullet”Œ-”uh1h×hŸh³h K hhÄhžhubhÃ)”}”(hhh]”(hÈ)”}”(hŒ Introduction”h]”hŒ Introduction”…””}”(hjhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÇhjhžhhŸh³h K ubhã)”}”(hŒÚThe virtiofs file system for Linux implements a driver for the paravirtualized VIRTIO "virtio-fs" device for guest<->host file system sharing. It allows a guest to mount a directory that has been exported on the host.”h]”hŒÞThe virtiofs file system for Linux implements a driver for the paravirtualized VIRTIO “virtio-fs†device for guest<->host file system sharing. It allows a guest to mount a directory that has been exported on the host.”…””}”(hjhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hâhŸh³h K hjhžhubhã)”}”(hX+Guests often require access to files residing on the host or remote systems. Use cases include making files available to new guests during installation, booting from a root file system located on the host, persistent storage for stateless or ephemeral guests, and sharing a directory between guests.”h]”hX+Guests often require access to files residing on the host or remote systems. Use cases include making files available to new guests during installation, booting from a root file system located on the host, persistent storage for stateless or ephemeral guests, and sharing a directory between guests.”…””}”(hjhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hâhŸh³h Khjhžhubhã)”}”(hX1Although it is possible to use existing network file systems for some of these tasks, they require configuration steps that are hard to automate and they expose the storage network to the guest. The virtio-fs device was designed to solve these problems by providing file system access without networking.”h]”hX1Although it is possible to use existing network file systems for some of these tasks, they require configuration steps that are hard to automate and they expose the storage network to the guest. The virtio-fs device was designed to solve these problems by providing file system access without networking.”…””}”(hj-hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hâhŸh³h Khjhžhubhã)”}”(hŒ¸Furthermore the virtio-fs device takes advantage of the co-location of the guest and host to increase performance and provide semantics that are not possible with network file systems.”h]”hŒ¸Furthermore the virtio-fs device takes advantage of the co-location of the guest and host to increase performance and provide semantics that are not possible with network file systems.”…””}”(hj;hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hâhŸh³h Khjhžhubeh}”(h]”Œ introduction”ah ]”h"]”Œ introduction”ah$]”h&]”uh1hÂhhÄhžhhŸh³h K ubhÃ)”}”(hhh]”(hÈ)”}”(hŒUsage”h]”hŒUsage”…””}”(hjThžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÇhjQhžhhŸh³h K ubhã)”}”(hŒ0Mount file system with tag ``myfs`` on ``/mnt``:”h]”(hŒMount file system with tag ”…””}”(hjbhžhhŸNh NubhŒliteral”“”)”}”(hŒ``myfs``”h]”hŒmyfs”…””}”(hjlhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jjhjbubhŒ on ”…””}”(hjbhžhhŸNh Nubjk)”}”(hŒ``/mnt``”h]”hŒ/mnt”…””}”(hj~hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jjhjbubhŒ:”…””}”(hjbhžhhŸNh Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hâhŸh³h K!hjQhžhubhŒ literal_block”“”)”}”(hŒ"guest# mount -t virtiofs myfs /mnt”h]”hŒ"guest# mount -t virtiofs myfs /mnt”…””}”hj˜sbah}”(h]”h ]”h"]”h$]”h&]”h±h²Œforce”‰Œlanguage”Œsh”Œhighlight_args”}”uh1j–hŸh³h K#hjQhžhubhã)”}”(hŒfPlease see https://virtio-fs.gitlab.io/ for details on how to configure QEMU and the virtiofsd daemon.”h]”(hŒ Please see ”…””}”(hj«hžhhŸNh NubhŒ reference”“”)”}”(hŒhttps://virtio-fs.gitlab.io/”h]”hŒhttps://virtio-fs.gitlab.io/”…””}”(hjµhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”Œrefuri”j·uh1j³hj«ubhŒ? for details on how to configure QEMU and the virtiofsd daemon.”…””}”(hj«hžhhŸNh Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hâhŸh³h K'hjQhžhubhÃ)”}”(hhh]”(hÈ)”}”(hŒ Mount options”h]”hŒ Mount options”…””}”(hjÑhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÇhjÎhžhhŸh³h K+ubhã)”}”(hŒ}virtiofs supports general VFS mount options, for example, remount, ro, rw, context, etc. It also supports FUSE mount options.”h]”hŒ}virtiofs supports general VFS mount options, for example, remount, ro, rw, context, etc. It also supports FUSE mount options.”…””}”(hjßhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hâhŸh³h K-hjÎhžhubhÃ)”}”(hhh]”(hÈ)”}”(hŒatime behavior”h]”hŒatime behavior”…””}”(hjðhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÇhjíhžhhŸh³h K1ubhã)”}”(hŒÎThe atime-related mount options, for example, noatime, strictatime, are ignored. The atime behavior for virtiofs is the same as the underlying filesystem of the directory that has been exported on the host.”h]”hŒÎThe atime-related mount options, for example, noatime, strictatime, are ignored. The atime behavior for virtiofs is the same as the underlying filesystem of the directory that has been exported on the host.”…””}”(hjþhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hâhŸh³h K3hjíhžhubeh}”(h]”Œatime-behavior”ah ]”h"]”Œatime behavior”ah$]”h&]”uh1hÂhjÎhžhhŸh³h K1ubeh}”(h]”Œ mount-options”ah ]”h"]”Œ mount options”ah$]”h&]”uh1hÂhjQhžhhŸh³h K+ubeh}”(h]”Œusage”ah ]”h"]”Œusage”ah$]”h&]”uh1hÂhhÄhžhhŸh³h K ubhÃ)”}”(hhh]”(hÈ)”}”(hŒ Internals”h]”hŒ Internals”…””}”(hj'hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÇhj$hžhhŸh³h K9ubhã)”}”(hX\Since the virtio-fs device uses the FUSE protocol for file system requests, the virtiofs file system for Linux is integrated closely with the FUSE file system client. The guest acts as the FUSE client while the host acts as the FUSE server. The /dev/fuse interface between the kernel and userspace is replaced with the virtio-fs device interface.”h]”hX\Since the virtio-fs device uses the FUSE protocol for file system requests, the virtiofs file system for Linux is integrated closely with the FUSE file system client. The guest acts as the FUSE client while the host acts as the FUSE server. The /dev/fuse interface between the kernel and userspace is replaced with the virtio-fs device interface.”…””}”(hj5hžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hâhŸh³h K:hj$hžhubhã)”}”(hŒ¯FUSE requests are placed into a virtqueue and processed by the host. The response portion of the buffer is filled in by the host and the guest handles the request completion.”h]”hŒ¯FUSE requests are placed into a virtqueue and processed by the host. The response portion of the buffer is filled in by the host and the guest handles the request completion.”…””}”(hjChžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hâhŸh³h K@hj$hžhubhã)”}”(hXˆMapping /dev/fuse to virtqueues requires solving differences in semantics between /dev/fuse and virtqueues. Each time the /dev/fuse device is read, the FUSE client may choose which request to transfer, making it possible to prioritize certain requests over others. Virtqueues have queue semantics and it is not possible to change the order of requests that have been enqueued. This is especially important if the virtqueue becomes full since it is then impossible to add high priority requests. In order to address this difference, the virtio-fs device uses a "hiprio" virtqueue specifically for requests that have priority over normal requests.”h]”hXŒMapping /dev/fuse to virtqueues requires solving differences in semantics between /dev/fuse and virtqueues. Each time the /dev/fuse device is read, the FUSE client may choose which request to transfer, making it possible to prioritize certain requests over others. Virtqueues have queue semantics and it is not possible to change the order of requests that have been enqueued. This is especially important if the virtqueue becomes full since it is then impossible to add high priority requests. In order to address this difference, the virtio-fs device uses a “hiprio†virtqueue specifically for requests that have priority over normal requests.”…””}”(hjQhžhhŸNh Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hâhŸh³h KDhj$hžhubeh}”(h]”Œ internals”ah ]”h"]”Œ internals”ah$]”h&]”uh1hÂhhÄhžhhŸh³h K9ubeh}”(h]”(Œ0virtiofs-virtio-fs-host-guest-shared-file-system”hÁeh ]”h"]”(Œ3virtiofs: virtio-fs host<->guest shared file system”Œvirtiofs_index”eh$]”h&]”uh1hÂhhhžhhŸh³h KŒexpect_referenced_by_name”}”jmh¶sŒexpect_referenced_by_id”}”hÁh¶subeh}”(h]”h ]”h"]”h$]”h&]”Œsource”h³uh1hŒcurrent_source”NŒ current_line”NŒsettings”Œdocutils.frontend”ŒValues”“”)”}”(hÇNŒ generator”NŒ datestamp”NŒ source_link”NŒ source_url”NŒ toc_backlinks”Œentry”Œfootnote_backlinks”KŒ sectnum_xform”KŒstrip_comments”NŒstrip_elements_with_classes”NŒ strip_classes”NŒ report_level”KŒ halt_level”KŒexit_status_level”KŒdebug”NŒwarning_stream”NŒ traceback”ˆŒinput_encoding”Œ utf-8-sig”Œinput_encoding_error_handler”Œstrict”Œoutput_encoding”Œutf-8”Œoutput_encoding_error_handler”j—Œerror_encoding”Œutf-8”Œerror_encoding_error_handler”Œbackslashreplace”Œ language_code”Œen”Œrecord_dependencies”NŒconfig”NŒ id_prefix”hŒauto_id_prefix”Œid”Œ dump_settings”NŒdump_internals”NŒdump_transforms”NŒdump_pseudo_xml”NŒexpose_internals”NŒstrict_visitor”NŒ_disable_config”NŒ_source”h³Œ _destination”NŒ _config_files”]”Œ7/var/lib/git/docbuild/linux/Documentation/docutils.conf”aŒfile_insertion_enabled”ˆŒ raw_enabled”KŒline_length_limit”M'Œpep_references”NŒ pep_base_url”Œhttps://peps.python.org/”Œpep_file_url_template”Œpep-%04d”Œrfc_references”NŒ rfc_base_url”Œ&https://datatracker.ietf.org/doc/html/”Œ tab_width”KŒtrim_footnote_reference_space”‰Œsyntax_highlight”Œlong”Œ smart_quotes”ˆŒsmartquotes_locales”]”Œcharacter_level_inline_markup”‰Œdoctitle_xform”‰Œ docinfo_xform”KŒsectsubtitle_xform”‰Œ image_loading”Œlink”Œembed_stylesheet”‰Œcloak_email_addresses”ˆŒsection_self_link”‰Œenv”NubŒreporter”NŒindirect_targets”]”Œsubstitution_defs”}”Œsubstitution_names”}”Œrefnames”}”Œrefids”}”hÁ]”h¶asŒnameids”}”(jmhÁjljijNjKj!jjjjjjdjauŒ nametypes”}”(jmˆjl‰jN‰j!‰j‰j‰jd‰uh}”(hÁhÄjihÄjKjjjQjjÎjjíjaj$uŒ footnote_refs”}”Œ citation_refs”}”Œ autofootnotes”]”Œautofootnote_refs”]”Œsymbol_footnotes”]”Œsymbol_footnote_refs”]”Œ footnotes”]”Œ citations”]”Œautofootnote_start”KŒsymbol_footnote_start”KŒ id_counter”Œ collections”ŒCounter”“”}”…”R”Œparse_messages”]”Œtransform_messages”]”hŒsystem_message”“”)”}”(hhh]”hã)”}”(hhh]”hŒ4Hyperlink target "virtiofs-index" is not referenced.”…””}”hjsbah}”(h]”h ]”h"]”h$]”h&]”uh1hâhjþubah}”(h]”h ]”h"]”h$]”h&]”Œlevel”KŒtype”ŒINFO”Œsource”h³Œline”Kuh1jüubaŒ transformer”NŒ include_log”]”Œ decoration”Nhžhub.