Skip to content

Commit

Permalink
[SCSI] scsi_scan: Cope with kthread_run failing
Browse files Browse the repository at this point in the history
If kthread_run failed, we would fail to scan the host, and leak the
allocated async_scan_data.  Since using a separate thread is just an
optimisation, do the scan synchronously if we fail to spawn a thread.

Signed-off-by: Matthew Wilcox <matthew@wil.cx>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
  • Loading branch information
Matthew Wilcox authored and James Bottomley committed Oct 12, 2007
1 parent 31765d7 commit a57b1fc
Showing 1 changed file with 4 additions and 1 deletion.
5 changes: 4 additions & 1 deletion drivers/scsi/scsi_scan.c
Original file line number Diff line number Diff line change
Expand Up @@ -1799,6 +1799,7 @@ static int do_scan_async(void *_data)
**/
void scsi_scan_host(struct Scsi_Host *shost)
{
struct task_struct *p;
struct async_scan_data *data;

if (strncmp(scsi_scan_type, "none", 4) == 0)
Expand All @@ -1810,7 +1811,9 @@ void scsi_scan_host(struct Scsi_Host *shost)
return;
}

kthread_run(do_scan_async, data, "scsi_scan_%d", shost->host_no);
p = kthread_run(do_scan_async, data, "scsi_scan_%d", shost->host_no);
if (unlikely(IS_ERR(p)))
do_scan_async(data);
}
EXPORT_SYMBOL(scsi_scan_host);

Expand Down

0 comments on commit a57b1fc

Please sign in to comment.