[libvirt] [PATCH] phyp: fix logic error on volume creation
Eric Blake
eblake at redhat.com
Wed Apr 2 12:04:02 UTC 2014
On 04/02/2014 03:49 AM, Peter Krempa wrote:
> On 04/02/14 01:39, Eric Blake wrote:
>> The phyp code claims that it wants a non-zero value, but actually
>> enforces a capacity of zero. It has been this way since commit
>> ebc46fe in June 2010. Bummer that it has my name as the committer
>> - I guess I should have been much more stubborn about not blindly
>> taking someone else's 1600-line patch.
>>
>> * src/phyp/phyp_driver.c (phypStorageVolCreateXML): Use correct
>> logic.
>>
>> Signed-off-by: Eric Blake <eblake at redhat.com>
>> ---
>>
>> The fact that this bug has gone unnoticed for years makes me
>> wonder if we are better off just removing the phyp driver from
>> our code base, since it is obvious it is not getting much
>> testing. I'm also waiting for a review on this, because although
>> I _think_ the code wanted a non-zero capacity, I don't know
>> enough about phyp and the "viosvrcmd -c 'mklv -lv'" command line;
>> maybe the comments are wrong and it always wanted 0 capacity
>> instead (which is the only thing that would get past the
>> pre-patch code check).
>
> I leave this dispute for others;
I did some googling, and found:
http://pic.dhe.ibm.com/infocenter/powersys/v3r1m5/topic/iphcg/mklv.htm?resultof=%22%6d%6b%6c%76%22%20
which confirms my suspicion that mklv wants a non-zero size argument. I
agree with leaving the dispute on whether the phyp driver is worth
culling to another day. So for now...
>
>>
>> src/phyp/phyp_driver.c | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/src/phyp/phyp_driver.c b/src/phyp/phyp_driver.c
>> index fc3e7db..3a5eefd 100644
>> --- a/src/phyp/phyp_driver.c
>> +++ b/src/phyp/phyp_driver.c
>> @@ -2003,15 +2003,15 @@ phypStorageVolCreateXML(virStoragePoolPtr pool,
>> * in the moment you create the volume.
>> * */
>> if (voldef->key) {
>> VIR_ERROR(_("Key must be empty, Power Hypervisor will create one for you."));
>> goto err;
>> }
>>
>> - if (voldef->capacity) {
>> + if (!voldef->capacity) {
>> VIR_ERROR(_("Capacity cannot be empty."));
>> goto err;
>> }
>>
>> key = phypBuildVolume(pool->conn, voldef->name, spdef->name,
>> voldef->capacity);
>>
>
> ACK to this change.
...I've pushed this patch.
--
Eric Blake eblake redhat com +1-919-301-3266
Libvirt virtualization library http://libvirt.org
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 604 bytes
Desc: OpenPGP digital signature
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20140402/e0fe42c7/attachment-0001.sig>
More information about the libvir-list
mailing list