diff options
-rw-r--r-- | drivers/scsi/scsi_scan.c | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/drivers/scsi/scsi_scan.c b/drivers/scsi/scsi_scan.c index 13228312fc4d..b83d03c4deef 100644 --- a/drivers/scsi/scsi_scan.c +++ b/drivers/scsi/scsi_scan.c | |||
@@ -742,6 +742,14 @@ static int scsi_add_lun(struct scsi_device *sdev, unsigned char *inq_result, | |||
742 | sdev->no_uld_attach = 1; | 742 | sdev->no_uld_attach = 1; |
743 | 743 | ||
744 | switch (sdev->type = (inq_result[0] & 0x1f)) { | 744 | switch (sdev->type = (inq_result[0] & 0x1f)) { |
745 | case TYPE_RBC: | ||
746 | /* RBC devices can return SCSI-3 compliance and yet | ||
747 | * still not support REPORT LUNS, so make them act as | ||
748 | * BLIST_NOREPORTLUN unless BLIST_REPORTLUN2 is | ||
749 | * specifically set */ | ||
750 | if ((*bflags & BLIST_REPORTLUN2) == 0) | ||
751 | *bflags |= BLIST_NOREPORTLUN; | ||
752 | /* fall through */ | ||
745 | case TYPE_TAPE: | 753 | case TYPE_TAPE: |
746 | case TYPE_DISK: | 754 | case TYPE_DISK: |
747 | case TYPE_PRINTER: | 755 | case TYPE_PRINTER: |
@@ -752,11 +760,17 @@ static int scsi_add_lun(struct scsi_device *sdev, unsigned char *inq_result, | |||
752 | case TYPE_ENCLOSURE: | 760 | case TYPE_ENCLOSURE: |
753 | case TYPE_COMM: | 761 | case TYPE_COMM: |
754 | case TYPE_RAID: | 762 | case TYPE_RAID: |
755 | case TYPE_RBC: | ||
756 | sdev->writeable = 1; | 763 | sdev->writeable = 1; |
757 | break; | 764 | break; |
758 | case TYPE_WORM: | ||
759 | case TYPE_ROM: | 765 | case TYPE_ROM: |
766 | /* MMC devices can return SCSI-3 compliance and yet | ||
767 | * still not support REPORT LUNS, so make them act as | ||
768 | * BLIST_NOREPORTLUN unless BLIST_REPORTLUN2 is | ||
769 | * specifically set */ | ||
770 | if ((*bflags & BLIST_REPORTLUN2) == 0) | ||
771 | *bflags |= BLIST_NOREPORTLUN; | ||
772 | /* fall through */ | ||
773 | case TYPE_WORM: | ||
760 | sdev->writeable = 0; | 774 | sdev->writeable = 0; |
761 | break; | 775 | break; |
762 | default: | 776 | default: |