mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-30 07:34:12 +08:00
scsi: target/core: Add target_send_busy()
Introduce a function that sends the SCSI status "BUSY" back to the initiator. The next patch will add a call to this function in the srpt target driver. Reviewed-by: Hannes Reinecke <hare@suse.com> Cc: Nicholas Bellinger <nab@linux-iscsi.org> Cc: Mike Christie <mchristi@redhat.com> Cc: Christoph Hellwig <hch@lst.de> Signed-off-by: Bart Van Assche <bvanassche@acm.org> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
This commit is contained in:
parent
83f85b8ec3
commit
94ebb47160
@ -3246,6 +3246,22 @@ transport_send_check_condition_and_sense(struct se_cmd *cmd,
|
||||
}
|
||||
EXPORT_SYMBOL(transport_send_check_condition_and_sense);
|
||||
|
||||
/**
|
||||
* target_send_busy - Send SCSI BUSY status back to the initiator
|
||||
* @cmd: SCSI command for which to send a BUSY reply.
|
||||
*
|
||||
* Note: Only call this function if target_submit_cmd*() failed.
|
||||
*/
|
||||
int target_send_busy(struct se_cmd *cmd)
|
||||
{
|
||||
WARN_ON_ONCE(cmd->se_cmd_flags & SCF_SCSI_TMR_CDB);
|
||||
|
||||
cmd->scsi_status = SAM_STAT_BUSY;
|
||||
trace_target_cmd_complete(cmd);
|
||||
return cmd->se_tfo->queue_status(cmd);
|
||||
}
|
||||
EXPORT_SYMBOL(target_send_busy);
|
||||
|
||||
static void target_tmr_work(struct work_struct *work)
|
||||
{
|
||||
struct se_cmd *cmd = container_of(work, struct se_cmd, work);
|
||||
|
@ -173,6 +173,7 @@ int transport_generic_free_cmd(struct se_cmd *, int);
|
||||
bool transport_wait_for_tasks(struct se_cmd *);
|
||||
int transport_send_check_condition_and_sense(struct se_cmd *,
|
||||
sense_reason_t, int);
|
||||
int target_send_busy(struct se_cmd *cmd);
|
||||
int target_get_sess_cmd(struct se_cmd *, bool);
|
||||
int target_put_sess_cmd(struct se_cmd *);
|
||||
void target_sess_cmd_list_set_waiting(struct se_session *);
|
||||
|
Loading…
Reference in New Issue
Block a user