target: add helper to copy sense to se_cmd buffer
This adds a helper to copy sense from backend module buffer to the se_cmd's sense buffer. Signed-off-by: Mike Christie <mchristi@redhat.com> Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
This commit is contained in:
parent
9fe3698450
commit
c6d66aba98
@ -704,6 +704,24 @@ static unsigned char *transport_get_sense_buffer(struct se_cmd *cmd)
|
||||
return cmd->sense_buffer;
|
||||
}
|
||||
|
||||
void transport_copy_sense_to_cmd(struct se_cmd *cmd, unsigned char *sense)
|
||||
{
|
||||
unsigned char *cmd_sense_buf;
|
||||
unsigned long flags;
|
||||
|
||||
spin_lock_irqsave(&cmd->t_state_lock, flags);
|
||||
cmd_sense_buf = transport_get_sense_buffer(cmd);
|
||||
if (!cmd_sense_buf) {
|
||||
spin_unlock_irqrestore(&cmd->t_state_lock, flags);
|
||||
return;
|
||||
}
|
||||
|
||||
cmd->se_cmd_flags |= SCF_TRANSPORT_TASK_SENSE;
|
||||
memcpy(cmd_sense_buf, sense, cmd->scsi_sense_length);
|
||||
spin_unlock_irqrestore(&cmd->t_state_lock, flags);
|
||||
}
|
||||
EXPORT_SYMBOL(transport_copy_sense_to_cmd);
|
||||
|
||||
void target_complete_cmd(struct se_cmd *cmd, u8 scsi_status)
|
||||
{
|
||||
struct se_device *dev = cmd->se_dev;
|
||||
|
@ -73,6 +73,8 @@ void target_backend_unregister(const struct target_backend_ops *);
|
||||
void target_complete_cmd(struct se_cmd *, u8);
|
||||
void target_complete_cmd_with_length(struct se_cmd *, u8, int);
|
||||
|
||||
void transport_copy_sense_to_cmd(struct se_cmd *, unsigned char *);
|
||||
|
||||
sense_reason_t spc_parse_cdb(struct se_cmd *cmd, unsigned int *size);
|
||||
sense_reason_t spc_emulate_report_luns(struct se_cmd *cmd);
|
||||
sense_reason_t spc_emulate_inquiry_std(struct se_cmd *, unsigned char *);
|
||||
|
Loading…
Reference in New Issue
Block a user