qemu-img resize will fail with "The new size must be a multiple of 512"
if libvirt doesn't round it first.
This fixes rhbz#951495
Signed-off-by: Christophe Fergeau <cfergeau(a)redhat.com>
---
src/storage/storage_backend_fs.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/src/storage/storage_backend_fs.c b/src/storage/storage_backend_fs.c
index 9b83e57..99973b0 100644
--- a/src/storage/storage_backend_fs.c
+++ b/src/storage/storage_backend_fs.c
@@ -1219,6 +1219,10 @@ virStorageBackendFilesystemResizeQemuImg(const char *path,
return -1;
}
+ /* Round capacity up to the closest 512 multiple as qemu-img errors out
+ * on sizes which are not a multiple of 512 */
+ capacity = (capacity + 511) / 512 * 512;
+
cmd = virCommandNew(img_tool);
virCommandAddArgList(cmd, "resize", path, NULL);
virCommandAddArgFormat(cmd, "%llu", capacity);
--
1.8.2.1