From nobody Sun Feb 8 23:06:11 2026
Delivered-To: importer@patchew.org
Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17
as permitted sender) client-ip=209.51.188.17;
envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org;
helo=lists.gnu.org;
Authentication-Results: mx.zohomail.com;
dkim=pass;
spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as
permitted sender)
smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org;
dmarc=pass(p=quarantine dis=none) header.from=crudebyte.com
ARC-Seal: i=1; a=rsa-sha256; t=1584727244; cv=none;
d=zohomail.com; s=zohoarc;
b=JPUkd3cQdMT2XJXzBLLarJp86GKQcwRCpDefPKrQQEYJsgw6eSCd7nPvuVK05U/2Fr63OvNopxPb8kjcIrF2ykDY/KFHvBdCVenovrEiLxLkkwkTLgnFrFl5E3MG1J8PcJH+xbGbw158ZaHztU2TU9Mxi0Xt9FX0b+EDaCiCb9E=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com;
s=zohoarc;
t=1584727244;
h=Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:Message-ID:References:Sender:Subject:To;
bh=aSFPumI060vrsGGcam3KjHjMgS6gIvm9ZtHfi26NJs8=;
b=IIPWgbuO2lZju0OaOanxvV0nOmvzTriOVI57JYR5zB6sZmOZIFNRpF8VBbeFliPEf/2CuD4D6bqYOUP71M1SGQhdUs8xL8D6AVq4cglhFSlFedPMRBJMbWBWY0W3zV/oxV8XpKe7PboErPIrzQlHMfidcx2Z2wD34V5GH5zZuWI=
ARC-Authentication-Results: i=1; mx.zohomail.com;
dkim=pass;
spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as
permitted sender)
smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org;
dmarc=pass header.from= (p=quarantine dis=none)
header.from=
Return-Path:
Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by
mx.zohomail.com
with SMTPS id 1584727244418886.9118004517527;
Fri, 20 Mar 2020 11:00:44 -0700 (PDT)
Received: from localhost ([::1]:57254 helo=lists1p.gnu.org)
by lists.gnu.org with esmtp (Exim 4.90_1)
(envelope-from )
id 1jFLwk-0003F9-4H
for importer@patchew.org; Fri, 20 Mar 2020 14:00:38 -0400
Received: from eggs.gnu.org ([2001:470:142:3::10]:38958)
by lists.gnu.org with esmtp (Exim 4.90_1)
(envelope-from
<680df3de98cf66c7637fec5274761b535b9f4918@lizzy.crudebyte.com>)
id 1jFLw1-0002n5-Mi
for qemu-devel@nongnu.org; Fri, 20 Mar 2020 13:59:55 -0400
Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
(envelope-from
<680df3de98cf66c7637fec5274761b535b9f4918@lizzy.crudebyte.com>)
id 1jFLvz-0007Z2-Q8
for qemu-devel@nongnu.org; Fri, 20 Mar 2020 13:59:53 -0400
Received: from lizzy.crudebyte.com ([91.194.90.13]:53895)
by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
(Exim 4.71)
(envelope-from
<680df3de98cf66c7637fec5274761b535b9f4918@lizzy.crudebyte.com>)
id 1jFLvz-0007FB-AW
for qemu-devel@nongnu.org; Fri, 20 Mar 2020 13:59:51 -0400
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
d=crudebyte.com; s=lizzy; h=Cc:To:Subject:Date:From:References:In-Reply-To:
Message-Id:Content-Type:Content-Transfer-Encoding:MIME-Version:Content-ID:
Content-Description; bh=aSFPumI060vrsGGcam3KjHjMgS6gIvm9ZtHfi26NJs8=; b=cQXO7
vK6ab9eDWETUGmfOuQKuFBGkqN5twrZXWMNV+DxbaaLMESY0zdXzEgJDSdV4TX1JqUJ03AyxL8EZm
1b87zJXMqYe39W5+bpBEtBN6TJclv/ues21sEVyFMjEyJmKNFLJT9G8bTd9Nspsq8daYEzyRW5ii6
4VQA0ywfuOtawV/jRG8vpRq9LIhJNtB+pmkbCDK6yWLoC7Ozan/uh3U8uuYfWGzE7jZuDjPk2ytzZ
HHWN6Rgg6AByIbkaP2cEAhDuO0a9cNL9JLeY8tZFRsAHUhvRM2Rh/oTdNGPRqD/YLxLuD33hwpvGb
PYep29VbE+46TIyeG0uZNPnstiw0w==;
Message-Id:
<680df3de98cf66c7637fec5274761b535b9f4918.1584723662.git.qemu_oss@crudebyte.com>
In-Reply-To:
References:
From: Christian Schoenebeck
Date: Fri, 20 Mar 2020 17:51:35 +0100
Subject: [PATCH v2 3/4] conf: add 'multidevs' option
To: libvir-list@redhat.com
Cc: qemu-devel@nongnu.org,
Greg Kurz
X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic]
X-Received-From: 91.194.90.13
X-BeenThere: qemu-devel@nongnu.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id:
List-Unsubscribe: ,
List-Archive:
List-Post:
List-Help:
List-Subscribe: ,
Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org
Sender: "Qemu-devel"
X-ZohoMail-DKIM: pass (identity @crudebyte.com)
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Introduce new 'multidevs' option for filesystem.
This option prevents misbehaviours on guest if a qemu 9pfs export
contains multiple devices, due to the potential file ID collisions
this otherwise may cause.
Signed-off-by: Christian Schoenebeck
---
docs/formatdomain.html.in | 40 ++++++++++++++++++++++++++++++++++-
docs/schemas/domaincommon.rng | 10 +++++++++
src/conf/domain_conf.c | 29 +++++++++++++++++++++++++
src/conf/domain_conf.h | 13 ++++++++++++
4 files changed, 91 insertions(+), 1 deletion(-)
diff --git a/docs/formatdomain.html.in b/docs/formatdomain.html.in
index cc2c671c14..13c506988b 100644
--- a/docs/formatdomain.html.in
+++ b/docs/formatdomain.html.in
@@ -3967,7 +3967,7 @@
<source name=3D'my-vm-template'/>
<target dir=3D'/'/>
</filesystem>
- <filesystem type=3D'mount' accessmode=3D'passthrough'>
+ <filesystem type=3D'mount' accessmode=3D'passthrough' multidevs=3D're=
map'>
<driver type=3D'path' wrpolicy=3D'immediate'/>
<source dir=3D'/export/to/guest'/>
<target dir=3D'/import/from/host'/>
@@ -4092,6 +4092,44 @@
for more details.
=20
+
+ The filesystem element has an optional attribute multidevs
+ which specifies how to deal with a filesystem export containing more=
than
+ one device, in order to avoid file ID collisions on guest when using=
9pfs
+ (since 6.2.0, requires QEMU 4.2).
+ This attribute is not available for virtiofs. The possible values ar=
e:
+
+
+
+
default
+
+ Use QEMU's default setting (which currently is warn).
+
+
remap
+
+ This setting allows guest to access multiple devices per export wi=
thout
+ encountering misbehaviours. Inode numbers from host are automatica=
lly
+ remapped on guest to actively prevent file ID collisions if guest
+ accesses one export containing multiple devices.
+
+
forbid
+
+ Only allow to access one device per export by guest. Attempts to a=
ccess
+ additional devices on the same export will cause the individual
+ filesystem access by guest to fail with an error and being logged =
(once)
+ as error on host side.
+
+
warn
+
+ This setting resembles the behaviour of 9pfs prior to QEMU 4.2, th=
at is
+ no action is performed to prevent any potential file ID collisions=
if an
+ export contains multiple devices, with the only exception: a warni=
ng is
+ logged (once) on host side now. This setting may lead to misbehavi=
ours
+ on guest side if more than one device is exported per export, due =
to the
+ potential file ID collisions this may cause on guest side in that =
case.
+