Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1305160 > unrolled thread
| Started by | "K. Y. Srinivasan" <kys@microsoft.com> |
|---|---|
| First post | 2016-01-09 05:20 +0100 |
| Last post | 2016-01-09 05:20 +0100 |
| Articles | 5 — 3 participants |
Back to article view | Back to linux.kernel
[PATCH 0/2] scsi: storvsc: Miscellaneous fixes "K. Y. Srinivasan" <kys@microsoft.com> - 2016-01-09 05:20 +0100
[PATCH 2/2] scsi: storvsc: Use the specified target ID in device lookup "K. Y. Srinivasan" <kys@microsoft.com> - 2016-01-09 05:20 +0100
Re: [PATCH 2/2] scsi: storvsc: Use the specified target ID in device lookup Hannes Reinecke <hare@suse.de> - 2016-01-11 08:20 +0100
RE: [PATCH 2/2] scsi: storvsc: Use the specified target ID in device lookup KY Srinivasan <kys@microsoft.com> - 2016-01-12 02:10 +0100
[PATCH 1/2] scsi: storvsc: Install the storvsc specific timeout handler for FC devices "K. Y. Srinivasan" <kys@microsoft.com> - 2016-01-09 05:20 +0100
| From | "K. Y. Srinivasan" <kys@microsoft.com> |
|---|---|
| Date | 2016-01-09 05:20 +0100 |
| Subject | [PATCH 0/2] scsi: storvsc: Miscellaneous fixes |
| Message-ID | <qOTap-81-3@gated-at.bofh.it> |
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
[toc] | [next] | [standalone]
| From | "K. Y. Srinivasan" <kys@microsoft.com> |
|---|---|
| Date | 2016-01-09 05:20 +0100 |
| Subject | [PATCH 2/2] scsi: storvsc: Use the specified target ID in device lookup |
| Message-ID | <qOTap-81-1@gated-at.bofh.it> |
| In reply to | #1305160 |
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
[toc] | [prev] | [next] | [standalone]
| From | Hannes Reinecke <hare@suse.de> |
|---|---|
| Date | 2016-01-11 08:20 +0100 |
| Subject | Re: [PATCH 2/2] scsi: storvsc: Use the specified target ID in device lookup |
| Message-ID | <qPEVI-7u6-5@gated-at.bofh.it> |
| In reply to | #1305161 |
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)
[toc] | [prev] | [next] | [standalone]
| From | KY Srinivasan <kys@microsoft.com> |
|---|---|
| Date | 2016-01-12 02:10 +0100 |
| Subject | RE: [PATCH 2/2] scsi: storvsc: Use the specified target ID in device lookup |
| Message-ID | <qPVDb-25w-1@gated-at.bofh.it> |
| In reply to | #1305907 |
> -----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)
[toc] | [prev] | [next] | [standalone]
| From | "K. Y. Srinivasan" <kys@microsoft.com> |
|---|---|
| Date | 2016-01-09 05:20 +0100 |
| Subject | [PATCH 1/2] scsi: storvsc: Install the storvsc specific timeout handler for FC devices |
| Message-ID | <qOTap-81-5@gated-at.bofh.it> |
| In reply to | #1305160 |
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
[toc] | [prev] | [standalone]
Back to top | Article view | linux.kernel
csiph-web