diff options
52 files changed, 97 insertions, 208 deletions
diff --git a/arch/m68k/atari/stram.c b/arch/m68k/atari/stram.c index f3adc44be4f7..1f9a6c948f5c 100644 --- a/arch/m68k/atari/stram.c +++ b/arch/m68k/atari/stram.c @@ -1051,7 +1051,7 @@ static struct gendisk stram_disk = { .first_minor = STRAM_MINOR, .minor_shift = 0, .fops = &stram_fops, - .major_name = "stram" + .disk_name = "stram" }; int __init stram_device_init(void) diff --git a/arch/um/drivers/ubd_kern.c b/arch/um/drivers/ubd_kern.c index 22dcc3281b4f..865faa3ae987 100644 --- a/arch/um/drivers/ubd_kern.c +++ b/arch/um/drivers/ubd_kern.c @@ -396,7 +396,7 @@ devfs_handle_t ubd_fake_dir_handle; static int ubd_add(int n) { devfs_handle_t real, fake; - char name[sizeof("nnnnnn\0")], dev_name[sizeof("ubd0x")]; + char name[sizeof("nnnnnn\0")]; struct ubd *dev = &ubd_dev[n]; u64 size; @@ -407,14 +407,17 @@ static int ubd_add(int n) ubd_gendisk[n].first_minor = n << UBD_SHIFT; ubd_gendisk[n].minor_shift = UBD_SHIFT; ubd_gendisk[n].fops = &ubd_fops; - ubd_gendisk[n].major_name = fakehd_set ? "hd" : "ubd"; /* XXX */ + if (fakehd_set) + sprintf(ubd_gendisk[n].disk_name, "hd%c", n + 'a'); + else + sprintf(ubd_gendisk[n].disk_name, "ubd%d", n); if (fake_major) { fake_gendisk[n].major = fake_major; fake_gendisk[n].first_minor = n << UBD_SHIFT; fake_gendisk[n].minor_shift = UBD_SHIFT; fake_gendisk[n].fops = &ubd_fops; - fake_gendisk[n].major_name = "ubd"; /* XXX */ + sprintf(fake_gendisk[n].disk_name, "ubd%d", n); } if (!dev->is_dir && ubd_file_size(dev, &size) == 0) { @@ -442,12 +445,7 @@ static int ubd_add(int n) if(real == NULL) return(-1); ubd_dev[n].real = real; - if (!fakehd_set) - sprintf(dev_name, "ubd%d", n); - else - sprintf(dev_name, "hd%c", n + 'a'); - - make_ide_entries(dev_name); + make_ide_entries(ubd_gendisk[n].name); return(0); } diff --git a/drivers/acorn/block/fd1772.c b/drivers/acorn/block/fd1772.c index 3856ec9babb5..d59a5deffd47 100644 --- a/drivers/acorn/block/fd1772.c +++ b/drivers/acorn/block/fd1772.c @@ -204,7 +204,6 @@ static struct archy_disk_type { #define MAX_DISK_SIZE 720 static struct gendisk disks[FD_MAX_UNIT]; -static char names[FD_MAX_UNIT][4]; /* current info on each unit */ static struct archy_floppy_struct { @@ -1589,8 +1588,7 @@ int fd1772_init(void) disks[i].major = MAJOR_NR; disks[i].first_minor = 0; disks[i].fops = &floppy_fops; - sprintf(names[i], "fd%d", i); - disks[i].major_name = names[i]; + sprintf(disks[i].disk_name, "fd%d", i); set_capacity(&disks[i], MAX_DISK_SIZE * 2); } blk_set_probe(MAJOR_NR, floppy_find); diff --git a/drivers/acorn/block/mfmhd.c b/drivers/acorn/block/mfmhd.c index bcb43f358167..ab85d086956a 100644 --- a/drivers/acorn/block/mfmhd.c +++ b/drivers/acorn/block/mfmhd.c @@ -884,13 +884,13 @@ static struct gendisk mfm_gendisk[2] = { { .major = MAJOR_NR, .first_minor = 0, - .major_name = "mfma", + .disk_name = "mfma", .minor_shift = 6, }, { .major = MAJOR_NR, .first_minor = 64, - .major_name = "mfmb", + .disk_name = "mfmb", .minor_shift = 6, }; @@ -1020,7 +1020,7 @@ static void mfm_geometry(int drive) struct gendisk *disk = mfm_gendisk + drive; if (p->cylinders) printk ("%s: %dMB CHS=%d/%d/%d LCC=%d RECOMP=%d\n", - disk->major_name, + disk->disk_name, p->cylinders * p->heads * p->sectors / 4096, p->cylinders, p->heads, p->sectors, p->lowcurrent, p->precomp); diff --git a/drivers/block/DAC960.c b/drivers/block/DAC960.c index 5e4d5dafcc34..28f476a31ce7 100644 --- a/drivers/block/DAC960.c +++ b/drivers/block/DAC960.c @@ -1930,16 +1930,10 @@ static boolean DAC960_V2_ReportDeviceConfiguration(DAC960_Controller_T static boolean DAC960_RegisterBlockDevice(DAC960_Controller_T *Controller) { int MajorNumber = DAC960_MAJOR + Controller->ControllerNumber; - char *names; RequestQueue_T *RequestQueue; int MinorNumber; int n; - names = kmalloc(9 * DAC960_MaxLogicalDrives, GFP_KERNEL); - if (!names) { - DAC960_Error("out of memory", Controller); - return false; - } /* Register the Block Device Major Number for this DAC960 Controller. */ @@ -1948,7 +1942,6 @@ static boolean DAC960_RegisterBlockDevice(DAC960_Controller_T *Controller) { DAC960_Error("UNABLE TO ACQUIRE MAJOR NUMBER %d - DETACHING\n", Controller, MajorNumber); - kfree(names); return false; } /* @@ -1967,10 +1960,9 @@ static boolean DAC960_RegisterBlockDevice(DAC960_Controller_T *Controller) for (n = 0; n < DAC960_MaxLogicalDrives; n++) { struct gendisk *disk = &Controller->disks[n]; memset(disk, 0, sizeof(struct gendisk)); - sprintf(names + 9 * n, "rd/c%dd%d", Controller->ControllerNumber, n); + sprintf(disk->disk_name, "rd/c%dd%d", Controller->ControllerNumber, n); disk->major = MajorNumber; disk->first_minor = n << DAC960_MaxPartitionsBits; - disk->major_name = names + 9 * n; disk->minor_shift = DAC960_MaxPartitionsBits; disk->fops = &DAC960_BlockDeviceOperations; } @@ -1990,10 +1982,8 @@ static void DAC960_UnregisterBlockDevice(DAC960_Controller_T *Controller) { int MajorNumber = DAC960_MAJOR + Controller->ControllerNumber; int disk; - for (disk = 0; disk < DAC960_MaxLogicalDrives; disk++) { + for (disk = 0; disk < DAC960_MaxLogicalDrives; disk++) del_gendisk(&Controller->disks[disk]); - kfree(Controller->disks[0].major_name); - } /* Unregister the Block Device Major Number for this DAC960 Controller. */ diff --git a/drivers/block/acsi.c b/drivers/block/acsi.c index 194015a269e7..26cb7b74937b 100644 --- a/drivers/block/acsi.c +++ b/drivers/block/acsi.c @@ -245,7 +245,6 @@ char *acsi_buffer; unsigned long phys_acsi_buffer; static int NDevices; -static char acsi_names[MAX_DEV*4]; static int access_count[MAX_DEV]; static int CurrentNReq; @@ -1692,10 +1691,9 @@ static void acsi_geninit(void) for( i = 0; i < NDevices; ++i ) { struct gendisk *disk = acsi_gendisk + i; - sprintf(acsi_names + 4*i, "ad%c", 'a'+i); + sprintf(disk->disk_name, "ad%c", 'a'+i); disk->major = MAJOR_NR; disk->first_minor = i << 4; - disk->major_name = acsi_names + 4*i; disk->minor_shift = (acsi_info[i].type==HARDDISK)?4:0; disk->fops = &acsi_fops; set_capacity(disk, acsi_info[i].size); diff --git a/drivers/block/amiflop.c b/drivers/block/amiflop.c index c7ae611c4a5c..53c752eed240 100644 --- a/drivers/block/amiflop.c +++ b/drivers/block/amiflop.c @@ -151,7 +151,6 @@ static struct fd_data_type data_types[] = { /* current info on each unit */ static struct amiga_floppy_struct unit[FD_MAX_UNITS]; -static char names[FD_MAX_UNITS][4]; static struct timer_list flush_track_timer[FD_MAX_UNITS]; static struct timer_list post_write_timer; @@ -1747,8 +1746,7 @@ static int __init fd_probe_drives(void) disk->first_minor = drive; disk->minor_shift = 0; disk->fops = &floppy_fops; - sprintf(names[drive], "fd%d", drive); - disk->major_name = names[drive]; + sprintf(disk->disk_name, "fd%d", drive); set_capacity(disk, 880*2); add_disk(disk); } diff --git a/drivers/block/ataflop.c b/drivers/block/ataflop.c index 41d14f7f5a22..a56b7e5dccf0 100644 --- a/drivers/block/ataflop.c +++ b/drivers/block/ataflop.c @@ -236,7 +236,6 @@ static struct atari_floppy_struct { disk change detection) */ int flags; /* flags */ struct gendisk disk; - char name[4]; } unit[FD_MAX_UNITS]; #define UD unit[drive] @@ -1976,8 +1975,7 @@ int __init atari_floppy_init (void) unit[i].flags = 0; unit[i].disk.major = MAJOR_NR; unit[i].disk.first_minor = i; - sprintf(unit[i].name, "fd%d", i); - unit[i].disk.major_name = names[drive]; + sprintf(unit[i].disk.disk_name, "fd%d", i); unit[i].disk.fops = &floppy_fops; set_capacity(&unit[i].disk, MAX_DISK_SIZE * 2); add_disk(&unit[i].disk); diff --git a/drivers/block/cciss.c b/drivers/block/cciss.c index 33aa4d1f1781..d0ef10eb609f 100644 --- a/drivers/block/cciss.c +++ b/drivers/block/cciss.c @@ -740,10 +740,8 @@ static int revalidate_allvol(kdev_t dev) for(i=0; i< NWD; i++) { struct gendisk *disk = &hba[ctlr]->gendisk[i]; - if (disk->major_name) { + if (disk->part) del_gendisk(disk); - disk->major_name = NULL; - } } /* @@ -768,7 +766,6 @@ static int revalidate_allvol(kdev_t dev) if (!drv->nr_blocks) continue; (BLK_DEFAULT_QUEUE(MAJOR_NR + ctlr))->hardsect_size = drv->block_size; - disk->major_name = hba[ctlr]->names + 12 * i; set_capacity(disk, drv->nr_blocks); add_disk(disk); } @@ -795,10 +792,8 @@ static int deregister_disk(int ctlr, int logvol) spin_unlock_irqrestore(CCISS_LOCK(ctlr), flags); /* invalidate the devices and deregister the disk */ - if (disk->major_name) { + if (disk->part) del_gendisk(disk); - disk->major_name = NULL; - } /* check to see if it was the last disk */ if (logvol == h->highest_lun) { /* if so, find the new hightest lun */ @@ -1237,7 +1232,6 @@ static int register_new_disk(int ctlr) ++hba[ctlr]->num_luns; /* setup partitions per disk */ disk = &hba[ctlr]->gendisk[logvol]; - disk->major_name = hba[ctlr]->names + 12 * logvol; set_capacity(disk, hba[ctlr]->drv[logvol].nr_blocks); add_disk(disk); @@ -2433,15 +2427,13 @@ static int __init cciss_init_one(struct pci_dev *pdev, drive_info_struct *drv = &(hba[i]->drv[j]); struct gendisk *disk = hba[i]->gendisk + j; - sprintf(hba[i]->names + 12 * j, "cciss/c%dd%d", i, j); + sprintf(disk->disk_name, "cciss/c%dd%d", i, j); disk->major = MAJOR_NR + i; disk->first_minor = j << NWD_SHIFT; - disk->major_name = NULL; disk->minor_shift = NWD_SHIFT; if( !(drv->nr_blocks)) continue; (BLK_DEFAULT_QUEUE(MAJOR_NR + i))->hardsect_size = drv->block_size; - disk->major_name = hba[i]->names + 12 * j; set_capacity(disk, drv->nr_blocks); add_disk(disk); } @@ -2491,10 +2483,8 @@ static void __devexit cciss_remove_one (struct pci_dev *pdev) /* remove it from the disk list */ for (j = 0; j < NWD; j++) { struct gendisk *disk = &hba[i]->gendisk[j]; - if (disk->major_name) { + if (disk->part) del_gendisk(disk); - disk->major_name = NULL; - } } pci_free_consistent(hba[i]->pdev, NR_CMDS * sizeof(CommandList_struct), diff --git a/drivers/block/cciss.h b/drivers/block/cciss.h index 1baed4acef84..4e902aefbfb3 100644 --- a/drivers/block/cciss.h +++ b/drivers/block/cciss.h @@ -82,7 +82,6 @@ struct ctlr_info // Disk structures we need to pass back struct gendisk gendisk[NWD]; - char names[12 * NWD]; #ifdef CONFIG_CISS_SCSI_TAPE void *scsi_ctlr; /* ptr to structure containing scsi related stuff */ #endif diff --git a/drivers/block/cpqarray.c b/drivers/block/cpqarray.c index dec7ab4b6cf9..f761bf22360f 100644 --- a/drivers/block/cpqarray.c +++ b/drivers/block/cpqarray.c @@ -102,7 +102,6 @@ static struct board_type products[] = { { 0x40580E11, "Smart Array 431", &smart4_access }, }; -static char *ida_names; static struct gendisk ida_gendisk[MAX_CTLR * NWD]; static struct proc_dir_entry *proc_array; @@ -313,13 +312,12 @@ void cleanup_module(void) kfree(hba[i]->cmd_pool_bits); for (j = 0; j < NWD; j++) { - if (ida_gendisk[i*NWD+j].major_name) + if (ida_gendisk[i*NWD+j].part) del_gendisk(&ida_gendisk[i*NWD+j]); } } devfs_find_and_unregister(NULL, "ida", 0, 0, 0, 0); remove_proc_entry("cpqarray", proc_root_driver); - kfree(ida_names); } #endif /* MODULE */ @@ -344,12 +342,6 @@ int __init cpqarray_init(void) printk("Found %d controller(s)\n", nr_ctlr); /* allocate space for disk structs */ - ida_names = kmalloc(nr_ctlr*NWD*10, GFP_KERNEL); - if (!ida_names) { - printk( KERN_ERR "cpqarray: out of memory"); - kfree(ida_names); - return(num_cntlrs_reg); - } /* * register block devices * Find disks and fill in structs @@ -399,11 +391,6 @@ int __init cpqarray_init(void) * init_module will fail, so clean up global * memory that clean_module would do. */ - - if (num_cntlrs_reg == 0) - { - kfree(ida_names); - } return(num_cntlrs_reg); } @@ -439,7 +426,7 @@ int __init cpqarray_init(void) for(j=0; j<NWD; j++) { struct gendisk *disk = ida_gendisk + i*NWD + j; drv_info_t *drv = &hba[i]->drv[j]; - sprintf(ida_names + (i*NWD+j)*10, "ida/c%dd%d", i, j); + sprintf(disk->disk_name, "ida/c%dd%d", i, j); disk->major = MAJOR_NR + i; disk->first_minor = j<<NWD_SHIFT; disk->minor_shift = NWD_SHIFT; @@ -447,7 +434,6 @@ int __init cpqarray_init(void) disk->fops = &ida_fops; if (!drv->nr_blks) continue; - disk->major_name = ida_names + (i*NWD+j)*10; (BLK_DEFAULT_QUEUE(MAJOR_NR + i))->hardsect_size = drv->blk_size; set_capacity(disk, drv->nr_blks); add_disk(disk); @@ -1449,10 +1435,8 @@ static int revalidate_allvol(kdev_t dev) */ for (i = 0; i < NWD; i++) { struct gendisk *disk = ida_gendisk + ctlr*NWD + i; - if (!disk->major_name) - continue; - del_gendisk(disk); - disk->major_name = NULL; + if (disk->part) + del_gendisk(disk); } memset(hba[ctlr]->drv, 0, sizeof(drv_info_t)*NWD); @@ -1471,7 +1455,6 @@ static int revalidate_allvol(kdev_t dev) if (!drv->nr_blks) continue; (BLK_DEFAULT_QUEUE(MAJOR_NR + ctlr))->hardsect_size = drv->blk_size; - disk->major_name = ida_names + (ctlr*NWD+i)*10; set_capacity(disk, drv->nr_blks); add_disk(disk); } diff --git a/drivers/block/floppy.c b/drivers/block/floppy.c index dd8e5d4a66cb..a2c374f5074f 100644 --- a/drivers/block/floppy.c +++ b/drivers/block/floppy.c @@ -4249,8 +4249,7 @@ int __init floppy_init(void) disks[i].major = MAJOR_NR; disks[i].first_minor = TOMINOR(i); disks[i].fops = &floppy_fops; - sprintf(names[i], "fd%d", i); - disks[i].major_name = names[i]; + sprintf(disks[i].disk_name, "fd%d", i); } blk_set_probe(MAJOR_NR, floppy_find); diff --git a/drivers/block/genhd.c b/drivers/block/genhd.c index 6e68b3daf0f6..578d5cfd9de4 100644 --- a/drivers/block/genhd.c +++ b/drivers/block/genhd.c @@ -66,7 +66,7 @@ static void add_gendisk(struct gendisk *gp) p = kmalloc(size, GFP_KERNEL); if (!p) { printk(KERN_ERR "out of memory; no partitions for %s\n", - gp->major_name); + gp->disk_name); gp->minor_shift = 0; } else memset(p, 0, size); diff --git a/drivers/block/loop.c b/drivers/block/loop.c index e00165c79e5a..f5585acc12f6 100644 --- a/drivers/block/loop.c +++ b/drivers/block/loop.c @@ -84,7 +84,6 @@ static int max_loop = 8; static struct loop_device *loop_dev; static struct gendisk *disks; -static char *names; static devfs_handle_t devfs_handle; /* For the directory */ /* @@ -1053,8 +1052,6 @@ int __init loop_init(void) if (!disks) goto out_mem; - names = kmalloc(max_loop * 8, GFP_KERNEL); - for (i = 0; i < max_loop; i++) { struct loop_device *lo = &loop_dev[i]; struct gendisk *disk = disks + i; @@ -1068,8 +1065,7 @@ int __init loop_init(void) disk->major = LOOP_MAJOR; disk->first_minor = i; disk->fops = &lo_fops; - sprintf(names + 8*i, "loop%d", i); - disk->major_name = names + 8 * i; + sprintf(disk->disk_name, "loop%d", i); add_disk(disk); } @@ -1079,7 +1075,6 @@ int __init loop_init(void) return 0; out_mem: - kfree(names); kfree(disks); kfree(loop_dev); printk(KERN_ERR "loop: ran out of memory\n"); @@ -1095,7 +1090,6 @@ void loop_exit(void) if (unregister_blkdev(MAJOR_NR, "loop")) printk(KERN_WARNING "loop: cannot unregister blkdev\n"); - kfree(names); kfree(disks); kfree(loop_dev); } diff --git a/drivers/block/nbd.c b/drivers/block/nbd.c index 26674acee07e..e554bfb4d331 100644 --- a/drivers/block/nbd.c +++ b/drivers/block/nbd.c @@ -60,7 +60,6 @@ static int nbd_blksizes[MAX_NBD]; static int nbd_blksize_bits[MAX_NBD]; static u64 nbd_bytesizes[MAX_NBD]; -static char nbd_names[MAX_NBD][7]; static struct nbd_device nbd_dev[MAX_NBD]; static devfs_handle_t devfs_handle; @@ -531,8 +530,7 @@ static int __init nbd_init(void) disk->first_minor = i; disk->minor_shift = 0; disk->fops = &nbd_fops; - sprintf(nbd_names[i], "nbd%d", i); - disk->major_name = nbd_names[i]; + sprintf(disk->disk_name, "nbd%d", i); set_capacity(disk, 0x3ffffe); add_disk(disk); } diff --git a/drivers/block/paride/pcd.c b/drivers/block/paride/pcd.c index a5fda21053af..2d68c5d8754e 100644 --- a/drivers/block/paride/pcd.c +++ b/drivers/block/paride/pcd.c @@ -301,7 +301,7 @@ static void pcd_init_units(void) disk->major = major; disk->first_minor = unit; disk->minor_shift = 0; - disk->major_name = cd->name; + strcpy(disk->disk_name, cd->name); /* umm... */ disk->fops = &pcd_bdops; } } diff --git a/drivers/block/paride/pd.c b/drivers/block/paride/pd.c index db0fd3a97b16..f6aec9fe3ef5 100644 --- a/drivers/block/paride/pd.c +++ b/drivers/block/paride/pd.c @@ -717,7 +717,7 @@ static int pd_detect(void) } for (unit = 0, disk = pd; unit < PD_UNITS; unit++, disk++) { if (disk->present) { - disk->gd.major_name = disk->name; + strcpy(disk->gd.disk_name, disk->name); disk->gd.minor_shift = PD_BITS; disk->gd.fops = &pd_fops; disk->gd.major = major; diff --git a/drivers/block/paride/pf.c b/drivers/block/paride/pf.c index c389ef1d9058..0ad203fabfa3 100644 --- a/drivers/block/paride/pf.c +++ b/drivers/block/paride/pf.c @@ -316,7 +316,7 @@ void pf_init_units(void) snprintf(pf->name, PF_NAMELEN, "%s%d", name, unit); disk->major = MAJOR_NR; disk->first_minor = unit; - disk->major_name = pf->name; + strcpy(disk->disk_name, pf->name); disk->minor_shift = 0; disk->fops = &pf_fops; if (!(*drives[unit])[D_PRT]) diff --git a/drivers/block/ps2esdi.c b/drivers/block/ps2esdi.c index a9f51f818c42..37e5b4f70564 100644 --- a/drivers/block/ps2esdi.c +++ b/drivers/block/ps2esdi.c @@ -148,14 +148,14 @@ static struct block_device_operations ps2esdi_fops = static struct gendisk ps2esdi_gendisk[2] = { { major: MAJOR_NR, - major_name: "eda", + disk_name: "eda", first_minor: 0, minor_shift: 6, fops: &ps2esdi_fops, },{ major: MAJOR_NR, first_minor: 64, - major_name: "edb", + disk_name: "edb", minor_shift: 6, fops: &ps2esdi_fops, } diff --git a/drivers/block/rd.c b/drivers/block/rd.c index 802346fd9a06..6e7ffb54f016 100644 --- a/drivers/block/rd.c +++ b/drivers/block/rd.c @@ -78,7 +78,6 @@ int initrd_below_start_ok; static unsigned long rd_length[NUM_RAMDISKS]; /* Size of RAM disks in bytes */ static struct gendisk rd_disks[NUM_RAMDISKS]; -static char rd_names[NUM_RAMDISKS][5]; static devfs_handle_t devfs_handle; static struct block_device *rd_bdev[NUM_RAMDISKS];/* Protected device data */ @@ -316,7 +315,7 @@ static struct gendisk initrd_disk = { .first_minor = INITRD_MINOR, .minor_shift = 0, .fops = &rd_bd_op, - .major_name = "initrd" + .disk_name = "initrd" }; static ssize_t initrd_read(struct file *file, char *buf, @@ -447,8 +446,7 @@ static int __init rd_init (void) disk->first_minor = 0; disk->minor_shift = 0; disk->fops = &rd_bd_op; - sprintf(rd_names[i], "rd%d", i); - disk->major_name = rd_names[i]; + sprintf(disk->disk_name, "rd%d", i); set_capacity(disk, rd_size * 2); } devfs_handle = devfs_mk_dir (NULL, "rd", NULL); diff --git a/drivers/block/swim3.c b/drivers/block/swim3.c index 5281da976a61..e7bd23ef64d9 100644 --- a/drivers/block/swim3.c +++ b/drivers/block/swim3.c @@ -39,7 +39,6 @@ #include <linux/devfs_fs_kernel.h> static struct gendisk disks[2]; -static char names[2][4]; #define MAX_FLOPPIES 2 @@ -1046,8 +1045,7 @@ int swim3_init(void) disk->major = MAJOR_NR; disk->first_minor = i; disk->fops = &floppy_fops; - sprintf(names[i], "fd%d", i); - disk->major_name = names[i]; + sprintf(disk->disk_name, "fd%d", i); set_capacity(disk, 2880); add_disk(disk); } diff --git a/drivers/block/swim_iop.c b/drivers/block/swim_iop.c index 77a7af3b54a1..99687652bf10 100644 --- a/drivers/block/swim_iop.c +++ b/drivers/block/swim_iop.c @@ -84,7 +84,6 @@ static int floppy_count; static struct floppy_state floppy_states[MAX_FLOPPIES]; static struct gendisk disks[2]; -static char names[2][4]; static spinlock_t swim_iop_lock = SPIN_LOCK_UNLOCKED; @@ -197,8 +196,7 @@ int swimiop_init(void) disk->major = MAJOR_NR; disk->first_minor = i; disk->fops = &floppy_fops; - sprintf(names[i], "fd%d", i); - disk->major_name = names[i]; + sprintf(disk->disk_name, "fd%d", i); set_capacity(disk, 2880 * 2); add_disk(disk); } diff --git a/drivers/block/umem.c b/drivers/block/umem.c index 50097483e9e3..82fa442e73cc 100644 --- a/drivers/block/umem.c +++ b/drivers/block/umem.c @@ -162,7 +162,6 @@ static struct timer_list battery_timer; static int num_cards = 0; static struct gendisk mm_gendisk[MM_MAXCARDS]; -static char mm_names[MM_MAXCARDS * 6]; static void check_batteries(struct cardinfo *card); @@ -1192,11 +1191,10 @@ int __init mm_init(void) blk_dev[MAJOR_NR].queue = mm_queue_proc; for (i = 0; i < num_cards; i++) { struct gendisk *disk = mm_gendisk + i; - sprintf(mm_names + i*6, "umem%c", 'a'+i); + sprintf(disk->disk_name, "umem%c", 'a'+i); spin_lock_init(&cards[i].lock); disk->major = major_nr; disk->first_minor = i << MM_SHIFT; - disk->major_name = mm_names + i*6; disk->minor_shift = MM_SHIFT; disk->fops = &mm_fops; set_capacity(disk, cards[i].mm_size << 1); diff --git a/drivers/block/xd.c b/drivers/block/xd.c index e19303aa4ee7..c7c037baaa38 100644 --- a/drivers/block/xd.c +++ b/drivers/block/xd.c @@ -129,13 +129,13 @@ static struct gendisk xd_gendisk[2] = { { .major = MAJOR_NR, .first_minor = 0, - .major_name = "xda", + .disk_name = "xda", .minor_shift = 6, .fops = &xd_fops, },{ .major = MAJOR_NR, .first_minor = 64, - .major_name = "xdb", + .disk_name = "xdb", .minor_shift = 6, .fops = &xd_fops, } diff --git a/drivers/block/z2ram.c b/drivers/block/z2ram.c index 5c39ae500dff..0fc26037186a 100644 --- a/drivers/block/z2ram.c +++ b/drivers/block/z2ram.c @@ -76,7 +76,7 @@ static struct gendisk z2ram_gendisk = { .first_minor = 0, .minor_shift = 0, .fops = &z2_fops, - .major_name = "z2ram" + .disk_name = "z2ram" }; static void diff --git a/drivers/cdrom/aztcd.c b/drivers/cdrom/aztcd.c index c92f58be83cc..59148c11e1f7 100644 --- a/drivers/cdrom/aztcd.c +++ b/drivers/cdrom/aztcd.c @@ -1695,7 +1695,7 @@ static struct gendisk azt_disk = { .first_minor = 0, .minor_shift = 0, .fops = &azt_fops, - .major_name = "aztcd" + .disk_name = "aztcd" }; /* diff --git a/drivers/cdrom/cdu31a.c b/drivers/cdrom/cdu31a.c index 219efcd492b2..572af9fca926 100644 --- a/drivers/cdrom/cdu31a.c +++ b/drivers/cdrom/cdu31a.c @@ -3192,7 +3192,7 @@ static struct gendisk scd_gendisk = { .major = MAJOR_NR, .first_minor = 0, .minor_shift = 0, - .major_name = "cdu31a", + .disk_name = "cdu31a", .fops = &scd_bdops, .flags = GENHD_FL_CD, }; diff --git a/drivers/cdrom/cm206.c b/drivers/cdrom/cm206.c index a2c924b970be..c1074b414914 100644 --- a/drivers/cdrom/cm206.c +++ b/drivers/cdrom/cm206.c @@ -1361,7 +1361,7 @@ static struct gendisk cm206_gendisk = { .major = MAJOR_NR, .first_minor = 0, .minor_shift = 0, - .major_name = "cm206", + .disk_name = "cm206", .fops = &cm206_bdops, .flags = GENHD_FL_CD, }; diff --git a/drivers/cdrom/gscd.c b/drivers/cdrom/gscd.c index 899cfc22171a..c80cd3ca7735 100644 --- a/drivers/cdrom/gscd.c +++ b/drivers/cdrom/gscd.c @@ -903,7 +903,7 @@ static struct gendisk gscd_disk = { .first_minor = 0, .minor_shift = 0, .fops = &gscd_fops, - .major_name = "gscd" + .disk_name = "gscd" }; static void __exit gscd_exit(void) diff --git a/drivers/cdrom/mcd.c b/drivers/cdrom/mcd.c index 1616b67ce761..1b2a958968b0 100644 --- a/drivers/cdrom/mcd.c +++ b/drivers/cdrom/mcd.c @@ -225,7 +225,7 @@ static struct gendisk mcd_gendisk = { .major = MAJOR_NR, .first_minor = 0, .minor_shift = 0, - .major_name = "mcd", + .disk_name = "mcd", .fops = &mcd_bdops, .flags = GENHD_FL_CD, }; diff --git a/drivers/cdrom/mcdx.c b/drivers/cdrom/mcdx.c index 748bae979b63..85eeb621ba0c 100644 --- a/drivers/cdrom/mcdx.c +++ b/drivers/cdrom/mcdx.c @@ -1210,7 +1210,7 @@ int __init mcdx_init_drive(int drive) disk->major = MAJOR_NR; disk->first_minor = drive; disk->minor_shift = 0; - disk->major_name = stuffp->info.name; + strcpy(disk->disk_name, stuffp->info.name); disk->fops = &mcdx_bdops; disk->flags = GENHD_FL_CD; diff --git a/drivers/cdrom/optcd.c b/drivers/cdrom/optcd.c index 611892ee400c..8b1da1b5b5f9 100644 --- a/drivers/cdrom/optcd.c +++ b/drivers/cdrom/optcd.c @@ -2002,7 +2002,7 @@ static struct gendisk optcd_disk = { .first_minor = 0, .minor_shift = 0, .fops = &opt_fops, - .major_name = "optcd" + .disk_name = "optcd" }; /* Test for presence of drive and initialize it. Called at boot time diff --git a/drivers/cdrom/sbpcd.c b/drivers/cdrom/sbpcd.c index f255d069a752..37c1e773fb04 100644 --- a/drivers/cdrom/sbpcd.c +++ b/drivers/cdrom/sbpcd.c @@ -5835,7 +5835,7 @@ int __init sbpcd_init(void) disk->first_minor = j; disk->minor_shift = 0; disk->fops = &sbpcd_bdops; - disk->major_name = sbpcd_infop->name; + strcpy(disk->disk_name, sbpcd_infop->name); disk->flags = GENHD_FL_CD; sprintf(nbuff, "c0t%d", p->drv_id); disk->de = devfs_mk_dir(devfs_handle, nbuff, NULL); diff --git a/drivers/cdrom/sjcd.c b/drivers/cdrom/sjcd.c index f501d38182f9..edceb3a3dc85 100644 --- a/drivers/cdrom/sjcd.c +++ b/drivers/cdrom/sjcd.c @@ -1670,7 +1670,7 @@ static struct gendisk sjcd_disk = .first_minor = 0, .minor_shift = 0, .fops = &sjcd_fops, - .major_name = "sjcd" + .disk_name = "sjcd" }; /* diff --git a/drivers/cdrom/sonycd535.c b/drivers/cdrom/sonycd535.c index 46fd465d8e35..cd28b4f1b3d2 100644 --- a/drivers/cdrom/sonycd535.c +++ b/drivers/cdrom/sonycd535.c @@ -1460,7 +1460,7 @@ static struct gendisk cdu_disk = .first_minor = 0, .minor_shift = 0, .fops = &cdu_fops, - .major_name = "cdu", + .disk_name = "cdu", }; /* diff --git a/drivers/ide/ide-probe.c b/drivers/ide/ide-probe.c index fd375a5ac974..2e1b01d68353 100644 --- a/drivers/ide/ide-probe.c +++ b/drivers/ide/ide-probe.c @@ -957,7 +957,6 @@ static void init_gendisk (ide_hwif_t *hwif) struct gendisk *gd; unsigned int unit, units, minors; extern devfs_handle_t ide_devfs_handle; - char *names; units = MAX_DRIVES; @@ -967,28 +966,23 @@ static void init_gendisk (ide_hwif_t *hwif) goto err_kmalloc_gd; memset(gd, 0, MAX_DRIVES * sizeof(struct gendisk)); - names = kmalloc(4 * MAX_DRIVES, GFP_KERNEL); - if (!names) - goto err_kmalloc_gd_names; - memset(names, 0, 4 * MAX_DRIVES); - for (unit = 0; unit < units; ++unit) { - gd[unit].major = hwif->major; - gd[unit].first_minor = unit << PARTN_BITS; - sprintf(names + 4*unit, "hd%c",'a'+hwif->index*MAX_DRIVES+unit); - gd[unit].major_name = names + 4*unit; - gd[unit].minor_shift = PARTN_BITS; - gd[unit].fops = ide_fops; - - snprintf(gd[unit].disk_dev.bus_id,BUS_ID_SIZE,"%u.%u", + struct gendisk *disk = &gd[unit]; + disk->major = hwif->major; + disk->first_minor = unit << PARTN_BITS; + sprintf(disk->disk_name,"hd%c",'a'+hwif->index*MAX_DRIVES+unit); + disk->minor_shift = PARTN_BITS; + disk->fops = ide_fops; + + snprintf(disk->disk_dev.bus_id,BUS_ID_SIZE,"%u.%u", hwif->index,unit); - snprintf(gd[unit].disk_dev.name,DEVICE_NAME_SIZE, + snprintf(disk->disk_dev.name,DEVICE_NAME_SIZE, "%s","IDE Drive"); - gd[unit].disk_dev.parent = &hwif->gendev; - gd[unit].disk_dev.bus = &ide_bus_type; - device_register(&gd[unit].disk_dev); + disk->disk_dev.parent = &hwif->gendev; + disk->disk_dev.bus = &ide_bus_type; + device_register(&disk->disk_dev); - hwif->drives[unit].disk = gd + unit; + hwif->drives[unit].disk = disk; } for (unit = 0; unit < units; ++unit) { diff --git a/drivers/ide/legacy/hd.c b/drivers/ide/legacy/hd.c index 1170c8457066..48614c3cebd7 100644 --- a/drivers/ide/legacy/hd.c +++ b/drivers/ide/legacy/hd.c @@ -695,13 +695,13 @@ static struct gendisk hd_gendisk[2] = { { .major = MAJOR_NR, .first_minor = 0, - .major_name = "hda", + .disk_name = "hda", .minor_shift = 6, .fops = &hd_fops, },{ .major = MAJOR_NR, .first_minor = 64, - .major_name = "hdb", + .disk_name = "hdb", .minor_shift = 6, .fops = &hd_fops, } @@ -810,7 +810,7 @@ static void __init hd_geninit(void) sector_t size = hd_info[drive].head * hd_info[drive].sect * hd_info[drive].cyl; set_capacity(hd_gendisk + drive, size); - printk ("%s: %ldMB, CHS=%d/%d/%d\n", hd_gendisk[drive].major_name, + printk ("%s: %ldMB, CHS=%d/%d/%d\n", hd_gendisk[drive].disk_name, size / 2048, hd_info[drive].cyl, hd_info[drive].head, hd_info[drive].sect); } diff --git a/drivers/md/md.c b/drivers/md/md.c index efd66a9efcbf..3038454374de 100644 --- a/drivers/md/md.c +++ b/drivers/md/md.c @@ -1287,8 +1287,6 @@ static int do_md_run(mddev_t * mddev) struct list_head *tmp; mdk_rdev_t *rdev; struct gendisk *disk; - char *major_name; - if (list_empty(&mddev->disks)) { MD_BUG(); @@ -1395,16 +1393,10 @@ static int do_md_run(mddev_t * mddev) if (!disk) return -ENOMEM; memset(disk, 0, sizeof(struct gendisk)); - major_name = kmalloc(6, GFP_KERNEL); - if (!major_name) { - kfree(disk); - return -ENOMEM; - } disk->major = MD_MAJOR; disk->first_minor = mdidx(mddev); disk->minor_shift = 0; - sprintf(major_name, "md%d", mdidx(mddev)); - disk->major_name = major_name; + sprintf(disk->disk_name, "md%d", mdidx(mddev)); disk->fops = &md_fops; mddev->pers = pers[pnum]; @@ -1416,7 +1408,6 @@ static int do_md_run(mddev_t * mddev) if (err) { printk(KERN_ERR "md: pers->run() failed ...\n"); mddev->pers = NULL; - kfree(disk->major_name); kfree(disk); return -EINVAL; } @@ -1547,7 +1538,6 @@ static int do_md_stop(mddev_t * mddev, int ro) if (disk) { del_gendisk(disk); - kfree(disk->major_name); kfree(disk); } diff --git a/drivers/message/i2o/i2o_block.c b/drivers/message/i2o/i2o_block.c index 23f265d31c51..8643547bfcc4 100644 --- a/drivers/message/i2o/i2o_block.c +++ b/drivers/message/i2o/i2o_block.c @@ -187,7 +187,6 @@ static struct i2ob_request *i2ob_backlog_tail[MAX_I2O_CONTROLLERS]; static struct i2ob_device i2ob_dev[MAX_I2OB<<4]; static int i2ob_dev_count = 0; static struct gendisk i2o_disk[MAX_I2OB]; -static char i2o_names[MAX_I2OB * 8]; /* * Mutex and spin lock for event handling synchronization @@ -1254,7 +1253,7 @@ static int i2ob_install_device(struct i2o_controller *c, struct i2o_device *d, i } - strcpy(d->dev_name, i2o_disk[unit>>4].major_name); + strcpy(d->dev_name, i2o_disk[unit>>4].disk_name); printk(KERN_INFO "%s: Max segments %d, queue depth %d, byte limit %d.\n", d->dev_name, i2ob_dev[unit].max_segments, i2ob_dev[unit].depth, limit); @@ -1757,8 +1756,7 @@ int i2o_block_init(void) disk->first_minor = i<<4; disk->minor_shift = 4; disk->fops = &i2ob_fops; - disk->major_name = i2o_names + i*8; - sprintf(disk->major_name, "i2o/hd%c", 'a' + i); + sprintf(disk->disk_name, "i2o/hd%c", 'a' + i); } /* diff --git a/drivers/mtd/ftl.c b/drivers/mtd/ftl.c index beb5a964ba11..c1536e9416ab 100644 --- a/drivers/mtd/ftl.c +++ b/drivers/mtd/ftl.c @@ -1211,7 +1211,6 @@ static void ftl_notify_add(struct mtd_info *mtd) { partition_t *partition; struct gendisk *disk; - char *name; int device; for (device=0; device < MAX_MTD_DEVICES && myparts[device]; device++) @@ -1225,23 +1224,20 @@ static void ftl_notify_add(struct mtd_info *mtd) partition = kmalloc(sizeof(partition_t), GFP_KERNEL); disk = kmalloc(sizeof(struct gendisk), GFP_KERNEL); - name = kmalloc(4, GFP_KERNEL); - if (!partition||!disk||!name) { + if (!partition||!disk) { printk(KERN_WARNING "No memory to scan for FTL on %s\n", mtd->name); kfree(partition); kfree(disk); - kfree(name); return; } memset(partition, 0, sizeof(partition_t)); memset(disk, 0, sizeof(struct gendisk)); - sprintf(name, "ftl%c", 'a' + device); + sprintf(disk->disk_name, "ftl%c", 'a' + device); disk->major = FTL_MAJOR; disk->first_minor = device << 4; - disk->major_name = name; disk->minor_shift = PART_BITS; disk->fops = &ftl_blk_fops; partition->mtd = mtd; @@ -1260,7 +1256,6 @@ static void ftl_notify_add(struct mtd_info *mtd) } else { kfree(partition); kfree(disk); - kfree(name); } } @@ -1286,7 +1281,6 @@ static void ftl_notify_remove(struct mtd_info *mtd) myparts[i]->state = 0; del_gendisk(myparts[i]->disk); - kfree(myparts[i]->disk->major_name); kfree(myparts[i]->disk); kfree(myparts[i]); myparts[i] = NULL; diff --git a/drivers/mtd/mtdblock.c b/drivers/mtd/mtdblock.c index ae02fc06239a..9ceb545791b2 100644 --- a/drivers/mtd/mtdblock.c +++ b/drivers/mtd/mtdblock.c @@ -43,7 +43,6 @@ static struct mtdblk_dev { unsigned int cache_size; enum { STATE_EMPTY, STATE_CLEAN, STATE_DIRTY } cache_state; struct gendisk disk; - char name[7]; } *mtdblks[MAX_MTD_DEVICES]; static spinlock_t mtdblks_lock; @@ -319,8 +318,7 @@ static int mtdblock_open(struct inode *inode, struct file *file) mtdblk->disk.first_minor = dev; mtdblk->disk.minor_shift = 0; mtdblk->disk.fops = &mtd_fops; - mtdblk->disk.major_name = mtdblk->name; - sprintf(mtdblk->name, "mtd%d", dev); + sprintf(mtdblk->disk.disk_name, "mtd%d", dev); /* OK, we've created a new one. Add it to the list. */ diff --git a/drivers/mtd/mtdblock_ro.c b/drivers/mtd/mtdblock_ro.c index 1a329064c6a6..a3de7d77ebd7 100644 --- a/drivers/mtd/mtdblock_ro.c +++ b/drivers/mtd/mtdblock_ro.c @@ -30,7 +30,6 @@ MODULE_PARM(debug, "i"); #endif static struct gendisk mtd_disks[MAX_MTD_DEVICES]; -static char names names[MAX_MTD_DEVICES][11]; static int mtdblock_open(struct inode *inode, struct file *file) { @@ -233,8 +232,7 @@ int __init init_mtdblock(void) struct gendisk *disk = mtd_disks + i; disk->major = MAJOR_NR; disk->first_minor = i; - sprintf(names[i], "mtdblock%d", i); - disk->major_name = names[i]; + sprintf(disk->disk_name, "mtdblock%d", i); disk->fops = &mtd_fops; } return 0; diff --git a/drivers/mtd/nftlcore.c b/drivers/mtd/nftlcore.c index ce55535534cc..f60f79f5f0ec 100644 --- a/drivers/mtd/nftlcore.c +++ b/drivers/mtd/nftlcore.c @@ -56,7 +56,6 @@ static void NFTL_setup(struct mtd_info *mtd) unsigned long temp; int firstfree = -1; struct gendisk *gd; - char *name; DEBUG(MTD_DEBUG_LEVEL1,"NFTL_setup\n"); @@ -76,11 +75,9 @@ static void NFTL_setup(struct mtd_info *mtd) nftl = kmalloc(sizeof(struct NFTLrecord), GFP_KERNEL); gd = kmalloc(sizeof(struct gendisk), GFP_KERNEL); - name = kmalloc(6, GFP_KERNEL); - if (!nftl || !gd || !name) { + if (!nftl || !gd) { kfree(nftl); kfree(gd); - kfree(name); printk(KERN_WARNING "Out of memory for NFTL data structures\n"); return; } @@ -96,7 +93,6 @@ static void NFTL_setup(struct mtd_info *mtd) printk(KERN_WARNING "Could not mount NFTL device\n"); kfree(nftl); kfree(gd); - kfree(name); return; } @@ -134,11 +130,10 @@ static void NFTL_setup(struct mtd_info *mtd) } NFTLs[firstfree] = nftl; memset(gd, 0, sizeof(struct gendisk)); - sprintf(name, "nftl%c", 'a' + firstfree); + sprintf(gd->disk_name, "nftl%c", 'a' + firstfree); gd->major = MAJOR_NR; gd->first_minor = firstfree << NFTL_PARTN_BITS; gd->minor_shift = NFTL_PARTN_BITS; - gd->major_name = name; set_capacity(gd, nftl->nr_sects); nftl->disk = gd; add_disk(gd); @@ -157,7 +152,6 @@ static void NFTL_unsetup(int i) if (nftl->EUNtable) kfree(nftl->EUNtable); del_gendisk(nftl->disk); - kfree(nftl->disk->major_name); kfree(nftl->disk); kfree(nftl); } diff --git a/drivers/s390/block/dasd.c b/drivers/s390/block/dasd.c index 422e6e6e9d3c..e9278eec247e 100644 --- a/drivers/s390/block/dasd.c +++ b/drivers/s390/block/dasd.c @@ -292,7 +292,7 @@ dasd_state_new_to_known(dasd_device_t *device) return -ENODEV; /* Set kdev and the device name. */ device->kdev = mk_kdev(gdp->major, gdp->first_minor); - strcpy(device->name, gdp->major_name); + strcpy(device->name, gdp->disk_name); /* Find a discipline for the device. */ rc = dasd_find_disc(device); diff --git a/drivers/s390/block/dasd_genhd.c b/drivers/s390/block/dasd_genhd.c index f6d460e7f5c7..30c8a6bd1024 100644 --- a/drivers/s390/block/dasd_genhd.c +++ b/drivers/s390/block/dasd_genhd.c @@ -34,7 +34,6 @@ struct major_info { struct list_head list; int major; struct gendisk disks[DASD_PER_MAJOR]; - char names[DASD_PER_MAJOR * 8]; }; /* @@ -115,8 +114,7 @@ dasd_register_major(int major) list_for_each(l, &dasd_major_info) index += DASD_PER_MAJOR; for (i = 0; i < DASD_PER_MAJOR; i++, index++) { - char *name = mi->names + i * 8; - mi->disks[i].major_name = name; + name = mi->disks[i].disk_name; sprintf(name, "dasd"); name += 4; if (index > 701) diff --git a/drivers/s390/block/dasd_proc.c b/drivers/s390/block/dasd_proc.c index 01984cac5ad4..5106b5ed6a13 100644 --- a/drivers/s390/block/dasd_proc.c +++ b/drivers/s390/block/dasd_proc.c @@ -173,7 +173,7 @@ dasd_devices_print(dasd_devmap_t *devmap, char *str) minor = devmap->devindex % DASD_PER_MAJOR; len += sprintf(str + len, " at (%3d:%3d)", gdp->major, minor); /* Print device name. */ - len += sprintf(str + len, " is %-7s", gdp->major_name); + len += sprintf(str + len, " is %-7s", gdp->disk_name); /* Print devices features. */ substr = (devmap->features & DASD_FEATURE_READONLY) ? "(ro)" : " "; len += sprintf(str + len, "%4s: ", substr); diff --git a/drivers/s390/block/xpram.c b/drivers/s390/block/xpram.c index bf3544e70524..f71d3123fec2 100644 --- a/drivers/s390/block/xpram.c +++ b/drivers/s390/block/xpram.c @@ -60,7 +60,6 @@ typedef struct { static xpram_device_t xpram_devices[XPRAM_MAX_DEVS]; static int xpram_sizes[XPRAM_MAX_DEVS]; static struct gendisk xpram_disks[XPRAM_MAX_DEVS]; -static char xpram_names[XPRAM_MAX_DEV][8]; static unsigned long xpram_pages; static int xpram_devs; static devfs_handle_t xpram_devfs_handle; @@ -475,8 +474,7 @@ static int __init xpram_setup_blkdev(void) disk->first_minor = i; disk->minor_shift = 0; disk->fops = &xpram_devops; - sprintf(xpram_names[i], "slram%d", i); - disk->major_name = xpram_names[i]; + sprintf(disk->disk_name, "slram%d", i); set_capacity(disk, xpram_sizes[i] << 1); add_disk(disk); } diff --git a/drivers/sbus/char/jsflash.c b/drivers/sbus/char/jsflash.c index 3ddc11242ecd..cc7bec08048c 100644 --- a/drivers/sbus/char/jsflash.c +++ b/drivers/sbus/char/jsflash.c @@ -128,7 +128,6 @@ struct jsflash { /* */ static struct gendisk jsfd_disk[JSF_MAX]; -static char names[JSF_MAX][6]; /* * Let's pretend we may have several of these... @@ -637,8 +636,7 @@ static int jsfd_init(void) disk->major = JSFD_MAJOR; disk->first_minor = i; - sprintf(names[i], "jsfd%d", i); - disk->major_name = names[i]; + sprintf(disk->disk_name, "jsfd%d", i); disk->fops = &jsfd_fops; disk->minor_shift = 0; set_capacity(disk, jdp->dsize >> 9); diff --git a/drivers/scsi/sd.c b/drivers/scsi/sd.c index 44c1d0f4f28e..7b9f43fa2799 100644 --- a/drivers/scsi/sd.c +++ b/drivers/scsi/sd.c @@ -1297,11 +1297,9 @@ static int sd_attach(Scsi_Device * sdp) { Scsi_Disk *sdkp; int dsk_nr; - char diskname[6]; unsigned long iflags; struct { struct gendisk disk; - char name[5]; } *p; struct gendisk *gd; @@ -1309,18 +1307,17 @@ static int sd_attach(Scsi_Device * sdp) ((sdp->type != TYPE_DISK) && (sdp->type != TYPE_MOD))) return 0; - p = kmalloc(sizeof(*p), GFP_KERNEL); - if (!p) + gd = kmalloc(sizeof(*p), GFP_KERNEL); + if (!gd) return 1; - memset(p, 0, sizeof(*p)); - gd = &p->disk; + memset(gd, 0, sizeof(*p)); SCSI_LOG_HLQUEUE(3, printk("sd_attach: scsi device: <%d,%d,%d,%d>\n", sdp->host->host_no, sdp->channel, sdp->id, sdp->lun)); if (sd_template.nr_dev >= sd_template.dev_max) { sdp->attached--; printk(KERN_ERR "sd_init: no more room for device\n"); - kfree(p); + kfree(gd); return 1; } @@ -1340,7 +1337,7 @@ static int sd_attach(Scsi_Device * sdp) if (dsk_nr >= sd_template.dev_max) { /* panic("scsi_devices corrupt (sd)"); overkill */ printk(KERN_ERR "sd_init: sd_dsk_arr corrupted\n"); - kfree(p); + kfree(gd); return 1; } @@ -1351,18 +1348,16 @@ static int sd_attach(Scsi_Device * sdp) gd->minor_shift = 4; gd->fops = &sd_fops; if (dsk_nr > 26) - sprintf(p->name, "sd%c%c", 'a'+dsk_nr/26-1, 'a'+dsk_nr%26); + sprintf(gd->disk_name, "sd%c%c",'a'+dsk_nr/26-1,'a'+dsk_nr%26); else - sprintf(p->name, "sd%c", 'a'+dsk_nr%26); - gd->major_name = p->name; + sprintf(gd->disk_name, "sd%c",'a'+dsk_nr%26); gd->flags = sdp->removable ? GENHD_FL_REMOVABLE : 0; gd->driverfs_dev = &sdp->sdev_driverfs_dev; gd->flags |= GENHD_FL_DRIVERFS | GENHD_FL_DEVFS; sd_disks[dsk_nr] = gd; - sd_dskname(dsk_nr, diskname); printk(KERN_NOTICE "Attached scsi %sdisk %s at scsi%d, channel %d, " "id %d, lun %d\n", sdp->removable ? "removable " : "", - diskname, sdp->host->host_no, sdp->channel, sdp->id, sdp->lun); + gd->disk_name, sdp->host->host_no, sdp->channel, sdp->id, sdp->lun); return 0; } diff --git a/drivers/scsi/sr.c b/drivers/scsi/sr.c index 027234739270..1481702238b7 100644 --- a/drivers/scsi/sr.c +++ b/drivers/scsi/sr.c @@ -760,7 +760,7 @@ void sr_finish() disk->major = MAJOR_NR; disk->first_minor = i; disk->minor_shift = 0; - disk->major_name = cd->cdi.name; + strcpy(disk->disk_name, cd->cdi.name); disk->fops = &sr_bdops; disk->flags = GENHD_FL_CD; cd->disk = disk; diff --git a/fs/partitions/check.c b/fs/partitions/check.c index 14f70059acb2..ee0875602779 100644 --- a/fs/partitions/check.c +++ b/fs/partitions/check.c @@ -96,17 +96,17 @@ char *disk_name(struct gendisk *hd, int part, char *buf) if (pos >= 0) return buf + pos; } - sprintf(buf, "%s", hd->major_name); + sprintf(buf, "%s", hd->disk_name); } else { if (hd->part[part-1].de) { pos = devfs_generate_path(hd->part[part-1].de, buf, 64); if (pos >= 0) return buf + pos; } - if (isdigit(hd->major_name[strlen(hd->major_name)-1])) - sprintf(buf, "%sp%d", hd->major_name, part); + if (isdigit(hd->disk_name[strlen(hd->disk_name)-1])) + sprintf(buf, "%sp%d", hd->disk_name, part); else - sprintf(buf, "%s%d", hd->major_name, part); + sprintf(buf, "%s%d", hd->disk_name, part); } return buf; } @@ -313,7 +313,7 @@ static void devfs_create_partitions(struct gendisk *dev) strncpy(dirname + pos, "../", 3); } else { /* Unaware driver: construct "real" directory */ - sprintf(dirname, "../%s/disc%d", dev->major_name, + sprintf(dirname, "../%s/disc%d", dev->disk_name, dev->first_minor >> dev->minor_shift); dir = devfs_mk_dir(NULL, dirname + 3, NULL); } diff --git a/include/linux/genhd.h b/include/linux/genhd.h index 864cee147a82..7cca9efd336a 100644 --- a/include/linux/genhd.h +++ b/include/linux/genhd.h @@ -73,10 +73,9 @@ struct hd_struct { struct gendisk { int major; /* major number of driver */ int first_minor; - const char *major_name; /* name of major driver */ int minor_shift; /* number of times minor is shifted to get real minor */ - + char disk_name[16]; /* name of major driver */ struct hd_struct *part; /* [indexed by minor] */ struct block_device_operations *fops; sector_t capacity; |
