> -----Original Message-----
> From: devel [mailto:driverdev-devel-boun...@linuxdriverproject.org] On
> Behalf Of K. Y. Srinivasan
> Sent: Tuesday, December 16, 2014 1:22 PM
> To: gre...@linuxfoundation.org; linux-ker...@vger.kernel.org;
> de...@linuxdriverproject.org; oher...@suse.com;
> jbottom...@parallels.com; h...@infradead.org; linux-s...@vger.kernel.org
> Subject: [PATCH 1/4] Drivers: scsi: 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: K. Y. Srinivasan <k...@microsoft.com>
Reviewed-by: Long Li <lon...@microsoft.com>
> ---
>  drivers/scsi/storvsc_drv.c |   19 +++++++------------
>  1 files changed, 7 insertions(+), 12 deletions(-)
> 
> diff --git a/drivers/scsi/storvsc_drv.c b/drivers/scsi/storvsc_drv.c index
> e3ba251..0a96fef 100644
> --- a/drivers/scsi/storvsc_drv.c
> +++ b/drivers/scsi/storvsc_drv.c
> @@ -426,21 +426,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);
>  }
> 
> @@ -1198,7 +1193,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;
> --
> 1.7.4.1
> 
> _______________________________________________
> devel mailing list
> de...@linuxdriverproject.org
> http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
_______________________________________________
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel

Reply via email to