target: Avoid DataIN transfers for non-GOOD SAM status

This patch modifies existing transport_complete_*() code
to avoid invoking target_core_fabric_ops->queue_data_in()
driver callbacks for I/O READs with non-GOOD SAM status.

Some initiators expect GOOD status when a DATA-IN payload
transfer is involved, so to be safe go ahead and always
invoke target_core_fabric_ops->queue_status() to generate
fabric responses instead.

Note this is a prerequisite for IBLOCK supporting retriable
generates fabric driver responses instead of initiating
DataIN payload transfer when non-GOOD status is present

Reviewed-by: Christoph Hellwig <>
Cc: Hannes Reinecke <>
Cc: Sagi Grimberg <>
Cc: Andy Grover <>
Cc: Mike Christie <>
Signed-off-by: Nicholas Bellinger <>
1 file changed