public inbox for linux-scsi@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] scsi_dh_alua: do not fail for unknown VPD identification
@ 2016-05-06  8:34 Hannes Reinecke
  2016-05-09  3:34 ` Paul Mackerras
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: Hannes Reinecke @ 2016-05-06  8:34 UTC (permalink / raw)
  To: Martin K. Petersen
  Cc: Christoph Hellwig, Paul Mackerras, linux-scsi, Hannes Reinecke,
	Hannes Reinecke

Not every device will return a useable VPD identification, but
still might support ALUA. Rather then disable ALUA support we
should be allowing the device identification to be empty and
attach individual ALUA device handler to each devices.

Reported-by: Paul Mackerras <paulus@ozlabs.org>
Signed-off-by: Hannes Reinecke <hare@suse.com>
---
 drivers/scsi/device_handler/scsi_dh_alua.c | 25 +++++++++++++++++--------
 1 file changed, 17 insertions(+), 8 deletions(-)

diff --git a/drivers/scsi/device_handler/scsi_dh_alua.c b/drivers/scsi/device_handler/scsi_dh_alua.c
index ab666a1..eddc200 100644
--- a/drivers/scsi/device_handler/scsi_dh_alua.c
+++ b/drivers/scsi/device_handler/scsi_dh_alua.c
@@ -195,10 +195,13 @@ static struct alua_port_group *alua_find_get_pg(char *id_str, size_t id_size,
 {
 	struct alua_port_group *pg;
 
+	if (!id_str || !id_size || !strlen(id_str))
+		return NULL;
+
 	list_for_each_entry(pg, &port_group_list, node) {
 		if (pg->group_id != group_id)
 			continue;
-		if (pg->device_id_len != id_size)
+		if (!pg->device_id_len || pg->device_id_len != id_size)
 			continue;
 		if (strncmp(pg->device_id_str, id_str, id_size))
 			continue;
@@ -232,14 +235,14 @@ static struct alua_port_group *alua_alloc_pg(struct scsi_device *sdev,
 					    sizeof(pg->device_id_str));
 	if (pg->device_id_len <= 0) {
 		/*
-		 * Internal error: TPGS supported but no device
-		 * identifcation found. Disable ALUA support.
+		 * TPGS supported but no device identifcation found.
+		 * Generate private device identification.
 		 */
-		kfree(pg);
 		sdev_printk(KERN_INFO, sdev,
 			    "%s: No device descriptors found\n",
 			    ALUA_DH_NAME);
-		return ERR_PTR(-ENXIO);
+		pg->device_id_str[0] = '\0';
+		pg->device_id_len = 0;
 	}
 	pg->group_id = group_id;
 	pg->tpgs = tpgs;
@@ -354,9 +357,15 @@ static int alua_check_vpd(struct scsi_device *sdev, struct alua_dh_data *h,
 			return SCSI_DH_NOMEM;
 		return SCSI_DH_DEV_UNSUPP;
 	}
-	sdev_printk(KERN_INFO, sdev,
-		    "%s: device %s port group %x rel port %x\n",
-		    ALUA_DH_NAME, pg->device_id_str, group_id, rel_port);
+	if (pg->device_id_len)
+		sdev_printk(KERN_INFO, sdev,
+			    "%s: device %s port group %x rel port %x\n",
+			    ALUA_DH_NAME, pg->device_id_str,
+			    group_id, rel_port);
+	else
+		sdev_printk(KERN_INFO, sdev,
+			    "%s: port group %x rel port %x\n",
+			    ALUA_DH_NAME, group_id, rel_port);
 
 	/* Check for existing port group references */
 	spin_lock(&h->pg_lock);
-- 
1.8.5.6


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH] scsi_dh_alua: do not fail for unknown VPD identification
  2016-05-06  8:34 [PATCH] scsi_dh_alua: do not fail for unknown VPD identification Hannes Reinecke
@ 2016-05-09  3:34 ` Paul Mackerras
  2016-05-10 20:12 ` Bart Van Assche
  2016-05-11  1:31 ` Martin K. Petersen
  2 siblings, 0 replies; 4+ messages in thread
From: Paul Mackerras @ 2016-05-09  3:34 UTC (permalink / raw)
  To: Hannes Reinecke
  Cc: Martin K. Petersen, Christoph Hellwig, linux-scsi,
	Hannes Reinecke

On Fri, May 06, 2016 at 10:34:35AM +0200, Hannes Reinecke wrote:
> Not every device will return a useable VPD identification, but
> still might support ALUA. Rather then disable ALUA support we
> should be allowing the device identification to be empty and
> attach individual ALUA device handler to each devices.
> 
> Reported-by: Paul Mackerras <paulus@ozlabs.org>
> Signed-off-by: Hannes Reinecke <hare@suse.com>

Tested-by: Paul Mackerras <paulus@ozlabs.org>

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] scsi_dh_alua: do not fail for unknown VPD identification
  2016-05-06  8:34 [PATCH] scsi_dh_alua: do not fail for unknown VPD identification Hannes Reinecke
  2016-05-09  3:34 ` Paul Mackerras
@ 2016-05-10 20:12 ` Bart Van Assche
  2016-05-11  1:31 ` Martin K. Petersen
  2 siblings, 0 replies; 4+ messages in thread
From: Bart Van Assche @ 2016-05-10 20:12 UTC (permalink / raw)
  To: Hannes Reinecke, Martin K. Petersen
  Cc: Christoph Hellwig, Paul Mackerras, linux-scsi, Hannes Reinecke

On 05/06/2016 01:34 AM, Hannes Reinecke wrote:
> Not every device will return a useable VPD identification, but
> still might support ALUA. Rather then disable ALUA support we
> should be allowing the device identification to be empty and
> attach individual ALUA device handler to each devices.
>
> Reported-by: Paul Mackerras <paulus@ozlabs.org>
> Signed-off-by: Hannes Reinecke <hare@suse.com>

If you have to repost this please fix the spelling of "identifcation". 
Anyway:

Reviewed-by: Bart Van Assche <bart.vanassche@sandisk.com>

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] scsi_dh_alua: do not fail for unknown VPD identification
  2016-05-06  8:34 [PATCH] scsi_dh_alua: do not fail for unknown VPD identification Hannes Reinecke
  2016-05-09  3:34 ` Paul Mackerras
  2016-05-10 20:12 ` Bart Van Assche
@ 2016-05-11  1:31 ` Martin K. Petersen
  2 siblings, 0 replies; 4+ messages in thread
From: Martin K. Petersen @ 2016-05-11  1:31 UTC (permalink / raw)
  To: Hannes Reinecke
  Cc: Martin K. Petersen, Christoph Hellwig, Paul Mackerras, linux-scsi,
	Hannes Reinecke

>>>>> "Hannes" == Hannes Reinecke <hare@suse.de> writes:

Hannes> Not every device will return a useable VPD identification, but
Hannes> still might support ALUA. Rather then disable ALUA support we
Hannes> should be allowing the device identification to be empty and
Hannes> attach individual ALUA device handler to each devices.

Applied to 4.7/scsi-queue with typo fixes.

-- 
Martin K. Petersen	Oracle Linux Engineering

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2016-05-11  1:33 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-05-06  8:34 [PATCH] scsi_dh_alua: do not fail for unknown VPD identification Hannes Reinecke
2016-05-09  3:34 ` Paul Mackerras
2016-05-10 20:12 ` Bart Van Assche
2016-05-11  1:31 ` Martin K. Petersen

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox