diff options
| -rw-r--r-- | drivers/target/target_core_transport.c | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/drivers/target/target_core_transport.c b/drivers/target/target_core_transport.c index 8c8e62e2687f..ab4e3083d968 100644 --- a/drivers/target/target_core_transport.c +++ b/drivers/target/target_core_transport.c | |||
| @@ -3934,7 +3934,7 @@ transport_allocate_control_task(struct se_cmd *cmd) | |||
| 3934 | int transport_generic_new_cmd(struct se_cmd *cmd) | 3934 | int transport_generic_new_cmd(struct se_cmd *cmd) |
| 3935 | { | 3935 | { |
| 3936 | struct se_device *dev = cmd->se_dev; | 3936 | struct se_device *dev = cmd->se_dev; |
| 3937 | int task_cdbs; | 3937 | int task_cdbs, task_cdbs_bidi = 0; |
| 3938 | int set_counts = 1; | 3938 | int set_counts = 1; |
| 3939 | int ret = 0; | 3939 | int ret = 0; |
| 3940 | 3940 | ||
| @@ -3957,9 +3957,10 @@ int transport_generic_new_cmd(struct se_cmd *cmd) | |||
| 3957 | dev->transport->transport_type != TRANSPORT_PLUGIN_PHBA_PDEV) { | 3957 | dev->transport->transport_type != TRANSPORT_PLUGIN_PHBA_PDEV) { |
| 3958 | BUG_ON(!(cmd->se_cmd_flags & SCF_SCSI_DATA_SG_IO_CDB)); | 3958 | BUG_ON(!(cmd->se_cmd_flags & SCF_SCSI_DATA_SG_IO_CDB)); |
| 3959 | 3959 | ||
| 3960 | ret = transport_allocate_data_tasks(cmd, DMA_FROM_DEVICE, | 3960 | task_cdbs_bidi = transport_allocate_data_tasks(cmd, |
| 3961 | cmd->t_bidi_data_sg, cmd->t_bidi_data_nents); | 3961 | DMA_FROM_DEVICE, cmd->t_bidi_data_sg, |
| 3962 | if (ret <= 0) | 3962 | cmd->t_bidi_data_nents); |
| 3963 | if (task_cdbs_bidi <= 0) | ||
| 3963 | goto out_fail; | 3964 | goto out_fail; |
| 3964 | 3965 | ||
| 3965 | atomic_inc(&cmd->t_fe_count); | 3966 | atomic_inc(&cmd->t_fe_count); |
| @@ -3983,11 +3984,10 @@ int transport_generic_new_cmd(struct se_cmd *cmd) | |||
| 3983 | atomic_inc(&cmd->t_se_count); | 3984 | atomic_inc(&cmd->t_se_count); |
| 3984 | } | 3985 | } |
| 3985 | 3986 | ||
| 3986 | cmd->t_task_list_num = task_cdbs; | 3987 | cmd->t_task_list_num = (task_cdbs + task_cdbs_bidi); |
| 3987 | 3988 | atomic_set(&cmd->t_task_cdbs_left, cmd->t_task_list_num); | |
| 3988 | atomic_set(&cmd->t_task_cdbs_left, task_cdbs); | 3989 | atomic_set(&cmd->t_task_cdbs_ex_left, cmd->t_task_list_num); |
| 3989 | atomic_set(&cmd->t_task_cdbs_ex_left, task_cdbs); | 3990 | atomic_set(&cmd->t_task_cdbs_timeout_left, cmd->t_task_list_num); |
| 3990 | atomic_set(&cmd->t_task_cdbs_timeout_left, task_cdbs); | ||
| 3991 | 3991 | ||
| 3992 | /* | 3992 | /* |
| 3993 | * For WRITEs, let the fabric know its buffer is ready.. | 3993 | * For WRITEs, let the fabric know its buffer is ready.. |
