aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/scsi/scsi_scan.c17
1 files changed, 4 insertions, 13 deletions
diff --git a/drivers/scsi/scsi_scan.c b/drivers/scsi/scsi_scan.c
index f14945996ede..820c4ad7b581 100644
--- a/drivers/scsi/scsi_scan.c
+++ b/drivers/scsi/scsi_scan.c
@@ -872,6 +872,8 @@ static int scsi_probe_and_add_lun(struct scsi_target *starget,
872 if (scsi_probe_lun(sdev, result, result_len, &bflags)) 872 if (scsi_probe_lun(sdev, result, result_len, &bflags))
873 goto out_free_result; 873 goto out_free_result;
874 874
875 if (bflagsp)
876 *bflagsp = bflags;
875 /* 877 /*
876 * result contains valid SCSI INQUIRY data. 878 * result contains valid SCSI INQUIRY data.
877 */ 879 */
@@ -912,8 +914,6 @@ static int scsi_probe_and_add_lun(struct scsi_target *starget,
912 sdev->lockable = 0; 914 sdev->lockable = 0;
913 scsi_unlock_floptical(sdev, result); 915 scsi_unlock_floptical(sdev, result);
914 } 916 }
915 if (bflagsp)
916 *bflagsp = bflags;
917 } 917 }
918 918
919 out_free_result: 919 out_free_result:
@@ -938,7 +938,6 @@ static int scsi_probe_and_add_lun(struct scsi_target *starget,
938 * scsi_sequential_lun_scan - sequentially scan a SCSI target 938 * scsi_sequential_lun_scan - sequentially scan a SCSI target
939 * @starget: pointer to target structure to scan 939 * @starget: pointer to target structure to scan
940 * @bflags: black/white list flag for LUN 0 940 * @bflags: black/white list flag for LUN 0
941 * @lun0_res: result of scanning LUN 0
942 * 941 *
943 * Description: 942 * Description:
944 * Generally, scan from LUN 1 (LUN 0 is assumed to already have been 943 * Generally, scan from LUN 1 (LUN 0 is assumed to already have been
@@ -948,8 +947,7 @@ static int scsi_probe_and_add_lun(struct scsi_target *starget,
948 * Modifies sdevscan->lun. 947 * Modifies sdevscan->lun.
949 **/ 948 **/
950static void scsi_sequential_lun_scan(struct scsi_target *starget, 949static void scsi_sequential_lun_scan(struct scsi_target *starget,
951 int bflags, int lun0_res, int scsi_level, 950 int bflags, int scsi_level, int rescan)
952 int rescan)
953{ 951{
954 unsigned int sparse_lun, lun, max_dev_lun; 952 unsigned int sparse_lun, lun, max_dev_lun;
955 struct Scsi_Host *shost = dev_to_shost(starget->dev.parent); 953 struct Scsi_Host *shost = dev_to_shost(starget->dev.parent);
@@ -970,13 +968,6 @@ static void scsi_sequential_lun_scan(struct scsi_target *starget,
970 sparse_lun = 0; 968 sparse_lun = 0;
971 969
972 /* 970 /*
973 * If not sparse lun and no device attached at LUN 0 do not scan
974 * any further.
975 */
976 if (!sparse_lun && (lun0_res != SCSI_SCAN_LUN_PRESENT))
977 return;
978
979 /*
980 * If less than SCSI_1_CSS, and no special lun scaning, stop 971 * If less than SCSI_1_CSS, and no special lun scaning, stop
981 * scanning; this matches 2.4 behaviour, but could just be a bug 972 * scanning; this matches 2.4 behaviour, but could just be a bug
982 * (to continue scanning a SCSI_1_CSS device). 973 * (to continue scanning a SCSI_1_CSS device).
@@ -1384,7 +1375,7 @@ static void __scsi_scan_target(struct device *parent, unsigned int channel,
1384 * do a sequential scan. 1375 * do a sequential scan.
1385 */ 1376 */
1386 scsi_sequential_lun_scan(starget, bflags, 1377 scsi_sequential_lun_scan(starget, bflags,
1387 res, starget->scsi_level, rescan); 1378 starget->scsi_level, rescan);
1388 } 1379 }
1389 1380
1390 out_reap: 1381 out_reap: