aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/target/target_core_transport.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/drivers/target/target_core_transport.c b/drivers/target/target_core_transport.c
index a7589ccdb6f3..ea9a3d2e4f55 100644
--- a/drivers/target/target_core_transport.c
+++ b/drivers/target/target_core_transport.c
@@ -2323,9 +2323,12 @@ int transport_generic_new_cmd(struct se_cmd *cmd)
2323 if (ret < 0) 2323 if (ret < 0)
2324 goto out_fail; 2324 goto out_fail;
2325 } 2325 }
2326 2326 /*
2327 /* Workaround for handling zero-length control CDBs */ 2327 * If this command doesn't have any payload and we don't have to call
2328 if (!(cmd->se_cmd_flags & SCF_SCSI_DATA_CDB) && !cmd->data_length) { 2328 * into the fabric for data transfers, go ahead and complete it right
2329 * away.
2330 */
2331 if (!cmd->data_length) {
2329 spin_lock_irq(&cmd->t_state_lock); 2332 spin_lock_irq(&cmd->t_state_lock);
2330 cmd->t_state = TRANSPORT_COMPLETE; 2333 cmd->t_state = TRANSPORT_COMPLETE;
2331 cmd->transport_state |= CMD_T_ACTIVE; 2334 cmd->transport_state |= CMD_T_ACTIVE;