diff -urN linux/drivers/block/genhd.c linux-GFS/drivers/block/genhd.c --- linux/drivers/block/genhd.c Fri Jun 16 18:38:40 2000 +++ linux-GFS/drivers/block/genhd.c Fri Jun 16 19:17:14 2000 @@ -97,6 +97,13 @@ int unit = (minor >> hd->minor_shift) + 'a'; /* + * If the programmer has chosen to specify a name for the + * block device, then use that; otherwise use the defaults. + */ + if(hd->device_names){ + return hd->device_names[minor]; + } + /* * IDE devices use multiple major numbers, but the drives * are named as: {hda,hdb}, {hdc,hdd}, {hde,hdf}, {hdg,hdh}.. * This requires special handling here. diff -urN linux/drivers/block/ide-probe.c linux-GFS/drivers/block/ide-probe.c --- linux/drivers/block/ide-probe.c Fri Jun 16 18:38:40 2000 +++ linux-GFS/drivers/block/ide-probe.c Fri Jun 16 19:17:14 2000 @@ -685,6 +685,7 @@ gd->init = &ide_geninit; /* initialization function */ gd->real_devices= hwif; /* ptr to internal data */ gd->next = NULL; /* linked list of major devs */ + gd->device_names = NULL; for (gdp = &gendisk_head; *gdp; gdp = &((*gdp)->next)) ; hwif->gd = *gdp = gd; /* link onto tail of list */ diff -urN linux/drivers/scsi/sd.c linux-GFS/drivers/scsi/sd.c --- linux/drivers/scsi/sd.c Fri Jun 16 18:38:42 2000 +++ linux-GFS/drivers/scsi/sd.c Fri Jun 16 19:17:14 2000 @@ -1565,6 +1565,7 @@ sd_gendisks[i].next = sd_gendisks + i + 1; sd_gendisks[i].real_devices = (void *) (rscsi_disks + i * SCSI_DISKS_PER_MAJOR); + sd_gendisks[i].device_names = NULL; } LAST_SD_GENDISK.max_nr = diff -urN linux/include/linux/genhd.h linux-GFS/include/linux/genhd.h --- linux/include/linux/genhd.h Fri Jun 16 18:38:27 2000 +++ linux-GFS/include/linux/genhd.h Fri Jun 16 19:17:14 2000 @@ -104,6 +104,7 @@ void *real_devices; /* internal use */ struct gendisk *next; + char **device_names; /* specified names */ }; #ifdef CONFIG_SOLARIS_X86_PARTITION