On 03/07/2012 05:45 AM, Peter Krempa wrote:
On 03/06/2012 01:34 AM, Eric Blake wrote:
> Now can now do:
>
> virsh vol-resize $vol 10M
> virsh blockresize $dom $vol 10M
>
> to get both interfaces to resize to 10MiB. The remaining wart
> is that vol-resize defaults to bytes, but blockresize defaults
> to KiB, but we can't break existing scripts; oh well, it's no
> worse than the same wart of the underlying virDomainBlockResize.
>
> - capacity = -capacity;
> - } else {
> - if (cmdVolSize(capacityStr,&capacity)< 0) {
> - vshError(ctl, _("Malformed size %s"), capacityStr);
> - goto cleanup;
> - }
> + capacityStr++;
This shift in the string discards the minus sign in error/success
messages, but their meaning remains correct.
The old code was wrong for negating things - the public API is
documented as always requiring a non-negative value (the combination of
delta and shrink implies a reduction, no negative needed). So this is
actually a bug fix.
This was probably added as a safety measure and I'd prefer if we
would
require the --shrink flag to mark that the user is sure of what he's
doing, although it should be obvious enough from the minus sign. (I
honestly would prefer a docs change but I'm afraid someone could get mad
at us if he "accidentaly" corrupts his images.)
My latest version now requires both --delta and --shrink to be present
before ignoring a negative sign.
ACK, if you add the check for --shrink.
Peter
--
Eric Blake eblake(a)redhat.com +1-919-301-3266
Libvirt virtualization library
http://libvirt.org