[PATCH] [SCSI] iscsi: return data transfer residual for data-out commands
Currently, the iSCSI driver returns the data transfer residual for data-in commands (e.g. read) but not data-out commands (e.g. write). This patch makes it return the data transfer residual for both types of commands. Signed-off-by: Tony Battersby [EMAIL PROTECTED] --- --- linux-2.6.24-rc2/drivers/scsi/libiscsi.c.orig 2007-11-07 12:52:20.0 -0500 +++ linux-2.6.24-rc2/drivers/scsi/libiscsi.c2007-11-07 12:52:27.0 -0500 @@ -291,9 +291,6 @@ invalid_datalen: min_t(uint16_t, senselen, SCSI_SENSE_BUFFERSIZE)); } - if (sc-sc_data_direction == DMA_TO_DEVICE) - goto out; - if (rhdr-flags ISCSI_FLAG_CMD_UNDERFLOW) { int res_count = be32_to_cpu(rhdr-residual_count); - To unsubscribe from this list: send the line unsubscribe linux-scsi in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH] [SCSI] iscsi: return data transfer residual for data-out commands
On Wed, Nov 07 2007 at 20:06 +0200, Tony Battersby [EMAIL PROTECTED] wrote: Currently, the iSCSI driver returns the data transfer residual for data-in commands (e.g. read) but not data-out commands (e.g. write). This patch makes it return the data transfer residual for both types of commands. All types of commands, also good for BIDI ;) Signed-off-by: Tony Battersby [EMAIL PROTECTED] --- --- linux-2.6.24-rc2/drivers/scsi/libiscsi.c.orig 2007-11-07 12:52:20.0 -0500 +++ linux-2.6.24-rc2/drivers/scsi/libiscsi.c 2007-11-07 12:52:27.0 -0500 @@ -291,9 +291,6 @@ invalid_datalen: min_t(uint16_t, senselen, SCSI_SENSE_BUFFERSIZE)); } - if (sc-sc_data_direction == DMA_TO_DEVICE) - goto out; - if (rhdr-flags ISCSI_FLAG_CMD_UNDERFLOW) { int res_count = be32_to_cpu(rhdr-residual_count); Thanks, this looks right to me. (And good catch) I have went through the code and it looks like the right thing to do. svn blame annotates this code to the patch (r527) that libiscsi was cut out of iscsi_tcp so perhaps then it made sense, but does not anymore. It is also needed for the bidi patches, as currently bidi commands have a sc_data_direction == DMA_TO_DEVICE. Pleas accept this patch Boaz - To unsubscribe from this list: send the line unsubscribe linux-scsi in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH] [SCSI] iscsi: return data transfer residual for data-out commands
Boaz Harrosh wrote: On Wed, Nov 07 2007 at 20:06 +0200, Tony Battersby [EMAIL PROTECTED] wrote: Currently, the iSCSI driver returns the data transfer residual for data-in commands (e.g. read) but not data-out commands (e.g. write). This patch makes it return the data transfer residual for both types of commands. All types of commands, also good for BIDI ;) Signed-off-by: Tony Battersby [EMAIL PROTECTED] --- --- linux-2.6.24-rc2/drivers/scsi/libiscsi.c.orig 2007-11-07 12:52:20.0 -0500 +++ linux-2.6.24-rc2/drivers/scsi/libiscsi.c2007-11-07 12:52:27.0 -0500 @@ -291,9 +291,6 @@ invalid_datalen: min_t(uint16_t, senselen, SCSI_SENSE_BUFFERSIZE)); } - if (sc-sc_data_direction == DMA_TO_DEVICE) - goto out; - if (rhdr-flags ISCSI_FLAG_CMD_UNDERFLOW) { int res_count = be32_to_cpu(rhdr-residual_count); Thanks, this looks right to me. (And good catch) I have went through the code and it looks like the right thing to do. svn blame annotates this code to the patch (r527) that libiscsi was cut out of iscsi_tcp so perhaps then it made sense Actually I think we always had it in one way or another. Maybe because of the code moves svn blame goofed. I think it was originally done because we probably thought we could not get underflow or overflow on a write. I do not know for sure though, but it may have been a workaround for some old firmware on another target that was fixed a long time ago. The patch looks ok. Thanks. James please apply with his other patch http://marc.info/?l=linux-scsim=119334187619290w=2 for scsi-rc-fixes when you get a chance. Thanks. Signed-off-by: Mike Christie [EMAIL PROTECTED] - To unsubscribe from this list: send the line unsubscribe linux-scsi in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html