diff --git a/src/domain_conf.c b/src/domain_conf.c index d7c4166..1a07b3f 100644 --- a/src/domain_conf.c +++ b/src/domain_conf.c @@ -671,6 +671,8 @@ virDomainDiskDefParseXML(virConnectPtr conn, def->readonly = 1; } else if (xmlStrEqual(cur->name, BAD_CAST "shareable")) { def->shared = 1; + } else if (xmlStrEqual(cur->name, BAD_CAST "snapshot")) { + def->snapshot = 1; } } cur = cur->next; @@ -3028,6 +3030,8 @@ virDomainDiskDefFormat(virConnectPtr conn, virBufferAddLit(buf, " \n"); if (def->shared) virBufferAddLit(buf, " \n"); + if (def->snapshot) + virBufferAddLit(buf, " \n"); virBufferAddLit(buf, " \n"); diff --git a/src/domain_conf.h b/src/domain_conf.h index a8ab99e..23c0512 100644 --- a/src/domain_conf.h +++ b/src/domain_conf.h @@ -105,6 +105,7 @@ struct _virDomainDiskDef { int cachemode; unsigned int readonly : 1; unsigned int shared : 1; + unsigned int snapshot : 1; int slotnum; /* pci slot number for unattach */ }; diff --git a/src/qemu_conf.c b/src/qemu_conf.c index a57d3ab..644dff9 100644 --- a/src/qemu_conf.c +++ b/src/qemu_conf.c @@ -1150,6 +1150,9 @@ int qemudBuildCommandLine(virConnectPtr conn, } else if (disk->shared && !disk->readonly) { virBufferAddLit(&opt, ",cache=off"); } + if (disk->snapshot) { + virBufferAddLit(&opt, ",snapshot=on"); + } if (virBufferError(&opt)) { virReportOOMError(conn);