]> git.hungrycats.org Git - linux/commitdiff
[PATCH] (5/25) Removing bogus arrays - ->flags[]
authorAlexander Viro <viro@math.psu.edu>
Sat, 7 Sep 2002 10:03:44 +0000 (03:03 -0700)
committerLinus Torvalds <torvalds@home.transmeta.com>
Sat, 7 Sep 2002 10:03:44 +0000 (03:03 -0700)
Seeing that now disk->flags[] always consists of one element, we
replace char *flags with int flags, remove the junk from places that used
to allocate these "arrays" and do obvious updates of the code
(s/->flags[0]/->flags/).

drivers/ide/ide-cd.c
drivers/ide/ide-disk.c
drivers/ide/ide-floppy.c
drivers/ide/ide-probe.c
drivers/ide/ide.c
drivers/s390/block/dasd_genhd.c
drivers/scsi/sd.c
fs/partitions/check.c
include/linux/genhd.h

index d6e7db8b7887754558d4fd7cb4321868a0bef057..860f2436179d0303b7ea71f7d19c1065f88a544b 100644 (file)
@@ -3147,6 +3147,9 @@ static int ide_cdrom_reinit (ide_drive_t *drive)
 
        cdrom_read_toc(drive, &sense);
        g->minor_shift = 0;
+       /* probably bogus, but that's the old behaviour */
+       g->de_arr[0] = NULL;
+       g->flags = 0;
        add_gendisk(g);
        register_disk(g, mk_kdev(g->major,g->first_minor),
                      1<<g->minor_shift, ide_fops,
index ce8e1a9e57b939a29b0fd054697673e381284095..5fb72ddaf95258216570ed45f5b63fde7012ad38 100644 (file)
@@ -1516,8 +1516,6 @@ static void idedisk_add_settings(ide_drive_t *drive)
 
 static void idedisk_setup (ide_drive_t *drive)
 {
-       int i;
-       
        struct hd_driveid *id = drive->id;
        unsigned long capacity;
        
@@ -1538,15 +1536,6 @@ static void idedisk_setup (ide_drive_t *drive)
                        drive->doorlocking = 1;
                }
        }
-       for (i = 0; i < MAX_DRIVES; ++i) {
-               ide_hwif_t *hwif = HWIF(drive);
-
-               if (drive != &hwif->drives[i]) continue;
-               hwif->gd[i]->de_arr[i] = drive->de;
-               if (drive->removable)
-                       hwif->gd[i]->flags[i] |= GENHD_FL_REMOVABLE;
-               break;
-       }
 
 #if 1
        (void) probe_lba_addressing(drive, 1);
@@ -1714,6 +1703,8 @@ static int idedisk_reinit(ide_drive_t *drive)
        }
        DRIVER(drive)->busy--;
        g->minor_shift = PARTN_BITS;
