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

Bug#581392: linux-image-2.6.26-2-amd64: A couple of RAID4/RAID6 fixes from upstream.



Package: linux-2.6
Version: 2.6.26-21lenny4
Severity: normal
Tags: patch



-- Package-specific info:
** Version:
Linux version 2.6.26-2-amd64 (Debian 2.6.26-21lenny4) (dannf@debian.org) (gcc version 4.1.3 20080704 (prerelease) (Debian 4.1.2-25)) #1 SMP Tue Mar 9 22:29:32 UTC 2010


Here are a couple of md software RAID fixes from upstream:

1. Would attempt a RAID4 reshape on an array with insufficient devices -
bit of a corner case as not many people use RAID4, but still.
2. Would fail to attempt to scrub an unreadable sector on a
singly-degraded RAID6 (would drop to a doubly-degraded array
instead).  This is reasonably likely to be hit on large arrays,
and leads to loss of redundancy (the larger the array, the more
likely this is to result in end-user data-loss).

Both are in Linus-git...

Thanks,

Tim.

*** raid6-degraded-scrub-raid4-reshape-lenny.patch
--- /e2/lenny-amd64/root/build/linux-2.6-2.6.26/drivers/md/raid5.c	2008-07-13 22:51:29.000000000 +0100
+++ drivers/md/raid5.c	2010-05-12 16:33:09.000000000 +0100
@@ -1163,7 +1163,7 @@
 
 		clear_bit(R5_UPTODATE, &sh->dev[i].flags);
 		atomic_inc(&rdev->read_errors);
-		if (conf->mddev->degraded)
+		if (conf->mddev->degraded >= conf->max_degraded)
 			printk_rl(KERN_WARNING
 				  "raid5:%s: read error not correctable "
 				  "(sector %llu on %s).\n",
@@ -4202,7 +4202,7 @@
 		 */
 		sector_t here_new, here_old;
 		int old_disks;
-		int max_degraded = (mddev->level == 5 ? 1 : 2);
+		int max_degraded = (mddev->level == 6 ? 2 : 1);
 
 		if (mddev->new_level != mddev->level ||
 		    mddev->new_layout != mddev->layout ||



Reply to: