|
@@ -410,21 +410,16 @@ done:
|
|
|
kfree(wrk);
|
|
|
}
|
|
|
|
|
|
-static void storvsc_bus_scan(struct work_struct *work)
|
|
|
+static void storvsc_host_scan(struct work_struct *work)
|
|
|
{
|
|
|
struct storvsc_scan_work *wrk;
|
|
|
- int id, order_id;
|
|
|
+ struct Scsi_Host *host;
|
|
|
|
|
|
wrk = container_of(work, struct storvsc_scan_work, work);
|
|
|
- for (id = 0; id < wrk->host->max_id; ++id) {
|
|
|
- if (wrk->host->reverse_ordering)
|
|
|
- order_id = wrk->host->max_id - id - 1;
|
|
|
- else
|
|
|
- order_id = id;
|
|
|
-
|
|
|
- scsi_scan_target(&wrk->host->shost_gendev, 0,
|
|
|
- order_id, SCAN_WILD_CARD, 1);
|
|
|
- }
|
|
|
+ host = wrk->host;
|
|
|
+
|
|
|
+ scsi_scan_host(host);
|
|
|
+
|
|
|
kfree(wrk);
|
|
|
}
|
|
|
|
|
@@ -1173,7 +1168,7 @@ static void storvsc_on_receive(struct hv_device *device,
|
|
|
if (!work)
|
|
|
return;
|
|
|
|
|
|
- INIT_WORK(&work->work, storvsc_bus_scan);
|
|
|
+ INIT_WORK(&work->work, storvsc_host_scan);
|
|
|
work->host = stor_device->host;
|
|
|
schedule_work(&work->work);
|
|
|
break;
|