* [PATCH 1/5] [SCSI] scsi_dh_alua: fix submit_stpg return
2011-01-05 21:00 [PATCH 0/5] [SCSI] scsi_dh_alua: fixes and new dev support Mike Snitzer
@ 2011-01-05 21:00 ` Mike Snitzer
2011-01-05 21:00 ` [PATCH 2/5] [SCSI] scsi_dh_alua: fix deadlock in stpg_endio Mike Snitzer
` (5 subsequent siblings)
6 siblings, 0 replies; 8+ messages in thread
From: Mike Snitzer @ 2011-01-05 21:00 UTC (permalink / raw)
To: James Bottomley; +Cc: linux-scsi, Joseph Gruher, Ilgu Hong, Mike Snitzer
From: Joseph Gruher <joseph.r.gruher@intel.com>
submit_stpg() will always return failure so alua_activate() will report
failure via dm-multipath callback function. Even though the stpg fired
successfuly dm-multipath does not know and always fails to change the
valid path.
By returning SCSI_DH_OK we're now skipping alua_activate()'s call to
activate_complete 'fn'. But this is fine because stpg_endio() will call
it via h->callback_fn().
Signed-off-by: Joseph Gruher <joseph.r.gruher@intel.com>
Signed-off-by: Ilgu Hong <ilgu.hong@promise.com>
Signed-off-by: Mike Snitzer <snitzer@redhat.com>
---
drivers/scsi/device_handler/scsi_dh_alua.c | 3 +--
1 files changed, 1 insertions(+), 2 deletions(-)
diff --git a/drivers/scsi/device_handler/scsi_dh_alua.c b/drivers/scsi/device_handler/scsi_dh_alua.c
index 6b72932..afb1d05 100644
--- a/drivers/scsi/device_handler/scsi_dh_alua.c
+++ b/drivers/scsi/device_handler/scsi_dh_alua.c
@@ -303,7 +303,6 @@ done:
static unsigned submit_stpg(struct alua_dh_data *h)
{
struct request *rq;
- int err = SCSI_DH_RES_TEMP_UNAVAIL;
int stpg_len = 8;
struct scsi_device *sdev = h->sdev;
@@ -332,7 +331,7 @@ static unsigned submit_stpg(struct alua_dh_data *h)
rq->end_io_data = h;
blk_execute_rq_nowait(rq->q, NULL, rq, 1, stpg_endio);
- return err;
+ return SCSI_DH_OK;
}
/*
--
1.7.3.4
^ permalink raw reply related [flat|nested] 8+ messages in thread* [PATCH 2/5] [SCSI] scsi_dh_alua: fix deadlock in stpg_endio
2011-01-05 21:00 [PATCH 0/5] [SCSI] scsi_dh_alua: fixes and new dev support Mike Snitzer
2011-01-05 21:00 ` [PATCH 1/5] [SCSI] scsi_dh_alua: fix submit_stpg return Mike Snitzer
@ 2011-01-05 21:00 ` Mike Snitzer
2011-01-05 21:00 ` [PATCH 3/5] [SCSI] scsi_dh_alua: fix stpg_endio group state reporting Mike Snitzer
` (4 subsequent siblings)
6 siblings, 0 replies; 8+ messages in thread
From: Mike Snitzer @ 2011-01-05 21:00 UTC (permalink / raw)
To: James Bottomley
Cc: Joseph Gruher, Mike Snitzer, Ilgu Hong, linux-scsi, stable
From: Joseph Gruher <joseph.r.gruher@intel.com>
The use of blk_execute_rq_nowait() implies __blk_put_request() is needed
in stpg_endio() rather than blk_put_request() -- blk_finish_request() is
called with queue lock already held.
Signed-off-by: Joseph Gruher <joseph.r.gruher@intel.com>
Signed-off-by: Ilgu Hong <ilgu.hong@promise.com>
Signed-off-by: Mike Snitzer <snitzer@redhat.com>
Cc: stable@kernel.org
---
drivers/scsi/device_handler/scsi_dh_alua.c | 3 ++-
1 files changed, 2 insertions(+), 1 deletions(-)
diff --git a/drivers/scsi/device_handler/scsi_dh_alua.c b/drivers/scsi/device_handler/scsi_dh_alua.c
index afb1d05..ba3c649 100644
--- a/drivers/scsi/device_handler/scsi_dh_alua.c
+++ b/drivers/scsi/device_handler/scsi_dh_alua.c
@@ -285,7 +285,8 @@ static void stpg_endio(struct request *req, int error)
print_alua_state(h->state));
}
done:
- blk_put_request(req);
+ req->end_io_data = NULL;
+ __blk_put_request(req->q, req);
if (h->callback_fn) {
h->callback_fn(h->callback_data, err);
h->callback_fn = h->callback_data = NULL;
--
1.7.3.4
^ permalink raw reply related [flat|nested] 8+ messages in thread* [PATCH 3/5] [SCSI] scsi_dh_alua: fix stpg_endio group state reporting
2011-01-05 21:00 [PATCH 0/5] [SCSI] scsi_dh_alua: fixes and new dev support Mike Snitzer
2011-01-05 21:00 ` [PATCH 1/5] [SCSI] scsi_dh_alua: fix submit_stpg return Mike Snitzer
2011-01-05 21:00 ` [PATCH 2/5] [SCSI] scsi_dh_alua: fix deadlock in stpg_endio Mike Snitzer
@ 2011-01-05 21:00 ` Mike Snitzer
2011-01-05 21:00 ` [PATCH 4/5] [SCSI] scsi_dh_alua: Add Promise VTrak to dev list Mike Snitzer
` (3 subsequent siblings)
6 siblings, 0 replies; 8+ messages in thread
From: Mike Snitzer @ 2011-01-05 21:00 UTC (permalink / raw)
To: James Bottomley; +Cc: linux-scsi, Joseph Gruher, Ilgu Hong, Mike Snitzer
From: Joseph Gruher <joseph.r.gruher@intel.com>
Initialize stpg_endio() 'err' to SCSI_DH_OK and only change it to
SCSI_DH_IO accordingly. This allows the switching of target group state
to be properly reported when no error has occurred.
Signed-off-by: Joseph Gruher <joseph.r.gruher@intel.com>
Signed-off-by: Ilgu Hong <ilgu.hong@promise.com>
Signed-off-by: Mike Snitzer <snitzer@redhat.com>
---
drivers/scsi/device_handler/scsi_dh_alua.c | 8 +++++---
1 files changed, 5 insertions(+), 3 deletions(-)
diff --git a/drivers/scsi/device_handler/scsi_dh_alua.c b/drivers/scsi/device_handler/scsi_dh_alua.c
index ba3c649..9bd2c8a 100644
--- a/drivers/scsi/device_handler/scsi_dh_alua.c
+++ b/drivers/scsi/device_handler/scsi_dh_alua.c
@@ -253,13 +253,15 @@ static void stpg_endio(struct request *req, int error)
{
struct alua_dh_data *h = req->end_io_data;
struct scsi_sense_hdr sense_hdr;
- unsigned err = SCSI_DH_IO;
+ unsigned err = SCSI_DH_OK;
if (error || host_byte(req->errors) != DID_OK ||
- msg_byte(req->errors) != COMMAND_COMPLETE)
+ msg_byte(req->errors) != COMMAND_COMPLETE) {
+ err = SCSI_DH_IO;
goto done;
+ }
- if (err == SCSI_DH_IO && h->senselen > 0) {
+ if (h->senselen > 0) {
err = scsi_normalize_sense(h->sense, SCSI_SENSE_BUFFERSIZE,
&sense_hdr);
if (!err) {
--
1.7.3.4
^ permalink raw reply related [flat|nested] 8+ messages in thread* [PATCH 4/5] [SCSI] scsi_dh_alua: Add Promise VTrak to dev list
2011-01-05 21:00 [PATCH 0/5] [SCSI] scsi_dh_alua: fixes and new dev support Mike Snitzer
` (2 preceding siblings ...)
2011-01-05 21:00 ` [PATCH 3/5] [SCSI] scsi_dh_alua: fix stpg_endio group state reporting Mike Snitzer
@ 2011-01-05 21:00 ` Mike Snitzer
2011-01-05 21:00 ` [PATCH 5/5] [SCSI] scsi_dh_alua: add scalable ONTAP lun " Mike Snitzer
` (2 subsequent siblings)
6 siblings, 0 replies; 8+ messages in thread
From: Mike Snitzer @ 2011-01-05 21:00 UTC (permalink / raw)
To: James Bottomley; +Cc: linux-scsi, Ilgu Hong, Joseph Gruher, Mike Snitzer
From: Ilgu Hong <ilgu.hong@promise.com>
Adds Promise VTrak devices to the ALUA device handler.
Signed-off-by: Ilgu Hong <ilgu.hong@promise.com>
Signed-off-by: Joseph Gruher <joseph.r.gruher@intel.com>
Signed-off-by: Mike Snitzer <snitzer@redhat.com>
---
drivers/scsi/device_handler/scsi_dh_alua.c | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
diff --git a/drivers/scsi/device_handler/scsi_dh_alua.c b/drivers/scsi/device_handler/scsi_dh_alua.c
index 9bd2c8a..c1fd09d 100644
--- a/drivers/scsi/device_handler/scsi_dh_alua.c
+++ b/drivers/scsi/device_handler/scsi_dh_alua.c
@@ -733,6 +733,7 @@ static const struct scsi_dh_devlist alua_dev_list[] = {
{"Intel", "Multi-Flex"},
{"NETAPP", "LUN"},
{"AIX", "NVDISK"},
+ {"Promise", "VTrak"},
{NULL, NULL}
};
--
1.7.3.4
^ permalink raw reply related [flat|nested] 8+ messages in thread* [PATCH 5/5] [SCSI] scsi_dh_alua: add scalable ONTAP lun to dev list
2011-01-05 21:00 [PATCH 0/5] [SCSI] scsi_dh_alua: fixes and new dev support Mike Snitzer
` (3 preceding siblings ...)
2011-01-05 21:00 ` [PATCH 4/5] [SCSI] scsi_dh_alua: Add Promise VTrak to dev list Mike Snitzer
@ 2011-01-05 21:00 ` Mike Snitzer
2011-01-05 21:15 ` [PATCH 0/5] [SCSI] scsi_dh_alua: fixes and new dev support Mike Snitzer
2011-01-06 0:37 ` Nicholas A. Bellinger
6 siblings, 0 replies; 8+ messages in thread
From: Mike Snitzer @ 2011-01-05 21:00 UTC (permalink / raw)
To: James Bottomley; +Cc: linux-scsi, Mike Snitzer, Martin George, Mike Christie
Currently NetApp's VID/PID details in the INQUIRY response shows up as
'NETAPP' and 'LUN'. With upcoming scalable SAN ONTAP version on NetApp
controllers, the PID entry alone is being modified to 'LUN C-Mode' (to
distinguish current ONTAP LUNs from scalable ONTAP LUNs).
'LUN' would still suffice for matching 'LUN C-Mode' but best to
explicitly add these new NetApp LUNs to the device list.
Reported-by: Martin George <marting@netapp.com>
Acked-by: Mike Christie <michaelc@cs.wisc.edu>
Signed-off-by: Mike Snitzer <snitzer@redhat.com>
---
drivers/scsi/device_handler/scsi_dh_alua.c | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
diff --git a/drivers/scsi/device_handler/scsi_dh_alua.c b/drivers/scsi/device_handler/scsi_dh_alua.c
index c1fd09d..5b6f9ab 100644
--- a/drivers/scsi/device_handler/scsi_dh_alua.c
+++ b/drivers/scsi/device_handler/scsi_dh_alua.c
@@ -732,6 +732,7 @@ static const struct scsi_dh_devlist alua_dev_list[] = {
{"Pillar", "Axiom" },
{"Intel", "Multi-Flex"},
{"NETAPP", "LUN"},
+ {"NETAPP", "LUN C-Mode"},
{"AIX", "NVDISK"},
{"Promise", "VTrak"},
{NULL, NULL}
--
1.7.3.4
^ permalink raw reply related [flat|nested] 8+ messages in thread* Re: [PATCH 0/5] [SCSI] scsi_dh_alua: fixes and new dev support
2011-01-05 21:00 [PATCH 0/5] [SCSI] scsi_dh_alua: fixes and new dev support Mike Snitzer
` (4 preceding siblings ...)
2011-01-05 21:00 ` [PATCH 5/5] [SCSI] scsi_dh_alua: add scalable ONTAP lun " Mike Snitzer
@ 2011-01-05 21:15 ` Mike Snitzer
2011-01-06 0:37 ` Nicholas A. Bellinger
6 siblings, 0 replies; 8+ messages in thread
From: Mike Snitzer @ 2011-01-05 21:15 UTC (permalink / raw)
To: James Bottomley; +Cc: linux-scsi
On Wed, Jan 05 2011 at 4:00pm -0500,
Mike Snitzer <snitzer@redhat.com> wrote:
> James,
>
> I'm sheparding these fixes and new dev support ...
shepherding even ;)
> Please review and queue for 2.6.39 if you're OK
> with the changes.
And I meant 2.6.38..
Mike
^ permalink raw reply [flat|nested] 8+ messages in thread* Re: [PATCH 0/5] [SCSI] scsi_dh_alua: fixes and new dev support
2011-01-05 21:00 [PATCH 0/5] [SCSI] scsi_dh_alua: fixes and new dev support Mike Snitzer
` (5 preceding siblings ...)
2011-01-05 21:15 ` [PATCH 0/5] [SCSI] scsi_dh_alua: fixes and new dev support Mike Snitzer
@ 2011-01-06 0:37 ` Nicholas A. Bellinger
6 siblings, 0 replies; 8+ messages in thread
From: Nicholas A. Bellinger @ 2011-01-06 0:37 UTC (permalink / raw)
To: Mike Snitzer; +Cc: James Bottomley, linux-scsi, Mike Christie
On Wed, 2011-01-05 at 16:00 -0500, Mike Snitzer wrote:
> James,
>
> I'm sheparding these fixes and new dev support on behalf of Intel,
> Promise and NetApp. Please review and queue for 2.6.39 if you're OK
> with the changes.
>
> Thanks,
> Mike
>
> Ilgu Hong (1):
> scsi_dh_alua: Add Promise VTrak to dev list
>
> Joseph Gruher (3):
> scsi_dh_alua: fix submit_stpg return
> scsi_dh_alua: fix deadlock in stpg_endio
> scsi_dh_alua: fix stpg_endio group state reporting
>
> Mike Snitzer (1):
> scsi_dh_alua: add scalable ONTAP lun to dev list
>
> drivers/scsi/device_handler/scsi_dh_alua.c | 16 ++++++++++------
> 1 files changed, 10 insertions(+), 6 deletions(-)
>
Hi Mike and James,
Would you mind including the following patch to add support for the
target virtual backends drivers that natively support explict/implict
ALUA to save the extra explict multipath configuration..?
Thanks,
Signed-off-by: Nicholas A. Bellinger <nab@linux-iscsi.org>
diff --git a/drivers/scsi/device_handler/scsi_dh_alua.c b/drivers/scsi/device_handler/scsi_dh_alua.c
index 6b72932..dbf6c1a 100644
--- a/drivers/scsi/device_handler/scsi_dh_alua.c
+++ b/drivers/scsi/device_handler/scsi_dh_alua.c
@@ -731,6 +731,10 @@ static const struct scsi_dh_devlist alua_dev_list[] = {
{"Intel", "Multi-Flex"},
{"NETAPP", "LUN"},
{"AIX", "NVDISK"},
+ {"LIO-ORG", "IBLOCK"},
+ {"LIO-ORG", "FILEIO"},
+ {"LIO-ORG", "RAMDISK-MCP"},
+ {"LIO-ORG", "RAMDISK-DR"},
{NULL, NULL}
};
^ permalink raw reply related [flat|nested] 8+ messages in thread