On Tue, 2012-02-14 at 15:30 -0800, Roland Dreier wrote:
> From: Roland Dreier <roland@xxxxxxxxxxxxxxx>
>
> If the target core signals an over- or under-run, tcm_loop should call
> scsi_set_resid() to tell the SCSI midlayer about the residual data length.
>
> The difference can be seen by doing something like
>
> strace -eioctl sg_raw -r 1024 /dev/sda 8 0 0 0 1 0 > /dev/null
>
> and looking at the "resid=" part of the SG_IO ioctl -- after this patch,
> the field is correctly reported as 512.
>
> Signed-off-by: Roland Dreier <roland@xxxxxxxxxxxxxxx>
> ---
> drivers/target/loopback/tcm_loop.c | 6 ++++++
> 1 files changed, 6 insertions(+), 0 deletions(-)
>
> diff --git a/drivers/target/loopback/tcm_loop.c b/drivers/target/loopback/tcm_loop.c
> index 9ff6684..97f51df 100644
> --- a/drivers/target/loopback/tcm_loop.c
> +++ b/drivers/target/loopback/tcm_loop.c
> @@ -830,6 +830,9 @@ static int tcm_loop_queue_data_in(struct se_cmd *se_cmd)
>
> sc->result = SAM_STAT_GOOD;
> set_host_byte(sc, DID_OK);
> + if ((se_cmd->se_cmd_flags & SCF_OVERFLOW_BIT) ||
> + (se_cmd->se_cmd_flags & SCF_UNDERFLOW_BIT))
> + scsi_set_resid(sc, se_cmd->residual_count);
> sc->scsi_done(sc);
> return 0;
> }
> @@ -855,6 +858,9 @@ static int tcm_loop_queue_status(struct se_cmd *se_cmd)
> sc->result = se_cmd->scsi_status;
>
> set_host_byte(sc, DID_OK);
> + if ((se_cmd->se_cmd_flags & SCF_OVERFLOW_BIT) ||
> + (se_cmd->se_cmd_flags & SCF_UNDERFLOW_BIT))
> + scsi_set_resid(sc, se_cmd->residual_count);
> sc->scsi_done(sc);
> return 0;
> }
Applied to lio-core, and will get this queued for a 3.3-rc-fixes pull
request.
Thanks Roland!
--nab
--
To unsubscribe from this list: send the line "unsubscribe target-devel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
[Linux SCSI]
[Kernel Newbies]
[Linux SCSI Target Infrastructure]
[Share Photos]
[IDE]
[Security]
[Git]
[Netfilter]
[Bugtraq]
[Photos]
[Yosemite]
[Yosemite News]
[MIPS Linux]
[ARM Linux]
[Linux Security]
[Linux RAID]
[Linux ATA RAID]
[Linux IIO]
[Samba]
[Video 4 Linux]
[Device Mapper]
[Linux Resources]