On 6/29/17 02:44, Mike Christie wrote: > On 06/28/2017 12:58 AM, Damien Le Moal wrote: >> If the user request handler completed the request with a CHECK CONDITION >> status, tcmu_handle_completion() copies the command entry sense data >> into the session request structure sense data. However, the sense data >> length indicated by the field scsi_sense_length is not set and equal to >> 0, resulting in the copy being a no-op and failure to propagate the >> sense data back to the initiator. To fix this, properly set the session >> command sense data length and also set the session command >> SCF_TRANSPORT_TASK_SENSE flag to indicate that the command has valid >> sense data. >> >> Signed-off-by: Damien Le Moal <damien.lemoal@xxxxxxx> >> --- >> drivers/target/target_core_user.c | 4 +++- >> 1 file changed, 3 insertions(+), 1 deletion(-) >> >> diff --git a/drivers/target/target_core_user.c b/drivers/target/target_core_user.c >> index beb5f09..7426b4c 100644 >> --- a/drivers/target/target_core_user.c >> +++ b/drivers/target/target_core_user.c >> @@ -831,7 +831,9 @@ static void tcmu_handle_completion(struct tcmu_cmd *cmd, struct tcmu_cmd_entry * >> entry->rsp.scsi_status = SAM_STAT_CHECK_CONDITION; >> } else if (entry->rsp.scsi_status == SAM_STAT_CHECK_CONDITION) { >> memcpy(se_cmd->sense_buffer, entry->rsp.sense_buffer, >> - se_cmd->scsi_sense_length); >> + TRANSPORT_SENSE_BUFFER); >> + se_cmd->scsi_sense_length = TRANSPORT_SENSE_BUFFER; >> + se_cmd->se_cmd_flags |= SCF_TRANSPORT_TASK_SENSE; >> } else if (se_cmd->se_cmd_flags & SCF_BIDI) { >> /* Get Data-In buffer before clean up */ >> gather_data_area(udev, cmd, true); >> > > I have a patch similar to this and 5/5 in my set: > > https://www.spinics.net/lists/target-devel/msg15430.html > > If yours gets merged first then I will build my set over them, so patch > looks ok to me. > > Reviewed-by: Mike Christie <mchristi@xxxxxxxxxx> Mike, Thank you for the review. I checked your series and it looks like it addressing all the sense data handling problems I detected. I will retest with your patch set applied. Thanks ! -- Damien Le Moal, Western Digital