Hi Christoph, On Fri, Apr 25, 2014 at 03:12:19PM +0200, Christoph Hellwig wrote: > > Looks useful, but why do we have basically two copies of the same > code for different commands? Looking at them in detail they mostly look > like copies of scsi_execute/scsi_execute_req_flags and should be switched > to that. I've tried to write a patch but unfortunately there are some problems with that. For example, look at the submit_rtpg() function: If the blk_execute_rq() function returns an error, the h->sense buffer is updated. rq->sense = h->sense; <--------- memset(rq->sense, 0, SCSI_SENSE_BUFFERSIZE); rq->sense_len = h->senselen = 0; err = blk_execute_rq(rq->q, NULL, rq, 1); if (err == -EIO) { sdev_printk(KERN_INFO, sdev, "%s: rtpg failed with %x\n", ALUA_DH_NAME, rq->errors); h->senselen = rq->sense_len; <-------- err = SCSI_DH_IO; } If I convert submit_rtpg() to make use of scsi_execute() then I'll not be able to read the updated sense buffer. scsi_execute() accepts a pointer to the sense buffer as parameter, but it does not update its content in case blk_execute_rq() returns an error. Maurizio Lombardi -- 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