diff options
author | Nicholas Bellinger <nab@linux-iscsi.org> | 2016-10-30 17:28:16 -0700 |
---|---|---|
committer | Nicholas Bellinger <nab@linux-iscsi.org> | 2017-03-30 20:34:31 -0700 |
commit | fa7e25cf13a6d0b82b5ed1008246f44d42e8422c (patch) | |
tree | a1a773017aac54049b2fb9319283c149ef7a9b46 /net/rxrpc | |
parent | abe342a5b4b5aa579f6bf40ba73447c699e6b579 (diff) | |
download | linux-fa7e25cf13a6d0b82b5ed1008246f44d42e8422c.tar.bz2 |
target: Fix unknown fabric callback queue-full errors
This patch fixes a set of queue-full response handling
bugs, where outgoing responses are leaked when a fabric
driver is propagating non -EAGAIN or -ENOMEM errors
to target-core.
It introduces TRANSPORT_COMPLETE_QF_ERR state used to
signal when CHECK_CONDITION status should be generated,
when fabric driver ->write_pending(), ->queue_data_in(),
or ->queue_status() callbacks fail with non -EAGAIN or
-ENOMEM errors, and data-transfer should not be retried.
Note all fabric driver -EAGAIN and -ENOMEM errors are
still retried indefinately with associated data-transfer
callbacks, following existing queue-full logic.
Also fix two missing ->queue_status() queue-full cases
related to CMD_T_ABORTED w/ TAS status handling.
Reported-by: Potnuri Bharat Teja <bharat@chelsio.com>
Reviewed-by: Potnuri Bharat Teja <bharat@chelsio.com>
Tested-by: Potnuri Bharat Teja <bharat@chelsio.com>
Cc: Potnuri Bharat Teja <bharat@chelsio.com>
Reported-by: Steve Wise <swise@opengridcomputing.com>
Cc: Steve Wise <swise@opengridcomputing.com>
Cc: Sagi Grimberg <sagi@grimberg.me>
Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
Diffstat (limited to 'net/rxrpc')
0 files changed, 0 insertions, 0 deletions