diff --git a/docs/formatdomain.html.in b/docs/formatdomain.html.in index 36893997e3ca06cbdeb9230f16124ea703e95c36..8f744871d27dacee88582b9cee073db43a1e793a 100644 --- a/docs/formatdomain.html.in +++ b/docs/formatdomain.html.in @@ -2213,7 +2213,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'
@@ -2279,7 +2280,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 5c5301d8aff75b835932285e8cedff62e3bcf3f4..10b017f0e6ee9d5f049d5898d20f565c9288f8b8 100644 --- a/docs/schemas/domaincommon.rng +++ b/docs/schemas/domaincommon.rng @@ -1732,7 +1732,7 @@ - + diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index 0d6384559875df9babff508dca39a428742d2a9e..e3737bce950277c6dec7d74dca32b4d5426f1feb 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -5916,7 +5916,7 @@ virDomainFSDefParseXML(xmlNodePtr node, char *accessmode = NULL; char *wrpolicy = NULL; char *usage = NULL; - char *unit = NULL; + char *units = NULL; ctxt->node = node; @@ -5972,7 +5972,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")) { @@ -6042,8 +6042,7 @@ virDomainFSDefParseXML(xmlNodePtr node, usage); goto error; } - if (unit && - virScaleInteger(&def->usage, unit, + if (virScaleInteger(&def->usage, units, 1024, ULLONG_MAX) < 0) goto error; } @@ -6065,7 +6064,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 f20a91687e4e588faa86a0afb8247a64a63ff153..5d5e4431f942c5905b59d2777b1bfb8d98ca5e50 100644 --- a/src/conf/domain_conf.h +++ b/src/conf/domain_conf.h @@ -890,7 +890,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 b1f429cd208d91f1252952ec60ec1a89ab1de5f2..7c722ccdc95419f7531ff4835cf36beed6422045 100644 --- a/src/lxc/lxc_container.c +++ b/src/lxc/lxc_container.c @@ -1428,7 +1428,7 @@ static int lxcContainerMountFSTmpfs(virDomainFSDefPtr fs, VIR_DEBUG("usage=%lld sec=%s", fs->usage, sec_mount_options); if (virAsprintf(&data, - "size=%lldk%s", fs->usage, sec_mount_options) < 0) + "size=%lld%s", fs->usage, sec_mount_options) < 0) goto cleanup; if (virFileMakePath(fs->dst) < 0) { diff --git a/tests/domainschematest b/tests/domainschematest index 0e360caae903fff533235c986741d45db8b7bbd3..9ebf0b9a58043aca2b9d908c3643175ecaf2bdc1 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 0000000000000000000000000000000000000000..002fde6ad1539eda326cba0141d41dc2718f650f --- /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 0000000000000000000000000000000000000000..d2369a25d1ca9d8eacc2e0969a3da34838294d0d --- /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 5846ab026dd701b0be253744ae3f8f7fea9bd056..1692e4bbaa65741556bf4902ba9b536081d2eb5f 100644 --- a/tests/lxcxml2xmltest.c +++ b/tests/lxcxml2xmltest.c @@ -136,6 +136,7 @@ mymain(void) DO_TEST("systemd"); DO_TEST("hostdev"); DO_TEST("disk-formats"); + DO_TEST_DIFFERENT("filesystem-ram"); virObjectUnref(caps); virObjectUnref(xmlopt);