From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from list by lists.gnu.org with archive (Exim 4.71) id 1UlIRR-0007TW-DI for mharc-grub-devel@gnu.org; Sat, 08 Jun 2013 08:40:21 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:48830) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UlIRO-0007TP-WC for grub-devel@gnu.org; Sat, 08 Jun 2013 08:40:19 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1UlIRL-0006SK-J5 for grub-devel@gnu.org; Sat, 08 Jun 2013 08:40:18 -0400 Received: from mail-la0-x236.google.com ([2a00:1450:4010:c03::236]:44864) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UlIRL-0006SE-Ba for grub-devel@gnu.org; Sat, 08 Jun 2013 08:40:15 -0400 Received: by mail-la0-f54.google.com with SMTP id ec20so4406802lab.41 for ; Sat, 08 Jun 2013 05:40:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:subject:date:message-id:x-mailer; bh=ZQWr7Z0qpuySjqKTuM+bjCFznFx0iS890GDSAlbTS/c=; b=o54VaB35/6Tf2Pt9lFVFbN7QH63XSrwK0FFSiCO48lkv21jKfYvm1JgCHIAqHSitQG zMJEwB/c5t7TWuNovrO/gZvCU83YsRpy7Njp2IB/1uOIAmxV/c7REXAOLKUQLSUluU3p wZbvVbTIPkXxA5USaEyu84mRC6J+DWe7Rfxx3t7L1pKe9848b1k5+YITROvyrFPdrneL tWFGjJMyaZYv4CqBdDb8QuPAVS5MzuUF8mNDeyI2iRByRHwEXOEWo6GLSJz7xpJdZ2GG dhEM/q4nSSWrUINfFmRWWLHbqE6AtNthvedrTCgw3UtMUWc+9eo4d4qTN+ff53YB1gpT 7eVA== X-Received: by 10.152.20.169 with SMTP id o9mr1358584lae.23.1370695214245; Sat, 08 Jun 2013 05:40:14 -0700 (PDT) Received: from localhost.localdomain (ppp79-139-160-84.pppoe.spdop.ru. [79.139.160.84]) by mx.google.com with ESMTPSA id n7sm2500921lbd.12.2013.06.08.05.40.13 for (version=TLSv1.2 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Sat, 08 Jun 2013 05:40:13 -0700 (PDT) From: Andrey Borzenkov To: grub-devel@gnu.org Subject: [PATCH] add support for Linux MD linear level Date: Sat, 8 Jun 2013 16:40:10 +0400 Message-Id: <1370695210-10289-1-git-send-email-arvidjaar@gmail.com> X-Mailer: git-send-email 1.8.1.4 X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-Received-From: 2a00:1450:4010:c03::236 X-BeenThere: grub-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list Reply-To: The development of GNU GRUB List-Id: The development of GNU GRUB List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 08 Jun 2013 12:40:20 -0000 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. Signed-off-by: Andrey Borzenkov --- 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 + + * 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 * 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 && -- tg: (ac72fb7..) u/md_linear (depends on: master)