| From d5469119f0098881ab7f991990ef4f81ef13a194 Mon Sep 17 00:00:00 2001 |
| From: Alan Stern <stern@rowland.harvard.edu> |
| Date: Fri, 12 Feb 2010 12:13:39 -0500 |
| Subject: [SCSI] fix refcounting bug in scsi_get_host_dev |
| |
| From: Alan Stern <stern@rowland.harvard.edu> |
| |
| commit d5469119f0098881ab7f991990ef4f81ef13a194 upstream. |
| |
| This patch (as1334) fixes a bug in scsi_get_host_dev(). It |
| incorrectly calls get_device() on the new device's target. |
| |
| Signed-off-by: Alan Stern <stern@rowland.harvard.edu> |
| Signed-off-by: James Bottomley <James.Bottomley@suse.de> |
| Cc: Hannes Reinecke <hare@suse.de> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> |
| |
| --- |
| drivers/scsi/scsi_scan.c | 5 ++--- |
| 1 file changed, 2 insertions(+), 3 deletions(-) |
| |
| --- a/drivers/scsi/scsi_scan.c |
| +++ b/drivers/scsi/scsi_scan.c |
| @@ -1909,10 +1909,9 @@ struct scsi_device *scsi_get_host_dev(st |
| goto out; |
| |
| sdev = scsi_alloc_sdev(starget, 0, NULL); |
| - if (sdev) { |
| - sdev->sdev_gendev.parent = get_device(&starget->dev); |
| + if (sdev) |
| sdev->borken = 0; |
| - } else |
| + else |
| scsi_target_reap(starget); |
| put_device(&starget->dev); |
| out: |