[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