diff options
author | 2012-10-16 20:30:23 -0400 | |
---|---|---|
committer | 2012-10-16 22:56:00 -0500 | |
commit | 29265571200f4258dc1493aafd6beb848a027efb (patch) | |
tree | afc0e156ad00bd2581b56902416656053c890049 | |
parent | storage: lvm: Don't overwrite lvcreate errors (diff) | |
download | libvirt-29265571200f4258dc1493aafd6beb848a027efb.tar.gz libvirt-29265571200f4258dc1493aafd6beb848a027efb.tar.bz2 libvirt-29265571200f4258dc1493aafd6beb848a027efb.zip |
storage: lvm: lvcreate fails with allocation=0, don't do that
On F17 at least, this command fails:
$ sudo /usr/sbin/lvcreate --name sparsetest -L 0K --virtualsize 16384K vgvirt
Unable to create new logical volume with no extents
Which is unfortunate since allocation=0 is what virt-manager tries to use
by default.
Rather than telling the user 'don't do that', let's just give them the
smallest allocation possible if alloc=0 is requested.
https://bugzilla.redhat.com/show_bug.cgi?id=866481
-rw-r--r-- | src/storage/storage_backend_logical.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/storage/storage_backend_logical.c b/src/storage/storage_backend_logical.c index eebeec1ba..de43c3a42 100644 --- a/src/storage/storage_backend_logical.c +++ b/src/storage/storage_backend_logical.c @@ -725,7 +725,8 @@ virStorageBackendLogicalCreateVol(virConnectPtr conn, NULL); virCommandAddArg(cmd, "-L"); if (vol->capacity != vol->allocation) { - virCommandAddArgFormat(cmd, "%lluK", VIR_DIV_UP(vol->allocation, 1024)); + virCommandAddArgFormat(cmd, "%lluK", + VIR_DIV_UP(vol->allocation ? vol->allocation : 1, 1024)); virCommandAddArg(cmd, "--virtualsize"); } virCommandAddArgFormat(cmd, "%lluK", VIR_DIV_UP(vol->capacity, 1024)); |