[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH] blktap2: fix gap in tapdisk2 disk_type numbering



On Fri, Feb 25, 2011 at 11:38 AM, Daniel Stodden
<daniel.stodden@xxxxxxxxxx> wrote:
> On Fri, 2011-02-25 at 13:41 -0500, Shriram Rajagopalan wrote:
>> # HG changeset patch
>> # User Shriram Rajagopalan <rshriram@xxxxxxxxx>
>> # Date 1298659167 28800
>> # Node ID f16d772fdb6c58518299d4c3780b846bcbee6165
>> # Parent  d9c73cceb29715bfafada4d80e79787cb4666816
>> blktap2: fix gap in tapdisk2 disk_type numbering
>>
>> Make the DISK_TYPE_* id numbering in tapdisk-disktypes.h contiguous.
>> Currently, id 8 is unallocated causing a null disk type entry in
>> tapdisk_disk_drivers array in tapdisk-disktypes.c. This causes the
>> function tapdisk_disktype_find() to return an error on encountering
>> disk types >7 (remus:, log:, etc.).
>>
>> Signed-off-by: Shriram Rajagopalan <rshriram@xxxxxxxxx>
>>
>> diff -r d9c73cceb297 -r f16d772fdb6c tools/blktap2/drivers/tapdisk-disktype.h
>> --- a/tools/blktap2/drivers/tapdisk-disktype.h        Fri Feb 25 10:29:53 
>> 2011 -0800
>> +++ b/tools/blktap2/drivers/tapdisk-disktype.h        Fri Feb 25 10:39:27 
>> 2011 -0800
>> @@ -37,9 +37,9 @@
>>  #define DISK_TYPE_RAM         5
>>  #define DISK_TYPE_QCOW        6
>>  #define DISK_TYPE_BLOCK_CACHE 7
>> -#define DISK_TYPE_LOG         9
>> -#define DISK_TYPE_REMUS       10
>> -#define DISK_TYPE_VINDEX      11
>> +#define DISK_TYPE_LOG         8
>> +#define DISK_TYPE_REMUS       9
>> +#define DISK_TYPE_VINDEX      10
>>
>>  #define DISK_TYPE_NAME_MAX    32
>
> Ack, unless you think the the option of making tapdisk_disktype_find
> just skip over holes be cleaner?
>
> Not sure if the patch below applies cleanly, but you'll get the idea.
>
> Daniel
>
> changeset:   583:d83dab01b6fa
> user:        Daniel Stodden <daniel.stodden@xxxxxxxxxx>
> date:        Tue Feb 15 01:37:44 2011 -0800
> summary:     Allow for holes in tapdisk_disk_types.
>
> diff -r 37f55e6d34ca -r d83dab01b6fa drivers/tapdisk-disktype.c
> --- a/drivers/tapdisk-disktype.c        Tue Feb 15 01:37:44 2011 -0800
> +++ b/drivers/tapdisk-disktype.c        Tue Feb 15 01:37:44 2011 -0800
> @@ -154,13 +154,19 @@
>        0,
>  };
>
> +#define ARRAY_SIZE(_a) (sizeof(_a)/sizeof((_a)[0]))
> +
>  int
>  tapdisk_disktype_find(const char *name)
>  {
> -       const disk_info_t *info;
>        int i;
>
> -       for (i = 0; info = tapdisk_disk_types[i], info != NULL; ++i) {
> +       for (i = 0; i < ARRAY_SIZE(tapdisk_disk_types); i++) {
> +               const disk_info_t *info = tapdisk_disk_types[i];
> +
> +               if (!info)
> +                       continue;
> +
>                if (strcmp(name, info->name))
>                        continue;
>
>
>

Yes I agree. I just wanted to avoid code level changes, since atm there
seemed to be only one such gap.
Actually, this patch could go in as another patch, so as to enable "future"
tapdisk2 disk_types to pick any un-allocated id, without worrying
about maintaining
continuity.

shriram

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.