ddf multiple-array support patch

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

 



Hello,

Apparently my 2410SA controller can be tricked into writing garbage
virtual drive configuration records for nonexistent arrays(!)  These
bogus config records can be detected by the lack of an entry for them in
the virtual drive list and be ignored by dmraid.

Trouble is, dmraid's ddf support doesn't ignore the bogus entries and
segfaults.  This patch teaches it how to do this, though it's based off
the tree before the ddf code was split up.  I can rebase it, though it's
nearly a one-liner.

Heinz: I couldn't get your 7/21 patch to apply to my rc11 tarball.
Would you mind sending me a snapshot of your latest tree?

--D
--- v12-mdisk6.2/lib/format/ataraid/ddf1.c	2006-07-12 09:34:15.000000000 -0700
+++ v12-mdisk6.3/lib/format/ataraid/ddf1.c	2006-07-27 10:44:09.000000000 -0700
@@ -1191,6 +1191,15 @@ static struct raid_set *group_rd(struct 
 		rd->sectors = get_size(lc, ddf1, cr, pd);
 
 		rd->name = name(lc, ddf1, rd);
+		/*
+		 * If we have a virtual drive config without an entry in the
+		 * list of virtual drives, we ignore it.  Weird bug seen on
+		 * Adaptec 2410SA controller.
+		 */
+		if (!rd->name) {
+			free_raid_dev(lc, &rd);
+			continue;
+		}
 
 		/* Stuff it into the appropriate raid set. */
 		if (!(rs = find_or_alloc_raid_set(lc, rd->name, FIND_ALL,

Attachment: signature.asc
Description: OpenPGP digital signature

_______________________________________________

Ataraid-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/ataraid-list

[Index of Archives]     [Linux RAID]     [Linux Device Mapper]     [Linux IDE]     [Linux SCSI]     [Kernel]     [Linux Books]     [Linux Admin]     [GFS]     [RPM]     [Yosemite Campgrounds]     [AMD 64]

  Powered by Linux