From c70fbbbecc2288c7a50ff1d88bbc90eae8738c2a Mon Sep 17 00:00:00 2001 From: =?utf8?q?J=C3=A1n=20Tomko?= Date: Mon, 7 Sep 2020 17:01:16 +0200 Subject: [PATCH] conf: fs: fill out accessmode in post-parse MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Move the default setting of accessmode to the post-parse phase. Signed-off-by: Ján Tomko Reviewed-by: Michal Privoznik --- src/conf/domain_conf.c | 18 ++++++++++++++++-- src/conf/domain_conf.h | 1 + 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index 9a0d1f9285..508d4bfc32 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -505,6 +505,7 @@ VIR_ENUM_IMPL(virDomainFSDriver, VIR_ENUM_IMPL(virDomainFSAccessMode, VIR_DOMAIN_FS_ACCESSMODE_LAST, + "", "passthrough", "mapped", "squash", @@ -5512,6 +5513,16 @@ virDomainMemoryDefPostParse(virDomainMemoryDef *mem, } +static int +virDomainFSDefPostParse(virDomainFSDef *fs) +{ + if (fs->accessmode == VIR_DOMAIN_FS_ACCESSMODE_DEFAULT) + fs->accessmode = VIR_DOMAIN_FS_ACCESSMODE_PASSTHROUGH; + + return 0; +} + + static int virDomainDeviceDefPostParseCommon(virDomainDeviceDef *dev, const virDomainDef *def, @@ -5557,8 +5568,11 @@ virDomainDeviceDefPostParseCommon(virDomainDeviceDef *dev, ret = virDomainMemoryDefPostParse(dev->data.memory, def); break; - case VIR_DOMAIN_DEVICE_LEASE: case VIR_DOMAIN_DEVICE_FS: + ret = virDomainFSDefPostParse(dev->data.fs); + break; + + case VIR_DOMAIN_DEVICE_LEASE: case VIR_DOMAIN_DEVICE_NET: case VIR_DOMAIN_DEVICE_INPUT: case VIR_DOMAIN_DEVICE_SOUND: @@ -10042,7 +10056,7 @@ virDomainFSDefParseXML(virDomainXMLOption *xmlopt, goto error; } } else { - def->accessmode = VIR_DOMAIN_FS_ACCESSMODE_PASSTHROUGH; + def->accessmode = VIR_DOMAIN_FS_ACCESSMODE_DEFAULT; } fmode = virXMLPropString(node, "fmode"); diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h index a17f241c53..e808c09ef2 100644 --- a/src/conf/domain_conf.h +++ b/src/conf/domain_conf.h @@ -804,6 +804,7 @@ typedef enum { /* Filesystem mount access mode */ typedef enum { + VIR_DOMAIN_FS_ACCESSMODE_DEFAULT = 0, VIR_DOMAIN_FS_ACCESSMODE_PASSTHROUGH, VIR_DOMAIN_FS_ACCESSMODE_MAPPED, VIR_DOMAIN_FS_ACCESSMODE_SQUASH, -- 2.47.2