Commit fdeab852 authored by Nicholas Bellinger's avatar Nicholas Bellinger

target: Move cmd->prot_op check into target_read_prot_action

This patch moves the existing target_complete_ok_work() check for
cmd->prot_op into it's own function, so it's easier to add future
support for READ INSERT.
Reviewed-by: default avatarMartin Petersen <martin.petersen@oracle.com>
Reviewed-by: default avatarSagi Grimberg <sagig@mellanox.com>
Cc: Christoph Hellwig <hch@lst.de>
Signed-off-by: default avatarNicholas Bellinger <nab@linux-iscsi.org>
parent 5132d1e6
...@@ -1980,10 +1980,12 @@ static void transport_handle_queue_full( ...@@ -1980,10 +1980,12 @@ static void transport_handle_queue_full(
schedule_work(&cmd->se_dev->qf_work_queue); schedule_work(&cmd->se_dev->qf_work_queue);
} }
static bool target_check_read_strip(struct se_cmd *cmd) static bool target_read_prot_action(struct se_cmd *cmd)
{ {
sense_reason_t rc; sense_reason_t rc;
switch (cmd->prot_op) {
case TARGET_PROT_DIN_STRIP:
if (!(cmd->se_sess->sup_prot_ops & TARGET_PROT_DIN_STRIP)) { if (!(cmd->se_sess->sup_prot_ops & TARGET_PROT_DIN_STRIP)) {
rc = sbc_dif_read_strip(cmd); rc = sbc_dif_read_strip(cmd);
if (rc) { if (rc) {
...@@ -1991,6 +1993,10 @@ static bool target_check_read_strip(struct se_cmd *cmd) ...@@ -1991,6 +1993,10 @@ static bool target_check_read_strip(struct se_cmd *cmd)
return true; return true;
} }
} }
break;
default:
break;
}
return false; return false;
} }
...@@ -2064,8 +2070,7 @@ static void target_complete_ok_work(struct work_struct *work) ...@@ -2064,8 +2070,7 @@ static void target_complete_ok_work(struct work_struct *work)
* backend had PI enabled, if the transport will not be * backend had PI enabled, if the transport will not be
* performing hardware READ_STRIP offload. * performing hardware READ_STRIP offload.
*/ */
if (cmd->prot_op == TARGET_PROT_DIN_STRIP && if (target_read_prot_action(cmd)) {
target_check_read_strip(cmd)) {
ret = transport_send_check_condition_and_sense(cmd, ret = transport_send_check_condition_and_sense(cmd,
cmd->pi_err, 0); cmd->pi_err, 0);
if (ret == -EAGAIN || ret == -ENOMEM) if (ret == -EAGAIN || ret == -ENOMEM)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment