[SCSI] fix memory leak in scsi_report_lun_scan
This patch (as1333) fixes a bug in scsi_report_lun_scan(). If a newly-allocated device can't be used, it should be deleted. Signed-off-by: Alan Stern <stern@rowland.harvard.edu> Signed-off-by: James Bottomley <James.Bottomley@suse.de>
This commit is contained in:
committed by
James Bottomley
parent
277e76f182
commit
75f8ee8e01
@@ -1339,9 +1339,11 @@ static int scsi_report_lun_scan(struct scsi_target *starget, int bflags,
|
|||||||
sdev = scsi_alloc_sdev(starget, 0, NULL);
|
sdev = scsi_alloc_sdev(starget, 0, NULL);
|
||||||
if (!sdev)
|
if (!sdev)
|
||||||
return 0;
|
return 0;
|
||||||
if (scsi_device_get(sdev))
|
if (scsi_device_get(sdev)) {
|
||||||
|
__scsi_remove_device(sdev);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
sprintf(devname, "host %d channel %d id %d",
|
sprintf(devname, "host %d channel %d id %d",
|
||||||
shost->host_no, sdev->channel, sdev->id);
|
shost->host_no, sdev->channel, sdev->id);
|
||||||
|
|||||||
Reference in New Issue
Block a user