aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/scsi/scsi_scan.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/drivers/scsi/scsi_scan.c b/drivers/scsi/scsi_scan.c
index 7eb3a2d40dc5..27bcc8fb8cbc 100644
--- a/drivers/scsi/scsi_scan.c
+++ b/drivers/scsi/scsi_scan.c
@@ -1074,6 +1074,7 @@ static int scsi_report_lun_scan(struct scsi_target *starget, int bflags,
1074 struct scsi_sense_hdr sshdr; 1074 struct scsi_sense_hdr sshdr;
1075 struct scsi_device *sdev; 1075 struct scsi_device *sdev;
1076 struct Scsi_Host *shost = dev_to_shost(&starget->dev); 1076 struct Scsi_Host *shost = dev_to_shost(&starget->dev);
1077 int ret = 0;
1077 1078
1078 /* 1079 /*
1079 * Only support SCSI-3 and up devices if BLIST_NOREPORTLUN is not set. 1080 * Only support SCSI-3 and up devices if BLIST_NOREPORTLUN is not set.
@@ -1169,8 +1170,8 @@ static int scsi_report_lun_scan(struct scsi_target *starget, int bflags,
1169 /* 1170 /*
1170 * The device probably does not support a REPORT LUN command 1171 * The device probably does not support a REPORT LUN command
1171 */ 1172 */
1172 kfree(lun_data); 1173 ret = 1;
1173 return 1; 1174 goto out_err;
1174 } 1175 }
1175 1176
1176 /* 1177 /*
@@ -1238,6 +1239,7 @@ static int scsi_report_lun_scan(struct scsi_target *starget, int bflags,
1238 } 1239 }
1239 } 1240 }
1240 1241
1242 out_err:
1241 kfree(lun_data); 1243 kfree(lun_data);
1242 out: 1244 out:
1243 scsi_device_put(sdev); 1245 scsi_device_put(sdev);
@@ -1246,7 +1248,7 @@ static int scsi_report_lun_scan(struct scsi_target *starget, int bflags,
1246 * the sdev we used didn't appear in the report luns scan 1248 * the sdev we used didn't appear in the report luns scan
1247 */ 1249 */
1248 scsi_destroy_sdev(sdev); 1250 scsi_destroy_sdev(sdev);
1249 return 0; 1251 return ret;
1250} 1252}
1251 1253
1252struct scsi_device *__scsi_add_device(struct Scsi_Host *shost, uint channel, 1254struct scsi_device *__scsi_add_device(struct Scsi_Host *shost, uint channel,