[SCSI] SCSI core: better initialization for sdev->scsi_level
authorAlan Stern <stern@rowland.harvard.edu>
Mon, 8 Jan 2007 16:12:32 +0000 (11:12 -0500)
committerJames Bottomley <jejb@mulgrave.il.steeleye.com>
Fri, 16 Feb 2007 17:22:55 +0000 (11:22 -0600)
This patch will affect the CDB in INQUIRY commands sent to LUNs above 0
when LUN-0 reports a scsi_level of 0; the LUN bits will no longer be set
in the second byte of the CDB.  This is as it should be.  Nevertheless,
it's possible that some wacky device might be adversely affected.  I doubt
anyone will complain...

Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
drivers/scsi/scsi_scan.c
drivers/scsi/scsi_sysfs.c

index 7757e558d523ad197e42c187f2c3bce7a3743071..6905ffd135b34ffab0b31cc6b7eaae2bc2bddb37 100644 (file)
@@ -385,6 +385,7 @@ static struct scsi_target *scsi_alloc_target(struct device *parent,
        INIT_LIST_HEAD(&starget->siblings);
        INIT_LIST_HEAD(&starget->devices);
        starget->state = STARGET_RUNNING;
+       starget->scsi_level = SCSI_2;
  retry:
        spin_lock_irqsave(shost->host_lock, flags);
 
index 259c90cfa367027a29e812645fa5ab9e856ff28d..c275dcac3f18b7b4abc1bd984cb1601de3f0a770 100644 (file)
@@ -922,7 +922,7 @@ void scsi_sysfs_device_initialize(struct scsi_device *sdev)
        snprintf(sdev->sdev_classdev.class_id, BUS_ID_SIZE,
                 "%d:%d:%d:%d", sdev->host->host_no,
                 sdev->channel, sdev->id, sdev->lun);
-       sdev->scsi_level = SCSI_2;
+       sdev->scsi_level = starget->scsi_level;
        transport_setup_device(&sdev->sdev_gendev);
        spin_lock_irqsave(shost->host_lock, flags);
        list_add_tail(&sdev->same_target_siblings, &starget->devices);