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);