[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH] add support for Linux MD linear level
From: |
Vladimir 'φ-coder/phcoder' Serbinenko |
Subject: |
Re: [PATCH] add support for Linux MD linear level |
Date: |
Sat, 08 Jun 2013 14:49:17 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130518 Icedove/17.0.5 |
On 08.06.2013 14:40, Andrey Borzenkov wrote:
> This appears to be trivial enough and occasionally useful.
>
> It also fixes level translation for 1.x super which was broken
> for multipath level as well.
Linear isn't RAID1. You'd need to define a segment for every device.
>
> Signed-off-by: Andrey Borzenkov <address@hidden>
>
> ---
> ChangeLog | 8 ++++++++
> grub-core/disk/mdraid1x_linux.c | 6 +++---
> grub-core/disk/mdraid_linux.c | 4 ++--
> 3 files changed, 13 insertions(+), 5 deletions(-)
>
> diff --git a/ChangeLog b/ChangeLog
> index 4d8f343..e4c1980 100644
> --- a/ChangeLog
> +++ b/ChangeLog
> @@ -1,3 +1,11 @@
> +2013-06-08 Andrey Borzenkov <address@hidden>
> +
> + * grub-core/disk/mdraid1x_linux.c (grub_mdraid_detect): Support
> + linear level by mapping it to RAID1. Pass correct mapped level
> + to grub_diskfilter_make_raid.
> + * grub-core/disk/mdraid_linux.c (grub_mdraid_detect): Support
> + linear level by mapping it to RAID1.
> +
> 2013-06-07 Andrey Borzenkov <address@hidden>
>
> * grub-core/script/execute.c (grub_script_execute_sourcecode): Split
> diff --git a/grub-core/disk/mdraid1x_linux.c b/grub-core/disk/mdraid1x_linux.c
> index a0e65a8..3c18c79 100644
> --- a/grub-core/disk/mdraid1x_linux.c
> +++ b/grub-core/disk/mdraid1x_linux.c
> @@ -160,8 +160,8 @@ grub_mdraid_detect (grub_disk_t disk,
>
> level = grub_le_to_cpu32 (sb.level);
>
> - /* Multipath. */
> - if ((int) level == -4)
> + /* Multipath or linear */
> + if ((int) level == -4 || (int) level == -1)
> level = 1;
>
> if (level != 0 && level != 1 && level != 4 &&
> @@ -207,7 +207,7 @@ grub_mdraid_detect (grub_disk_t disk,
> : grub_le_to_cpu64 (sb.data_size),
> grub_le_to_cpu32 (sb.chunksize),
> grub_le_to_cpu32 (sb.layout),
> - grub_le_to_cpu32 (sb.level));
> + level);
>
> return array;
> }
> diff --git a/grub-core/disk/mdraid_linux.c b/grub-core/disk/mdraid_linux.c
> index f408fd3..4e64d72 100644
> --- a/grub-core/disk/mdraid_linux.c
> +++ b/grub-core/disk/mdraid_linux.c
> @@ -216,8 +216,8 @@ grub_mdraid_detect (grub_disk_t disk,
> /* FIXME: Check the checksum. */
>
> level = grub_md_to_cpu32 (sb.level);
> - /* Multipath. */
> - if ((int) level == -4)
> + /* Multipath or linear */
> + if ((int) level == -4 || (int) level == -1)
> level = 1;
>
> if (level != 0 && level != 1 && level != 4 &&
>
signature.asc
Description: OpenPGP digital signature