On Wed, Nov 07 2007 at 20:06 +0200, Tony Battersby <tonyb@xxxxxxxxxxxxxxx> 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 <tonyb@xxxxxxxxxxxxxxx> > --- > --- linux-2.6.24-rc2/drivers/scsi/libiscsi.c.orig 2007-11-07 12:52:20.000000000 -0500 > +++ linux-2.6.24-rc2/drivers/scsi/libiscsi.c 2007-11-07 12:52:27.000000000 -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 majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html