Package: parted
Severity: wishlist
Tags: patch

Hi,

Attached patch for libparted, courtesy of Fabio Massimo Di Nitto, enables the support for RAID volumes on sparc. I'd appreciate if it would find its way into the libparted, as it would make it possible to install to RAID volumes on sparc.

Best regards,

Jurij Smakov                                        [EMAIL PROTECTED]
Key: http://www.wooyd.org/pgpkey/                   KeyID: C99E03CC
#! /bin/sh /usr/share/dpatch/dpatch-run
## sparc-fix-raid.dpatch by  <[EMAIL PROTECTED]>
##
## All lines beginning with `## DP:' are a description of the patch.
## DP: No description.

@DPATCH@
diff -urNad parted-1.6.25.1~/libparted/disk_sun.c 
parted-1.6.25.1/libparted/disk_sun.c
--- parted-1.6.25.1~/libparted/disk_sun.c       2006-04-16 07:18:49.000000000 
+0200
+++ parted-1.6.25.1/libparted/disk_sun.c        2006-04-16 07:19:22.000000000 
+0200
@@ -82,6 +82,7 @@
        int                     is_boot;
        int                     is_root;
        int                     is_lvm;
+       int                     is_raid;
 } SunPartitionData;
 
 typedef struct {
@@ -342,6 +343,7 @@
                sun_data->is_boot = sun_data->type == 0x1;
                sun_data->is_root = sun_data->type == 0x2;
                sun_data->is_lvm = sun_data->type == 0x8e;
+               sun_data->is_raid = sun_data->type == 0xfd;
 
                part->num = i + 1;
                part->fs_type = ped_file_system_probe (&part->geom);
@@ -477,6 +479,7 @@
                sun_data->is_boot = 0;
                sun_data->is_root = 0;
                sun_data->is_lvm = 0;
+               sun_data->is_raid = 0;
        } else {
                part->disk_specific = NULL;
        }
@@ -511,6 +514,7 @@
        new_sun_data->is_boot = old_sun_data->is_boot;
        new_sun_data->is_root = old_sun_data->is_root;
        new_sun_data->is_lvm = old_sun_data->is_lvm;
+       new_sun_data->is_raid = old_sun_data->is_raid;
        return new_part;
 }
 
@@ -543,6 +547,10 @@
                sun_data->type = 0x8e;
                return 1;
        }
+       if (sun_data->is_raid) {
+               sun_data->type = 0xfd;
+               return 1;
+       }
 
        sun_data->type = 0x83;
        if (fs_type) {
@@ -570,19 +578,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_lvm = 
sun_data->is_raid = 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_lvm = 
sun_data->is_raid = 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);
+
+               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);
 
                default:
@@ -608,6 +622,8 @@
                        return sun_data->is_root;
                case PED_PARTITION_LVM:
                        return sun_data->is_lvm;
+               case PED_PARTITION_RAID:
+                       return sun_data->is_raid;
 
                default:
                        return 0;
@@ -623,6 +639,7 @@
                case PED_PARTITION_BOOT:
                case PED_PARTITION_ROOT:
                case PED_PARTITION_LVM:
+               case PED_PARTITION_RAID:
                        return 1;
 
                default:

Reply via email to