diff options
-rw-r--r-- | drivers/target/target_core_transport.c | 9 |
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; |