[dm-devel] Re: [PATCH 0/3] scsi_dh: Add ability to set parameters for scsi device handler

Eddie Williams Eddie.Williams at steeleye.com
Mon Jul 20 13:05:19 UTC 2009


Your patch set works well but the scsi_dh_emc.c in rc1 does not.  I
applied your patches to the SLES 11 (2.6.27.23) and I am able to set the
parameter with reservations being handled correctly.  As noted in an
earlier email when I tested the 2.6.31-rc1 kernel with and without your
patches I would see a panic.  I compared the scsi_dh_emc.c in rc1 with
SLES 11.  There are a couple of differences.  The panic is resolved with
the changes from SLES 11.  I am not sure if these are changes made to
SLES 11 and not made to the upstream kernel or whether there was a patch
to the upstream kernel after 2.6.27 that broke this.  Here are the
changes when applied to rc1 that resolves the panic and allowed me to
test your patches.

*** linux-2.6.31-rc1/drivers/scsi/device_handler/scsi_dh_emc.c
2009-07-20 08:37:14.000000000 -0400
--- linux-2.6.31-rc1.0.3/drivers/scsi/device_handler/scsi_dh_emc.c
2009-07-20 08:42:36.000000000 -0400
***************
*** 176,182 ****
  		err = SCSI_DH_DEV_TEMP_BUSY;
  		goto out;
  	}
! 	if (csdev->buffer[4] > 2) {
  		/* Invalid buffer format */
  		sdev_printk(KERN_NOTICE, sdev,
  			    "%s: invalid VPD page 0xC0 format\n",
--- 176,182 ----
  		err = SCSI_DH_DEV_TEMP_BUSY;
  		goto out;
  	}
! 	if (csdev->buffer[4] < 0 || csdev->buffer[4] > 2) {
  		/* Invalid buffer format */
  		sdev_printk(KERN_NOTICE, sdev,
  			    "%s: invalid VPD page 0xC0 format\n",
***************
*** 272,278 ****
  	int len = 0;
  
  	rq = blk_get_request(sdev->request_queue,
! 			(cmd == MODE_SELECT) ? WRITE : READ, GFP_NOIO);
  	if (!rq) {
  		sdev_printk(KERN_INFO, sdev, "get_req: blk_get_request failed");
  		return NULL;
--- 272,278 ----
  	int len = 0;
  
  	rq = blk_get_request(sdev->request_queue,
! 			(cmd != INQUIRY) ? WRITE : READ, GFP_NOIO);
  	if (!rq) {
  		sdev_printk(KERN_INFO, sdev, "get_req: blk_get_request failed");
  		return NULL;
***************
*** 286,299 ****
--- 286,302 ----
  		len = sizeof(short_trespass);
  		rq->cmd_flags |= REQ_RW;
  		rq->cmd[1] = 0x10;
+ 		rq->cmd[4] = len;
  		break;
  	case MODE_SELECT_10:
  		len = sizeof(long_trespass);
  		rq->cmd_flags |= REQ_RW;
  		rq->cmd[1] = 0x10;
+ 		rq->cmd[8] = len;
  		break;
  	case INQUIRY:
  		len = CLARIION_BUFFER_SIZE;
+ 		rq->cmd[4] = len;
  		memset(buffer, 0, len);
  		break;
  	default:
***************
*** 301,307 ****
  		break;
  	}
  
- 	rq->cmd[4] = len;
  	rq->cmd_type = REQ_TYPE_BLOCK_PC;
  	rq->cmd_flags |= REQ_FAILFAST_DEV | REQ_FAILFAST_TRANSPORT |
  			 REQ_FAILFAST_DRIVER;
--- 304,309 ----

On Wed, 2009-07-01 at 20:13 -0700, Chandra Seetharaman wrote:
> Hello,
> 
> Last week, Eddie Williams reported a regression w.r.t scsi_dh
> (http://www.redhat.com/archives/dm-devel/2009-June/msg00285.html).
> Parameter setting part of dm multipath handler has been removed
> when we moved to scsi device handler.
> 
> This set of patches adds an new interface to scsi_dh and uses it.
> 
> This patch set applies on 2.6.31-rc1 and the following 2 patches:
> 	(1) http://patchwork.kernel.org/patch/32646/raw/
> 	(2) http://patchwork.kernel.org/patch/32647/raw/
> 
> This interface part of the patch has been tested.
> 
> Eddie,
> 
> If you can test it on an EMC storage and respond with your
> findings it will be of great help.
> 
> Thanks,
> 
> chandra
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
> the body of a message to majordomo at vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html




More information about the dm-devel mailing list