diff --git a/ChangeLog b/ChangeLog index 734616b69..b4a0f7674 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +2008-09-22 Bean + + * disk/ata.c (grub_apapi_open): Initialize devfnd, no need to set + scsi->name and scsi->luns, as they will be set in grub_scsi_open. + + * disk/scsi.c (grub_scsi_open): Don't call p->close (scsi) here when + error occurs, as grub_disk_open will call grub_disk_close, which will + call p->close (scsi). + 008-09-21 Felix Zielcke * configure.ac (AC_INIT): Quote `GRUB' string and version number. diff --git a/disk/ata.c b/disk/ata.c index ab4a1da24..214a2cac7 100644 --- a/disk/ata.c +++ b/disk/ata.c @@ -891,7 +891,7 @@ static grub_err_t grub_atapi_open (const char *name, struct grub_scsi *scsi) { struct grub_ata_device *dev; - struct grub_ata_device *devfnd; + struct grub_ata_device *devfnd = 0; for (dev = grub_ata_devices; dev; dev = dev->next) { @@ -911,8 +911,6 @@ grub_atapi_open (const char *name, struct grub_scsi *scsi) return grub_error (GRUB_ERR_UNKNOWN_DEVICE, "No such ATAPI device"); scsi->data = devfnd; - scsi->name = grub_strdup (name); - scsi->luns = 1; return GRUB_ERR_NONE; } diff --git a/disk/scsi.c b/disk/scsi.c index aad59b5a3..b7b6834e7 100644 --- a/disk/scsi.c +++ b/disk/scsi.c @@ -255,7 +255,6 @@ grub_scsi_open (const char *name, grub_disk_t disk) scsi->name = grub_strdup (name); if (! scsi->name) { - p->close (scsi); return grub_errno; } @@ -265,7 +264,6 @@ grub_scsi_open (const char *name, grub_disk_t disk) if (err) { grub_dprintf ("scsi", "inquiry failed\n"); - p->close (scsi); return grub_errno; } @@ -277,7 +275,6 @@ grub_scsi_open (const char *name, grub_disk_t disk) if (scsi->devtype != grub_scsi_devtype_direct && scsi->devtype != grub_scsi_devtype_cdrom) { - p->close (scsi); return grub_error (GRUB_ERR_UNKNOWN_DEVICE, "unknown SCSI device"); } @@ -291,7 +288,6 @@ grub_scsi_open (const char *name, grub_disk_t disk) if (err) { grub_dprintf ("scsi", "READ CAPACITY failed\n"); - p->close (scsi); return grub_errno; }