I'm trying to do s/w raid-5 on top of h/w raid-0 and used this patch
http://www.dandelion.com/Linux/DAC960.patch-2.2.10
to patch a vanilla 2.2.10 and get support for the eXtremeRAID 1100.

Afterwards, the s/w raid patch raid/alpha/raid0145-19990724-2.2.10.gz gave
3 rejects, which I didn't really mind except for the add_partition change
to add an extra parameter to the function call.  Can I safely ignore?

I ended up settling on an add_partition of:

#########
static void add_partition (struct gendisk *hd, int minor, int start,
                           int size, int type)
{
        char buf[MAX_DISKNAME_LEN];
        struct hd_struct *p = hd->part+minor;
        p->start_sect = start;
        p->nr_sects = size;
        p->type = type;
        if (hd->major >= DAC960_MAJOR+0 && hd->major <= DAC960_MAJOR+7)
                printk(" p%d", (minor & ((1 << hd->minor_shift) - 1)));
        else
                printk(" %s", disk_name(hd, minor, buf));
}
#########

and here's the reject for drivers/block/genhd.c:
#########
***************
*** 115,125 ****
        return buf;
  }
  
- static void add_partition (struct gendisk *hd, int minor, int start, int size)
  {
-       char buf[8];
-       hd->part[minor].start_sect = start;
-       hd->part[minor].nr_sects   = size;
        printk(" %s", disk_name(hd, minor, buf));
  }
  
--- 120,135 ----
        return buf;
  }
  
+ static void add_partition (struct gendisk *hd, int minor,
+                                      int start, int size, int type)
  {
+       char buf[MAX_DISKNAME_LEN];
+       struct hd_struct *p = hd->part+minor;
+  
+       p->start_sect = start;
+       p->nr_sects = size;
+       p->type = type;
+  
        printk(" %s", disk_name(hd, minor, buf));
  }
  
***************
*** 1236,1242 ****
  {
        static int first_time = 1;
        unsigned long first_sector;
-       char buf[8];
  
        if (first_time)
                printk("Partition check:\n");
--- 1259,1265 ----
  {
        static int first_time = 1;
        unsigned long first_sector;
+       char buf[MAX_DISKNAME_LEN];
  
        if (first_time)
                printk("Partition check:\n");
#########

Thanks,

James

Reply via email to