mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-04-27 00:33:55 +00:00
[SCSI] Fix refcount leak in scsi_report_lun_scan
Signed-off-by: Alan Stern <stern@rowland.harvard.edu> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
This commit is contained in:
parent
34ea80ec6a
commit
2ef8919830
1 changed files with 5 additions and 3 deletions
|
@ -1074,6 +1074,7 @@ static int scsi_report_lun_scan(struct scsi_target *starget, int bflags,
|
||||||
struct scsi_sense_hdr sshdr;
|
struct scsi_sense_hdr sshdr;
|
||||||
struct scsi_device *sdev;
|
struct scsi_device *sdev;
|
||||||
struct Scsi_Host *shost = dev_to_shost(&starget->dev);
|
struct Scsi_Host *shost = dev_to_shost(&starget->dev);
|
||||||
|
int ret = 0;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Only support SCSI-3 and up devices if BLIST_NOREPORTLUN is not set.
|
* 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,
|
||||||
/*
|
/*
|
||||||
* The device probably does not support a REPORT LUN command
|
* The device probably does not support a REPORT LUN command
|
||||||
*/
|
*/
|
||||||
kfree(lun_data);
|
ret = 1;
|
||||||
return 1;
|
goto out_err;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -1238,6 +1239,7 @@ static int scsi_report_lun_scan(struct scsi_target *starget, int bflags,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
out_err:
|
||||||
kfree(lun_data);
|
kfree(lun_data);
|
||||||
out:
|
out:
|
||||||
scsi_device_put(sdev);
|
scsi_device_put(sdev);
|
||||||
|
@ -1246,7 +1248,7 @@ static int scsi_report_lun_scan(struct scsi_target *starget, int bflags,
|
||||||
* the sdev we used didn't appear in the report luns scan
|
* the sdev we used didn't appear in the report luns scan
|
||||||
*/
|
*/
|
||||||
scsi_destroy_sdev(sdev);
|
scsi_destroy_sdev(sdev);
|
||||||
return 0;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
struct scsi_device *__scsi_add_device(struct Scsi_Host *shost, uint channel,
|
struct scsi_device *__scsi_add_device(struct Scsi_Host *shost, uint channel,
|
||||||
|
|
Loading…
Add table
Reference in a new issue