Commit 2a09ed3d authored by K. Y. Srinivasan's avatar K. Y. Srinivasan Committed by Christoph Hellwig

storvsc: in responce to a scan event, scan the host

The virtual HBA that storvsc implements can support multiple channels and
targets. So, scan the host when the host notifies that a scan is needed.
Signed-off-by: default avatarK. Y. Srinivasan <kys@microsoft.com>
Reviewed-by: default avatarLong Li <longli@microsoft.com>
Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
parent ead3700d
......@@ -410,21 +410,16 @@ static void storvsc_device_scan(struct work_struct *work)
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;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment