On 03.05.2013 15:49, Daniel P. Berrange wrote:
From: "Daniel P. Berrange" <berrange(a)redhat.com>
The <filesystem> element can now accept a <driver type='nbd'/>
as an alternative to 'loop'. The benefit of NBD is support
for non-raw disk image formats.
Signed-off-by: Daniel P. Berrange <berrange(a)redhat.com>
---
docs/formatdomain.html.in | 5 +++--
docs/schemas/domaincommon.rng | 1 +
src/conf/domain_conf.c | 3 ++-
src/conf/domain_conf.h | 1 +
src/qemu/qemu_command.c | 1 +
tests/lxcxml2xmldata/lxc-disk-formats.xml | 5 +++++
6 files changed, 13 insertions(+), 3 deletions(-)
diff --git a/docs/formatdomain.html.in b/docs/formatdomain.html.in
index c95756e..768b54c 100644
--- a/docs/formatdomain.html.in
+++ b/docs/formatdomain.html.in
@@ -1985,8 +1985,9 @@
the <code>type</code> attribute selects the primary
backend driver name, while the <code>format</code>
attribute provides the format type. For example, LXC
- supports a type of "loop", with a format of "raw". QEMU
- supports a type of "path" or "handle", but no formats.
+ supports a type of "loop", with a format of "raw" or
+ "nbd" with any format. QEMU supports a type of "path"
+ or "handle", but no formats.
</li>
</ul>
</dd>
diff --git a/docs/schemas/domaincommon.rng b/docs/schemas/domaincommon.rng
index 7d1cfa6..73225fc 100644
--- a/docs/schemas/domaincommon.rng
+++ b/docs/schemas/domaincommon.rng
@@ -1675,6 +1675,7 @@
<value>path</value>
<value>handle</value>
<value>loop</value>
+ <value>nbd</value>
</choice>
</attribute>
</optional>
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index f858485..6bb30ae 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -343,7 +343,8 @@ VIR_ENUM_IMPL(virDomainFSDriverType, VIR_DOMAIN_FS_DRIVER_TYPE_LAST,
"default",
"path",
"handle",
- "loop")
+ "loop",
+ "nbd")
VIR_ENUM_IMPL(virDomainFSAccessMode, VIR_DOMAIN_FS_ACCESSMODE_LAST,
"passthrough",
diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h
index 76a6dd0..c9e5d66 100644
--- a/src/conf/domain_conf.h
+++ b/src/conf/domain_conf.h
@@ -793,6 +793,7 @@ enum virDomainFSDriverType {
VIR_DOMAIN_FS_DRIVER_TYPE_PATH,
VIR_DOMAIN_FS_DRIVER_TYPE_HANDLE,
VIR_DOMAIN_FS_DRIVER_TYPE_LOOP,
+ VIR_DOMAIN_FS_DRIVER_TYPE_NBD,
VIR_DOMAIN_FS_DRIVER_TYPE_LAST
};
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
index 24f2fab..894b1a9 100644
--- a/src/qemu/qemu_command.c
+++ b/src/qemu/qemu_command.c
@@ -139,6 +139,7 @@ VIR_ENUM_IMPL(qemuDomainFSDriver, VIR_DOMAIN_FS_DRIVER_TYPE_LAST,
"local",
"local",
"handle",
+ NULL,
NULL);
diff --git a/tests/lxcxml2xmldata/lxc-disk-formats.xml
b/tests/lxcxml2xmldata/lxc-disk-formats.xml
index da53cf2..e953065 100644
--- a/tests/lxcxml2xmldata/lxc-disk-formats.xml
+++ b/tests/lxcxml2xmldata/lxc-disk-formats.xml
@@ -19,6 +19,11 @@
<source file='/root/container.img'/>
<target dir='/'/>
</filesystem>
+ <filesystem type='file' accessmode='passthrough'>
+ <driver type='nbd' format='qcow2'/>
+ <source file='/root/container.qcow2'/>
+ <target dir='/home'/>
+ </filesystem>
<console type='pty'>
<target type='lxc' port='0'/>
</console>
ACK
Michal