summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--arch/m68k/atari/stram.c2
-rw-r--r--arch/um/drivers/ubd_kern.c16
-rw-r--r--drivers/acorn/block/fd1772.c4
-rw-r--r--drivers/acorn/block/mfmhd.c6
-rw-r--r--drivers/block/DAC960.c14
-rw-r--r--drivers/block/acsi.c4
-rw-r--r--drivers/block/amiflop.c4
-rw-r--r--drivers/block/ataflop.c4
-rw-r--r--drivers/block/cciss.c18
-rw-r--r--drivers/block/cciss.h1
-rw-r--r--drivers/block/cpqarray.c25
-rw-r--r--drivers/block/floppy.c3
-rw-r--r--drivers/block/genhd.c2
-rw-r--r--drivers/block/loop.c8
-rw-r--r--drivers/block/nbd.c4
-rw-r--r--drivers/block/paride/pcd.c2
-rw-r--r--drivers/block/paride/pd.c2
-rw-r--r--drivers/block/paride/pf.c2
-rw-r--r--drivers/block/ps2esdi.c4
-rw-r--r--drivers/block/rd.c6
-rw-r--r--drivers/block/swim3.c4
-rw-r--r--drivers/block/swim_iop.c4
-rw-r--r--drivers/block/umem.c4
-rw-r--r--drivers/block/xd.c4
-rw-r--r--drivers/block/z2ram.c2
-rw-r--r--drivers/cdrom/aztcd.c2
-rw-r--r--drivers/cdrom/cdu31a.c2
-rw-r--r--drivers/cdrom/cm206.c2
-rw-r--r--drivers/cdrom/gscd.c2
-rw-r--r--drivers/cdrom/mcd.c2
-rw-r--r--drivers/cdrom/mcdx.c2
-rw-r--r--drivers/cdrom/optcd.c2
-rw-r--r--drivers/cdrom/sbpcd.c2
-rw-r--r--drivers/cdrom/sjcd.c2
-rw-r--r--drivers/cdrom/sonycd535.c2
-rw-r--r--drivers/ide/ide-probe.c32
-rw-r--r--drivers/ide/legacy/hd.c6
-rw-r--r--drivers/md/md.c12
-rw-r--r--drivers/message/i2o/i2o_block.c6
-rw-r--r--drivers/mtd/ftl.c10
-rw-r--r--drivers/mtd/mtdblock.c4
-rw-r--r--drivers/mtd/mtdblock_ro.c4
-rw-r--r--drivers/mtd/nftlcore.c10
-rw-r--r--drivers/s390/block/dasd.c2
-rw-r--r--drivers/s390/block/dasd_genhd.c4
-rw-r--r--drivers/s390/block/dasd_proc.c2
-rw-r--r--drivers/s390/block/xpram.c4
-rw-r--r--drivers/sbus/char/jsflash.c4
-rw-r--r--drivers/scsi/sd.c21
-rw-r--r--drivers/scsi/sr.c2
-rw-r--r--fs/partitions/check.c10
-rw-r--r--include/linux/genhd.h3
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;