On 11/15/2011 12:15 AM, Hu Tao wrote: > We can filter out 0-weight here: > > diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c > index b35c83c..5160003 100644 > --- a/src/conf/domain_conf.c > +++ b/src/conf/domain_conf.c > @@ -10893,6 +10893,7 @@ virDomainDefFormatInternal(virDomainDefPtr def, > char uuidstr[VIR_UUID_STRING_BUFLEN]; > const char *type = NULL; > int n, allones = 1; > + int blkio = 0;
If we go this route, then this should be bool, not int.
>
> virCheckFlags(DUMPXML_FLAGS |
> VIR_DOMAIN_XML_INTERNAL_STATUS |
> @@ -10930,7 +10931,15 @@ virDomainDefFormatInternal(virDomainDefPtr def,
> def->mem.cur_balloon);
>
> /* add blkiotune only if there are any */
> - if (def->blkio.weight || def->blkio.devices) {
> +
> + if (def->blkio.weight)
> + blkio = 1;
> + for (n = 0; n < def->blkio.ndevices; n++) {
> + if (def->blkio.devices[n].weight)
> + blkio = 1;
and once you set the flag, you can break to shorten the loop.
> + }
> +
> + if (blkio) {
> virBufferAddLit(buf, " <blkiotune>\n");
>
> if (def->blkio.weight)
> @@ -10938,6 +10947,8 @@ virDomainDefFormatInternal(virDomainDefPtr def,
> def->blkio.weight);
>
> for (n = 0; n < def->blkio.ndevices; n++) {
> + if (def->blkio.devices[n].weight == 0)
> + continue;
> virBufferAddLit(buf, " <device>\n");
> virBufferEscapeString(buf, " <path>%s</path>\n",
> def->blkio.devices[n].path);
>
--
Eric Blake [email protected] +1-919-301-3266
Libvirt virtualization library http://libvirt.org
signature.asc
Description: OpenPGP digital signature
-- libvir-list mailing list [email protected] https://www.redhat.com/mailman/listinfo/libvir-list
