diff --git a/docs/formatdomain.html.in b/docs/formatdomain.html.in index 755d084f42..89790d89cf 100644 --- a/docs/formatdomain.html.in +++ b/docs/formatdomain.html.in @@ -2007,7 +2007,8 @@
An in-memory filesystem, using memory from the host OS. The source element has a single attribute usage - which gives the memory usage limit in kibibytes. Only used + which gives the memory usage limit in KiB, unless units + are specified by the units attribute. Only used by LXC driver. (since 0.9.13)
type='bind'
@@ -2073,7 +2074,8 @@ name attribute must be used with type='template', and the dir attribute must be used with type='mount'. The usage attribute - is used with type='ram' to set the memory limit in KB. + is used with type='ram' to set the memory limit in KiB, + unless units are specified by the units attribute.
target
diff --git a/docs/schemas/domaincommon.rng b/docs/schemas/domaincommon.rng index 3cace351a6..ad661628d3 100644 --- a/docs/schemas/domaincommon.rng +++ b/docs/schemas/domaincommon.rng @@ -1635,7 +1635,7 @@ - + diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index 8824266dfa..56823a60a9 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -5770,7 +5770,7 @@ virDomainFSDefParseXML(xmlNodePtr node, char *accessmode = NULL; char *wrpolicy = NULL; char *usage = NULL; - char *unit = NULL; + char *units = NULL; ctxt->node = node; @@ -5828,7 +5828,7 @@ virDomainFSDefParseXML(xmlNodePtr node, source = virXMLPropString(cur, "name"); else if (def->type == VIR_DOMAIN_FS_TYPE_RAM) { usage = virXMLPropString(cur, "usage"); - unit = virXMLPropString(cur, "unit"); + units = virXMLPropString(cur, "units"); } } else if (!target && xmlStrEqual(cur->name, BAD_CAST "target")) { @@ -5898,8 +5898,7 @@ virDomainFSDefParseXML(xmlNodePtr node, usage); goto error; } - if (unit && - virScaleInteger(&def->usage, unit, + if (virScaleInteger(&def->usage, units, 1024, ULLONG_MAX) < 0) goto error; } @@ -5921,7 +5920,7 @@ cleanup: VIR_FREE(accessmode); VIR_FREE(wrpolicy); VIR_FREE(usage); - VIR_FREE(unit); + VIR_FREE(units); VIR_FREE(format); return def; diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h index 3a71d6c8f5..ccd877812c 100644 --- a/src/conf/domain_conf.h +++ b/src/conf/domain_conf.h @@ -843,7 +843,7 @@ struct _virDomainFSDef { int accessmode; /* enum virDomainFSAccessMode */ int wrpolicy; /* enum virDomainFSWrpolicy */ int format; /* enum virStorageFileFormat */ - unsigned long long usage; + unsigned long long usage; /* in bytes */ char *src; char *dst; bool readonly; diff --git a/src/lxc/lxc_container.c b/src/lxc/lxc_container.c index c74e3ca102..ade001f22e 100644 --- a/src/lxc/lxc_container.c +++ b/src/lxc/lxc_container.c @@ -1275,7 +1275,7 @@ static int lxcContainerMountFSTmpfs(virDomainFSDefPtr fs, char *data = NULL; if (virAsprintf(&data, - "size=%lldk%s", fs->usage, sec_mount_options) < 0) { + "size=%lld%s", fs->usage, sec_mount_options) < 0) { virReportOOMError(); goto cleanup; } diff --git a/tests/domainschematest b/tests/domainschematest index 0e360caae9..9ebf0b9a58 100755 --- a/tests/domainschematest +++ b/tests/domainschematest @@ -7,7 +7,7 @@ DIRS="" DIRS="$DIRS domainschemadata qemuxml2argvdata sexpr2xmldata" DIRS="$DIRS xmconfigdata xml2sexprdata qemuxml2xmloutdata " -DIRS="$DIRS lxcxml2xmldata" +DIRS="$DIRS lxcxml2xmldata lxcxml2xmloutdata" SCHEMA="domain.rng" check_schema "$DIRS" "$SCHEMA" diff --git a/tests/lxcxml2xmldata/lxc-filesystem-ram.xml b/tests/lxcxml2xmldata/lxc-filesystem-ram.xml new file mode 100644 index 0000000000..002fde6ad1 --- /dev/null +++ b/tests/lxcxml2xmldata/lxc-filesystem-ram.xml @@ -0,0 +1,33 @@ + + demo + 8369f1ac-7e46-e869-4ca5-759d51478066 + 500000 + 500000 + 1 + + exe + /bin/sh + + + destroy + restart + destroy + + /usr/libexec/libvirt_lxc + + + + + + + + + + + + + + + + + diff --git a/tests/lxcxml2xmloutdata/lxc-filesystem-ram.xml b/tests/lxcxml2xmloutdata/lxc-filesystem-ram.xml new file mode 100644 index 0000000000..d2369a25d1 --- /dev/null +++ b/tests/lxcxml2xmloutdata/lxc-filesystem-ram.xml @@ -0,0 +1,33 @@ + + demo + 8369f1ac-7e46-e869-4ca5-759d51478066 + 500000 + 500000 + 1 + + exe + /bin/sh + + + destroy + restart + destroy + + /usr/libexec/libvirt_lxc + + + + + + + + + + + + + + + + + diff --git a/tests/lxcxml2xmltest.c b/tests/lxcxml2xmltest.c index 97f792c25e..be750cf21d 100644 --- a/tests/lxcxml2xmltest.c +++ b/tests/lxcxml2xmltest.c @@ -129,6 +129,7 @@ mymain(void) DO_TEST("systemd"); DO_TEST("hostdev"); DO_TEST("disk-formats"); + DO_TEST_DIFFERENT("filesystem-ram"); virObjectUnref(caps); virObjectUnref(xmlopt);