drive = &hwif->drives[unit];
if (!drive->present)
continue;
- if (drive->usage)
- goto abort;
- if (DRIVER(drive)->shutdown(drive))
+ if (drive->usage || DRIVER(drive)->busy)
goto abort;
+ drive->dead = 1;
}
hwif->present = 0;
return ide_unregister_subdriver(drive);
}
-/*
- * Check if we can unregister the subdriver. Called with the
- * request lock held.
- */
-
-static int default_shutdown(ide_drive_t *drive)
-{
- if (drive->usage || DRIVER(drive)->busy) {
- return 1;
- }
- drive->dead = 1;
- return 0;
-}
-
/*
* Default function to use for the cache flush operation. This
* must be replaced for disk devices (see ATA specification
static void setup_driver_defaults (ide_driver_t *d)
{
if (d->cleanup == NULL) d->cleanup = default_cleanup;
- if (d->shutdown == NULL) d->shutdown = default_shutdown;
if (d->flushcache == NULL) d->flushcache = default_flushcache;
if (d->do_request == NULL) d->do_request = default_do_request;
if (d->end_request == NULL) d->end_request = default_end_request;
unsigned busy : 1;
unsigned supports_dsc_overlap : 1;
int (*cleanup)(ide_drive_t *);
- int (*shutdown)(ide_drive_t *);
int (*flushcache)(ide_drive_t *);
ide_startstop_t (*do_request)(ide_drive_t *, struct request *, sector_t);
int (*end_request)(ide_drive_t *, int, int);