tcm_fc: Generate TASK_SET_FULL status for DataIN failures
authorNicholas Bellinger <nab@linux-iscsi.org>
Thu, 5 Jun 2014 23:27:53 +0000 (16:27 -0700)
committerNicholas Bellinger <nab@linux-iscsi.org>
Fri, 6 Jun 2014 21:20:23 +0000 (14:20 -0700)
commitb3e5fe1688b998ba5287a68667ef7cc568739e44
tree5d7a9999d5cfc92ff4cd4ccc50d1ebea95f41334
parent1d2b60a5545942b1376cb48c1d55843d71e3a08f
tcm_fc: Generate TASK_SET_FULL status for DataIN failures

This patch changes ft_queue_data_in() to set SAM_STAT_TASK_SET_FULL
status upon a lport->tt.seq_send() failure, where it will now stop
sending subsequent DataIN, and immediately attempt to send the
response with exception status.

Sending a response with SAM_STAT_TASK_SET_FULL status is useful in
order to signal the initiator that it should try to reduce it's
current queue_depth, to lower the number of outstanding I/Os on
the wire.

Also, add a check to skip sending DataIN if TASK_SET_FULL status
has already been set due to a response lport->tt.seq_send()
failure, that has asked target-core to requeue a response.

Reported-by: Vasu Dev <vasu.dev@linux.intel.com>
Reviewed-by: Vasu Dev <vasu.dev@linux.intel.com>
Cc: Jun Wu <jwu@stormojo.com>
Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
drivers/target/tcm_fc/tfc_io.c