* [PATCH 0/2] scsi: storvsc: Miscellaneous fixes
@ 2016-01-09 5:51 K. Y. Srinivasan
2016-01-09 5:51 ` [PATCH 1/2] scsi: storvsc: Install the storvsc specific timeout handler for FC devices K. Y. Srinivasan
0 siblings, 1 reply; 5+ messages in thread
From: K. Y. Srinivasan @ 2016-01-09 5:51 UTC (permalink / raw)
To: gregkh, linux-kernel, devel, ohering, jbottomley, hch, linux-scsi,
apw, vkuznets, jasowang, martin.petersen, hare
Cc: K. Y. Srinivasan
Some miscellaneous fixes.
K. Y. Srinivasan (2):
scsi: storvsc: Install the storvsc specific timeout handler for FC
devices
scsi: storvsc: Use the specified target ID in device lookup
drivers/scsi/storvsc_drv.c | 12 ++++++++++--
1 files changed, 10 insertions(+), 2 deletions(-)
--
1.7.4.1
^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH 1/2] scsi: storvsc: Install the storvsc specific timeout handler for FC devices
2016-01-09 5:51 [PATCH 0/2] scsi: storvsc: Miscellaneous fixes K. Y. Srinivasan
@ 2016-01-09 5:51 ` K. Y. Srinivasan
2016-01-09 5:51 ` [PATCH 2/2] scsi: storvsc: Use the specified target ID in device lookup K. Y. Srinivasan
0 siblings, 1 reply; 5+ messages in thread
From: K. Y. Srinivasan @ 2016-01-09 5:51 UTC (permalink / raw)
To: gregkh, linux-kernel, devel, ohering, jbottomley, hch, linux-scsi,
apw, vkuznets, jasowang, martin.petersen, hare
Cc: K. Y. Srinivasan
The default timeout routine used for FC transport is not
suitable for FC devices managed by storvsc since FC devices
managed by storvsc driver do not have an rport associated
with them. Use the time out handler used for SCSI devices
for FC devices as well.
Signed-off-by: K. Y. Srinivasan <kys@microsoft.com>
---
drivers/scsi/storvsc_drv.c | 6 ++++++
1 files changed, 6 insertions(+), 0 deletions(-)
diff --git a/drivers/scsi/storvsc_drv.c b/drivers/scsi/storvsc_drv.c
index 41c115c..622f64a 100644
--- a/drivers/scsi/storvsc_drv.c
+++ b/drivers/scsi/storvsc_drv.c
@@ -42,6 +42,7 @@
#include <scsi/scsi_devinfo.h>
#include <scsi/scsi_dbg.h>
#include <scsi/scsi_transport_fc.h>
+#include <scsi/scsi_transport.h>
/*
* All wire protocol details (storage protocol between the guest and the host)
@@ -1770,6 +1771,11 @@ static int __init storvsc_drv_init(void)
fc_transport_template = fc_attach_transport(&fc_transport_functions);
if (!fc_transport_template)
return -ENODEV;
+
+ /*
+ * Install Hyper-V specific timeout handler.
+ */
+ fc_transport_template->eh_timed_out = storvsc_eh_timed_out;
#endif
ret = vmbus_driver_register(&storvsc_drv);
--
1.7.4.1
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH 2/2] scsi: storvsc: Use the specified target ID in device lookup
2016-01-09 5:51 ` [PATCH 1/2] scsi: storvsc: Install the storvsc specific timeout handler for FC devices K. Y. Srinivasan
@ 2016-01-09 5:51 ` K. Y. Srinivasan
2016-01-11 7:09 ` Hannes Reinecke
0 siblings, 1 reply; 5+ messages in thread
From: K. Y. Srinivasan @ 2016-01-09 5:51 UTC (permalink / raw)
To: gregkh, linux-kernel, devel, ohering, jbottomley, hch, linux-scsi,
apw, vkuznets, jasowang, martin.petersen, hare
Cc: K. Y. Srinivasan
The current code assumes that there is only one target in device lookup.
Fix this bug. This will alow us to correctly handle hot reomoval of LUNs.
Signed-off-by: K. Y. Srinivasan <kys@microsoft.com>
---
drivers/scsi/storvsc_drv.c | 6 ++++--
1 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/drivers/scsi/storvsc_drv.c b/drivers/scsi/storvsc_drv.c
index 622f64a..5faf357 100644
--- a/drivers/scsi/storvsc_drv.c
+++ b/drivers/scsi/storvsc_drv.c
@@ -479,6 +479,7 @@ struct storvsc_scan_work {
struct work_struct work;
struct Scsi_Host *host;
uint lun;
+ uint tgt_id;
};
static void storvsc_device_scan(struct work_struct *work)
@@ -490,7 +491,7 @@ static void storvsc_device_scan(struct work_struct *work)
wrk = container_of(work, struct storvsc_scan_work, work);
lun = wrk->lun;
- sdev = scsi_device_lookup(wrk->host, 0, 0, lun);
+ sdev = scsi_device_lookup(wrk->host, 0, wrk->tgt_id, lun);
if (!sdev)
goto done;
scsi_rescan_device(&sdev->sdev_gendev);
@@ -541,7 +542,7 @@ static void storvsc_remove_lun(struct work_struct *work)
if (!scsi_host_get(wrk->host))
goto done;
- sdev = scsi_device_lookup(wrk->host, 0, 0, wrk->lun);
+ sdev = scsi_device_lookup(wrk->host, 0, wrk->tgt_id, wrk->lun);
if (sdev) {
scsi_remove_device(sdev);
@@ -941,6 +942,7 @@ static void storvsc_handle_error(struct vmscsi_request *vm_srb,
wrk->host = host;
wrk->lun = vm_srb->lun;
+ wrk->tgt_id = vm_srb->target_id;
INIT_WORK(&wrk->work, process_err_fn);
schedule_work(&wrk->work);
}
--
1.7.4.1
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH 2/2] scsi: storvsc: Use the specified target ID in device lookup
2016-01-09 5:51 ` [PATCH 2/2] scsi: storvsc: Use the specified target ID in device lookup K. Y. Srinivasan
@ 2016-01-11 7:09 ` Hannes Reinecke
2016-01-12 1:04 ` KY Srinivasan
0 siblings, 1 reply; 5+ messages in thread
From: Hannes Reinecke @ 2016-01-11 7:09 UTC (permalink / raw)
To: K. Y. Srinivasan, gregkh, linux-kernel, devel, ohering,
jbottomley, hch, linux-scsi, apw, vkuznets, jasowang,
martin.petersen
On 01/09/2016 06:51 AM, K. Y. Srinivasan wrote:
> The current code assumes that there is only one target in device lookup.
> Fix this bug. This will alow us to correctly handle hot reomoval of LUNs.
>
> Signed-off-by: K. Y. Srinivasan <kys@microsoft.com>
> ---
> drivers/scsi/storvsc_drv.c | 6 ++++--
> 1 files changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/scsi/storvsc_drv.c b/drivers/scsi/storvsc_drv.c
> index 622f64a..5faf357 100644
> --- a/drivers/scsi/storvsc_drv.c
> +++ b/drivers/scsi/storvsc_drv.c
> @@ -479,6 +479,7 @@ struct storvsc_scan_work {
> struct work_struct work;
> struct Scsi_Host *host;
> uint lun;
> + uint tgt_id;
> };
>
> static void storvsc_device_scan(struct work_struct *work)
> @@ -490,7 +491,7 @@ static void storvsc_device_scan(struct work_struct *work)
> wrk = container_of(work, struct storvsc_scan_work, work);
> lun = wrk->lun;
>
> - sdev = scsi_device_lookup(wrk->host, 0, 0, lun);
> + sdev = scsi_device_lookup(wrk->host, 0, wrk->tgt_id, lun);
> if (!sdev)
> goto done;
> scsi_rescan_device(&sdev->sdev_gendev);
> @@ -541,7 +542,7 @@ static void storvsc_remove_lun(struct work_struct *work)
> if (!scsi_host_get(wrk->host))
> goto done;
>
> - sdev = scsi_device_lookup(wrk->host, 0, 0, wrk->lun);
> + sdev = scsi_device_lookup(wrk->host, 0, wrk->tgt_id, wrk->lun);
>
> if (sdev) {
> scsi_remove_device(sdev);
> @@ -941,6 +942,7 @@ static void storvsc_handle_error(struct vmscsi_request *vm_srb,
>
> wrk->host = host;
> wrk->lun = vm_srb->lun;
> + wrk->tgt_id = vm_srb->target_id;
> INIT_WORK(&wrk->work, process_err_fn);
> schedule_work(&wrk->work);
> }
>
As a side note, are these really 32-bit values?
Both the LUN and the target?
Cheers,
Hannes
--
Dr. Hannes Reinecke zSeries & Storage
hare@suse.de +49 911 74053 688
SUSE LINUX GmbH, Maxfeldstr. 5, 90409 Nürnberg
GF: F. Imendörffer, J. Smithard, J. Guild, D. Upmanyu, G. Norton
HRB 21284 (AG Nürnberg)
^ permalink raw reply [flat|nested] 5+ messages in thread
* RE: [PATCH 2/2] scsi: storvsc: Use the specified target ID in device lookup
2016-01-11 7:09 ` Hannes Reinecke
@ 2016-01-12 1:04 ` KY Srinivasan
0 siblings, 0 replies; 5+ messages in thread
From: KY Srinivasan @ 2016-01-12 1:04 UTC (permalink / raw)
To: Hannes Reinecke, gregkh@linuxfoundation.org,
linux-kernel@vger.kernel.org, devel@linuxdriverproject.org,
ohering@suse.com, jbottomley@parallels.com, hch@infradead.org,
linux-scsi@vger.kernel.org, apw@canonical.com,
vkuznets@redhat.com, jasowang@redhat.com,
martin.petersen@oracle.com
> -----Original Message-----
> From: Hannes Reinecke [mailto:hare@suse.de]
> Sent: Sunday, January 10, 2016 11:10 PM
> To: KY Srinivasan <kys@microsoft.com>; gregkh@linuxfoundation.org; linux-
> kernel@vger.kernel.org; devel@linuxdriverproject.org; ohering@suse.com;
> jbottomley@parallels.com; hch@infradead.org; linux-scsi@vger.kernel.org;
> apw@canonical.com; vkuznets@redhat.com; jasowang@redhat.com;
> martin.petersen@oracle.com
> Subject: Re: [PATCH 2/2] scsi: storvsc: Use the specified target ID in device
> lookup
>
> On 01/09/2016 06:51 AM, K. Y. Srinivasan wrote:
> > The current code assumes that there is only one target in device lookup.
> > Fix this bug. This will alow us to correctly handle hot reomoval of LUNs.
> >
> > Signed-off-by: K. Y. Srinivasan <kys@microsoft.com>
> > ---
> > drivers/scsi/storvsc_drv.c | 6 ++++--
> > 1 files changed, 4 insertions(+), 2 deletions(-)
> >
> > diff --git a/drivers/scsi/storvsc_drv.c b/drivers/scsi/storvsc_drv.c
> > index 622f64a..5faf357 100644
> > --- a/drivers/scsi/storvsc_drv.c
> > +++ b/drivers/scsi/storvsc_drv.c
> > @@ -479,6 +479,7 @@ struct storvsc_scan_work {
> > struct work_struct work;
> > struct Scsi_Host *host;
> > uint lun;
> > + uint tgt_id;
> > };
> >
> > static void storvsc_device_scan(struct work_struct *work)
> > @@ -490,7 +491,7 @@ static void storvsc_device_scan(struct work_struct
> *work)
> > wrk = container_of(work, struct storvsc_scan_work, work);
> > lun = wrk->lun;
> >
> > - sdev = scsi_device_lookup(wrk->host, 0, 0, lun);
> > + sdev = scsi_device_lookup(wrk->host, 0, wrk->tgt_id, lun);
> > if (!sdev)
> > goto done;
> > scsi_rescan_device(&sdev->sdev_gendev);
> > @@ -541,7 +542,7 @@ static void storvsc_remove_lun(struct work_struct
> *work)
> > if (!scsi_host_get(wrk->host))
> > goto done;
> >
> > - sdev = scsi_device_lookup(wrk->host, 0, 0, wrk->lun);
> > + sdev = scsi_device_lookup(wrk->host, 0, wrk->tgt_id, wrk->lun);
> >
> > if (sdev) {
> > scsi_remove_device(sdev);
> > @@ -941,6 +942,7 @@ static void storvsc_handle_error(struct
> vmscsi_request *vm_srb,
> >
> > wrk->host = host;
> > wrk->lun = vm_srb->lun;
> > + wrk->tgt_id = vm_srb->target_id;
> > INIT_WORK(&wrk->work, process_err_fn);
> > schedule_work(&wrk->work);
> > }
> >
> As a side note, are these really 32-bit values?
> Both the LUN and the target?
No, these are 8 bit values as communicated in the vmscsi_request.
Regards,
K. Y
>
> Cheers,
>
> Hannes
> --
> Dr. Hannes Reinecke zSeries & Storage
> hare@suse.de +49 911 74053 688
> SUSE LINUX GmbH, Maxfeldstr. 5, 90409 Nürnberg
> GF: F. Imendörffer, J. Smithard, J. Guild, D. Upmanyu, G. Norton
> HRB 21284 (AG Nürnberg)
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2016-01-12 1:04 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-01-09 5:51 [PATCH 0/2] scsi: storvsc: Miscellaneous fixes K. Y. Srinivasan
2016-01-09 5:51 ` [PATCH 1/2] scsi: storvsc: Install the storvsc specific timeout handler for FC devices K. Y. Srinivasan
2016-01-09 5:51 ` [PATCH 2/2] scsi: storvsc: Use the specified target ID in device lookup K. Y. Srinivasan
2016-01-11 7:09 ` Hannes Reinecke
2016-01-12 1:04 ` KY Srinivasan
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).