+       g->de_arr[0] = drive->de;
+       g->flags = drive->removable ? GENHD_FL_REMOVABLE : 0;
        add_gendisk(g);
        register_disk(g, mk_kdev(g->major,g->first_minor),
                      1<<g->minor_shift, ide_fops,
index 24ef0f8ba41275cdc5fb77c159be795702a202b5..94f57d4b5b9f9008d7b89d891a08db854b730ab6 100644 (file)
@@ -2065,7 +2065,6 @@ static void idefloppy_add_settings(ide_drive_t *drive)
 static void idefloppy_setup (ide_drive_t *drive, idefloppy_floppy_t *floppy)
 {
        struct idefloppy_id_gcw gcw;
-       int i;
 
        *((unsigned short *) &gcw) = drive->id->config;
        drive->driver_data = floppy;
@@ -2108,15 +2107,6 @@ static void idefloppy_setup (ide_drive_t *drive, idefloppy_floppy_t *floppy)
 
        (void) idefloppy_get_capacity (drive);
        idefloppy_add_settings(drive);
-       for (i = 0; i < MAX_DRIVES; ++i) {
-               ide_hwif_t *hwif = HWIF(drive);
-
-               if (drive != &hwif->drives[i]) continue;
-               hwif->gd[i]->de_arr[i] = drive->de;
-               if (drive->removable)
-                       hwif->gd[i]->flags[i] |= GENHD_FL_REMOVABLE;
-               break;
-       }
 }
 
 static int idefloppy_cleanup (ide_drive_t *drive)
@@ -2221,6 +2211,8 @@ static int idefloppy_reinit (ide_drive_t *drive)
        idefloppy_setup (drive, floppy);
        DRIVER(drive)->busy--;
        g->minor_shift = PARTN_BITS;
+       g->de_arr[0] = drive->de;
+       g->flags = drive->removable ? GENHD_FL_REMOVABLE : 0;
        add_gendisk(g);
        register_disk(g, mk_kdev(g->major,g->first_minor),
                      1<<g->minor_shift, ide_fops,
index cd9b76e89e46acb45d8863b26e0d1e97a72901ff..9fc3488c111b3c6ce399a4399181c73a21c8076c 100644 (file)
@@ -809,7 +809,6 @@ static void init_gendisk (ide_hwif_t *hwif)
        struct gendisk *gd;
        struct hd_struct *part;
        devfs_handle_t *de_arr;
-       char *flags;
        unsigned int unit, units, minors;
        extern devfs_handle_t ide_devfs_handle;
        char *names;
@@ -841,11 +840,6 @@ static void init_gendisk (ide_hwif_t *hwif)
                goto err_kmalloc_gd_de_arr;
        memset(de_arr, 0, sizeof(devfs_handle_t) * MAX_DRIVES);
 
-       flags = kmalloc(sizeof(char) * MAX_DRIVES, GFP_KERNEL);
-       if (!flags)
-               goto err_kmalloc_gd_flags;
-       memset(flags, 0, sizeof(char) * MAX_DRIVES);
-
        names = kmalloc (4 * MAX_DRIVES, GFP_KERNEL);
        if (!names)
                goto err_kmalloc_gd_names;
@@ -854,7 +848,6 @@ static void init_gendisk (ide_hwif_t *hwif)
        for (unit = 0; unit < units; ++unit) {
                gd[unit].part = part + (unit << PARTN_BITS);
                gd[unit].de_arr = de_arr + unit;
-               gd[unit].flags = flags + unit;
                hwif->drives[unit].part = gd[unit].part;
                gd[unit].major  = hwif->major;
                gd[unit].first_minor = unit << PARTN_BITS;
@@ -891,8 +884,6 @@ static void init_gendisk (ide_hwif_t *hwif)
        return;
 
 err_kmalloc_gd_names:
-       kfree(names);
-err_kmalloc_gd_flags:
        kfree(de_arr);
 err_kmalloc_gd_de_arr:
        kfree(part);
index c81cbf3ae916a47b93ec0e634483797610f3fb4c..7c1ed4dd8f254cdab83884ccec99291eb0befa96 100644 (file)
@@ -2064,8 +2064,6 @@ void ide_unregister (unsigned int index)
                kfree(gd->part);
                if (gd->de_arr)
                        kfree (gd->de_arr);
-               if (gd->flags)
-                       kfree (gd->flags);
                kfree(gd);
                for (i = 0; i < MAX_DRIVES; i++)
                        hwif->gd[i] = NULL;
index 056a917799a8610f632269941c2d2ff789958563..82d060ba40267ab712956abe2fa277de5bc48a67 100644 (file)
@@ -35,7 +35,6 @@ struct major_info {
        int major;
        struct gendisk disks[DASD_PER_MAJOR];
        devfs_handle_t de_arr[DASD_PER_MAJOR];
-       char flags[DASD_PER_MAJOR];
        char names[DASD_PER_MAJOR * 8];
        struct hd_struct part[1<<MINORBITS];
 };
@@ -108,7 +107,6 @@ dasd_register_major(int major)
                disk->minor_shift = DASD_PARTN_BITS;
                disk->fops = &dasd_device_operations;
                disk->de_arr = mi->de_arr + i;
-               disk->flags = mi->flags + i;
                disk->part = mi->part + (i << DASD_PARTN_BITS);
        }
 
index b4edc9266a4839fd96c7ded91945f85bf6e4ce50..b1686243dccb44ef41b8afdf4c011c19e6b9ad1d 100644 (file)
@@ -1302,7 +1302,6 @@ static int sd_attach(Scsi_Device * sdp)
                struct gendisk disk;
                devfs_handle_t de;
                struct device *dev;
-               char flags;
                char name[5];
        } *p;
        struct gendisk *gd;
@@ -1316,7 +1315,6 @@ static int sd_attach(Scsi_Device * sdp)
                return 1;
        gd = &p->disk;
        gd->de_arr = &p->de;
-       gd->flags = &p->flags;
        gd->driverfs_dev_arr = &p->dev;
 
        SCSI_LOG_HLQUEUE(3, printk("sd_attach: scsi device: <%d,%d,%d,%d>\n", 
@@ -1361,8 +1359,7 @@ static int sd_attach(Scsi_Device * sdp)
        else
                sprintf(p->name, "sd%c", 'a'+dsk_nr%26);
        gd->major_name = p->name;
-        if (sdp->removable)
-               gd->flags[0] |= GENHD_FL_REMOVABLE;
+        gd->flags = sdp->removable ? GENHD_FL_REMOVABLE : 0;
        sd_disks[dsk_nr] = gd;
        sd_dskname(dsk_nr, diskname);
        printk(KERN_NOTICE "Attached scsi %sdisk %s at scsi%d, channel %d, "
index fa248882183bb29061bbf256a18a467eaba83997..db8d2e8269a37b8cbe4380c7ea96d999cb812b56 100644 (file)
@@ -260,7 +260,7 @@ static void devfs_register_partition(struct gendisk *dev, int part)
        dir = devfs_get_parent(p[0].de);
        if (!dir)
                return;
-       if ( dev->flags && (dev->flags[0] & GENHD_FL_REMOVABLE) )
+       if (dev->flags & GENHD_FL_REMOVABLE)
                devfs_flags |= DEVFS_FL_REMOVABLE;
        sprintf (devname, "part%d", part);
        p[part].de = devfs_register (dir, devname, devfs_flags,
@@ -282,7 +282,7 @@ static void devfs_register_disc(struct gendisk *dev)
 
        if (p[0].de)
                return;
-       if ( dev->flags && (dev->flags[0] & GENHD_FL_REMOVABLE) )
+       if (dev->flags & GENHD_FL_REMOVABLE)
                devfs_flags |= DEVFS_FL_REMOVABLE;
        if (dev->de_arr) {
                dir = dev->de_arr[0];
index dcff86342667feeb2ab4af5beabef8bcc23a141d..aa2f694ceb1a8511a635f8ac32f6da9261c30719 100644 (file)
@@ -81,7 +81,7 @@ struct gendisk {
 
        devfs_handle_t *de_arr;         /* one per physical disc */
        struct device **driverfs_dev_arr;/* support driverfs hierarchy */
-       char *flags;                    /* one per physical disc */
+       int flags;
 };
 
 /* drivers/block/genhd.c */