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@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html -- dm-devel mailing list dm-devel@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/dm-devel