rpms/dmraid/devel fix_sil_jbod.patch, NONE, 1.1 dmraid.spec, 1.112, 1.113

Heinz Mauelshagen mauelsha at fedoraproject.org
Tue Dec 1 13:34:01 UTC 2009


Author: mauelsha

Update of /cvs/pkgs/rpms/dmraid/devel
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv17712

Modified Files:
	dmraid.spec 
Added Files:
	fix_sil_jbod.patch 
Log Message:
bz542898: fix Silicon Image JBOD support

fix_sil_jbod.patch:
 sil.c |   23 +++++++++++++++++------
 1 file changed, 17 insertions(+), 6 deletions(-)

--- NEW FILE fix_sil_jbod.patch ---
diff --git a/lib/format/ataraid/sil.c.fix_sil_jbod b/lib/format/ataraid/sil.c
index 6089682..8c3df38 100644
--- a/lib/format/ataraid/sil.c.fix_sil_jbod
+++ b/lib/format/ataraid/sil.c
@@ -1,8 +1,8 @@
 /*
  * Silicon Image Medley ATARAID metadata format handler.
  *
- * Copyright (C) 2004,2005  Heinz Mauelshagen, Red Hat GmbH.
- *                          All rights reserved.
+ * Copyright (C) 2004,2005,2009  Heinz Mauelshagen, Red Hat GmbH.
+ *				 All rights reserved.
  *
  * See file LICENSE at the top of this source tree for license information.
  */
@@ -166,6 +166,16 @@ sil_valid(struct lib_context *lc, struct dev_info *di,
 	return 1;
 }
 
+/* Return number of array sectors. */
+static uint64_t
+array_size(struct raid_dev *rd)
+{
+	struct sil *sil = META(rd, sil);
+
+	return (((uint64_t) sil->array_sectors_high) << 32) +
+	       sil->array_sectors_low;
+}
+
 static void
 free_sils(struct sil **sils, unsigned int i)
 {
@@ -381,6 +391,10 @@ devices(struct raid_dev *rd, void *context)
 	struct sil *sil = META(rd, sil);
 
 	switch (sil->type) {
+	case SIL_T_JBOD:
+		ret = array_size(rd) < rd->sectors ?
+		      1 : sil->drives_per_striped_set;
+		break;
 	case SIL_T_RAID0:
 	case SIL_T_RAID10:
 		ret = sil->drives_per_striped_set;
@@ -519,12 +533,9 @@ stripes(struct sil *sil)
 static uint64_t
 sectors(struct raid_dev *rd)
 {
-	uint64_t array_sectors, ret = 0;
+	uint64_t array_sectors = array_size(rd), ret = 0;
 	struct sil *sil = META(rd, sil);
 
-	array_sectors = (((uint64_t) sil->array_sectors_high) << 32) +
-		sil->array_sectors_low;
-
 	switch (sil->type) {
 	case SIL_T_SPARE:
 		/* Cook them up... */


Index: dmraid.spec
===================================================================
RCS file: /cvs/pkgs/rpms/dmraid/devel/dmraid.spec,v
retrieving revision 1.112
retrieving revision 1.113
diff -u -p -r1.112 -r1.113
--- dmraid.spec	5 Nov 2009 11:43:14 -0000	1.112
+++ dmraid.spec	1 Dec 2009 13:34:01 -0000	1.113
@@ -27,6 +27,7 @@ Patch0: dmraid-1.0.0.rc16-test_devices.p
 Patch1: ddf1_lsi_persistent_name.patch
 Patch2: pdc_raid10_failure.patch
 Patch3: return_error_wo_disks.patch
+Patch4: fix_sil_jbod.patch
 
 %description
 DMRAID supports RAID device discovery, RAID set activation, creation,
@@ -70,6 +71,7 @@ Device failure reporting has to be activ
 %patch1 -p1
 %patch2 -p1
 %patch3 -p1
+%patch4 -p1
 
 %build
 %define _libdir /%{_lib}
@@ -141,6 +143,9 @@ rm -rf $RPM_BUILD_ROOT
 %ghost /etc/logwatch/scripts/services/dmeventd_syslogpattern.txt
 
 %changelog
+* Fri Dec 1 2009  Heinz Mauelshagen <heinzm at redhat.com> - 1.0.0.rc16-7
+- bz542898: fix Silicon Image JBOD support
+
 * Fri Oct 16 2009  Heinz Mauelshagen <heinzm at redhat.com> - 1.0.0.rc16-6
 - Fix manual path in specfile
 




More information about the fedora-extras-commits mailing list