Hi,

2008-09-01  Bean  <[EMAIL PROTECTED]>

        * 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).

-- 
Bean
diff --git a/disk/ata.c b/disk/ata.c
index ab4a1da..214a2ca 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 01ef04e..e822732 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;
 	    }
 
_______________________________________________
Grub-devel mailing list
Grub-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/grub-devel

Reply via email to