grub-devel
[Top][All Lists]
Advanced

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

Re: [PATCH 1/5] Fix reporting of RAIDZ vdevs in zfsinfo


From: Vladimir 'φ-coder/phcoder' Serbinenko
Subject: Re: [PATCH 1/5] Fix reporting of RAIDZ vdevs in zfsinfo
Date: Mon, 06 May 2013 20:10:13 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:10.0.12) Gecko/20130116 Icedove/10.0.12

On 06.05.2013 17:05, Massimo Maggi wrote:

> I confirm that the patch attached to this message was written by me
> without copying/porting/ other code.
> 
> A commit message for this single patch could be:
> 
> The ZFS code actually present in GRUB2 is able to correctly read from
> RAID-Z vdev's, but zfsinfo reports them as unknown vdev's.
> This commit fixes zfsinfo to correctly report informations about RAID-Z
> vdev's.
> 

I meant other patches as well. Can you resend them as attachements?

> Regards,
> Massimo Maggi
> 
> On 05/05/2013 00:58, Vladimir 'φ-coder/phcoder' Serbinenko wrote:
>> The patches look ok. The patches it's based on look like original work.
>> However your patches are corrupted by your mailer beyond recovery. Can
>> you resend them as attachements with changelog mentionning the origin?
>>
>> On 04.02.2013 12:08, Massimo Maggi wrote:
>>
>>> Author: Massimo Maggi <address@hidden>
>>> ---
>>>  grub-core/fs/zfs/zfsinfo.c | 20 +++++++++++++++-----
>>>  1 file changed, 15 insertions(+), 5 deletions(-)
>>>
>>> diff --git a/grub-core/fs/zfs/zfsinfo.c b/grub-core/fs/zfs/zfsinfo.c
>>> index fdb587a..c96bf21 100644
>>> --- a/grub-core/fs/zfs/zfsinfo.c
>>> +++ b/grub-core/fs/zfs/zfsinfo.c
>>> @@ -132,21 +132,31 @@ print_vdev_info (char *nvlist, int tab)
>>>        grub_free (path);
>>>        return GRUB_ERR_NONE;
>>>      }
>>> +  char is_mirror=(grub_strcmp(type,VDEV_TYPE_MIRROR) == 0);
>>> +  char is_raidz=(grub_strcmp(type,VDEV_TYPE_RAIDZ) == 0);
>>>  -  if (grub_strcmp (type, VDEV_TYPE_MIRROR) == 0)
>>> +  if (is_mirror || is_raidz)
>>>      {
>>>        int nelm, i;
>>>         nelm = grub_zfs_nvlist_lookup_nvlist_array_get_nelm
>>>     (nvlist, ZPOOL_CONFIG_CHILDREN);
>>>  +      if(is_mirror){
>>> +    grub_puts_ (N_("This VDEV is a mirror"));
>>> +      }
>>> +      else if(is_raidz){
>>> +    grub_uint64_t parity;
>>> +    grub_zfs_nvlist_lookup_uint64(nvlist,"nparity",&parity);
>>> +    grub_printf_ (N_("This VDEV is a RAIDZ%llu\n"),(unsigned long
>>> long)parity);
>>> +      }
>>>        print_tabs (tab);
>>>        if (nelm <= 0)
>>>     {
>>> -     grub_puts_ (N_("Incorrect mirror"));
>>> +     grub_puts_ (N_("Incorrect VDEV"));
>>>       return GRUB_ERR_NONE;
>>>     }
>>> -      grub_printf_ (N_("Mirror with %d children\n"), nelm);
>>> +      grub_printf_ (N_("VDEV with %d children\n"), nelm);
>>>        print_state (nvlist, tab);
>>>        for (i = 0; i < nelm; i++)
>>>     {
>>> @@ -162,14 +172,14 @@ print_vdev_info (char *nvlist, int tab)
>>>              total element number. And the number itself is fine,
>>>              only the element isn't.
>>>           */
>>> -         grub_printf_ (N_("Mirror element number %d isn't correct\n"), i);
>>> +         grub_printf_ (N_("VDEV element number %d isn't correct\n"), i);
>>>           continue;
>>>         }
>>>       /* TRANSLATORS: it's the element carying the number %d, not
>>>          total element number. This is used in enumeration
>>>          "Element number 1", "Element number 2", ... */
>>> -     grub_printf_ (N_("Mirror element number %d:\n"), i);
>>> +     grub_printf_ (N_("VDEV element number %d:\n"), i);
>>>       print_vdev_info (child, tab + 1);
>>>       grub_free (child);
>>>
>>>
>>>
>>> _______________________________________________
>>> Grub-devel mailing list
>>> address@hidden
>>> https://lists.gnu.org/mailman/listinfo/grub-devel
>>
>>
>>
> 



Attachment: signature.asc
Description: OpenPGP digital signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]