Sophie

Sophie

distrib > Mandriva > 2008.0 > x86_64 > by-pkgid > 36e6e56df81242ee13611eb1d922dace > files > 1

parted-1.8.7-2mdv2008.0.src.rpm

--- parted-1.8.6/libparted/labels/sun.c.pix	2007-03-13 18:01:09.000000000 +0100
+++ parted-1.8.6/libparted/labels/sun.c	2007-04-20 11:07:10.000000000 +0200
@@ -86,6 +86,7 @@
 	int			is_boot;
 	int			is_root;
 	int			is_lvm;
+ 	int			is_raid;
 };
 
 struct _SunDiskData {
@@ -344,6 +345,7 @@
 		sun_data->type = label->infos[i].id;
 		sun_data->is_boot = sun_data->type == 0x1;
 		sun_data->is_root = sun_data->type == 0x2;
+                sun_data->is_raid = sun_data->type == 0xfd;
 		sun_data->is_lvm = sun_data->type == 0x8e;
 
 		part->num = i + 1;
@@ -479,6 +481,7 @@
 		sun_data->type = 0;
 		sun_data->is_boot = 0;
 		sun_data->is_root = 0;
+		sun_data->is_raid = 0;
 		sun_data->is_lvm = 0;
 	} else {
 		part->disk_specific = NULL;
@@ -512,6 +515,7 @@
 	new_sun_data->type = old_sun_data->type;
 	new_sun_data->is_boot = old_sun_data->is_boot;
 	new_sun_data->is_root = old_sun_data->is_root;
+	new_sun_data->is_raid = old_sun_data->is_raid;
 	new_sun_data->is_lvm = old_sun_data->is_lvm;
 	return new_part;
 }
@@ -542,6 +546,10 @@
 		return 1;
 	}
 	if (sun_data->is_lvm) {
+		sun_data->type = 0xfd;
+		return 1;
+	}
+	if (sun_data->is_lvm) {
 		sun_data->type = 0x8e;
 		return 1;
 	}
@@ -572,19 +580,25 @@
 		case PED_PARTITION_BOOT:
 			sun_data->is_boot = state;
 			if (state)
-				sun_data->is_root = sun_data->is_lvm = 0;
+				sun_data->is_root = sun_data->is_raid = sun_data->is_lvm = 0;
 			return ped_partition_set_system (part, part->fs_type);
 
 		case PED_PARTITION_ROOT:
 			sun_data->is_root = state;
 			if (state)
-				sun_data->is_boot = sun_data->is_lvm = 0;
+				sun_data->is_boot = sun_data->is_raid = sun_data->is_lvm = 0;
+			return ped_partition_set_system (part, part->fs_type);
+
+		case PED_PARTITION_RAID:
+			sun_data->is_raid = state;
+			if (state)
+				sun_data->is_root = sun_data->is_boot = sun_data->is_lvm = 0;
 			return ped_partition_set_system (part, part->fs_type);
 
 		case PED_PARTITION_LVM:
 			sun_data->is_lvm = state;
 			if (state)
-				sun_data->is_root = sun_data->is_boot = 0;
+				sun_data->is_root = sun_data->is_boot = sun_data->is_raid = 0;
 			return ped_partition_set_system (part, part->fs_type);
 
 		default:
@@ -608,6 +622,8 @@
 			return sun_data->is_boot;
 		case PED_PARTITION_ROOT:
 			return sun_data->is_root;
+		case PED_PARTITION_RAID:
+			return sun_data->is_raid;
 		case PED_PARTITION_LVM:
 			return sun_data->is_lvm;
 
@@ -625,6 +641,7 @@
 		case PED_PARTITION_BOOT:
 		case PED_PARTITION_ROOT:
 		case PED_PARTITION_LVM:
+		case PED_PARTITION_RAID:
 			return 1;
 
 		default: