summaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorAndy Grover <agrover@redhat.com>2012-01-19 22:39:19 +0100
committerNicholas Bellinger <nab@linux-iscsi.org>2012-02-25 23:37:47 +0100
commit06fb6313d975c144850a3381ffa792c752d5473d (patch)
treebc3ba0622b0c013f01960071aa0ee1df5c7a1c85 /drivers
parenttcm_fc: Move core->fc code conversion earlier in ft_send_tm() (diff)
downloadlinux-06fb6313d975c144850a3381ffa792c752d5473d.tar.xz
linux-06fb6313d975c144850a3381ffa792c752d5473d.zip
tcm_fc: Call lookup_tmr_lun() for all TM types
Don't see a reason to differentiate, so drop the fabric specific switch statement in ft_send_tm() ahead of conversion to use target_submit_tmr(). Signed-off-by: Andy Grover <agrover@redhat.com> Cc: Kiran Patil <kiran.patil@intel.com> Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/target/tcm_fc/tfc_cmd.c36
1 files changed, 11 insertions, 25 deletions
diff --git a/drivers/target/tcm_fc/tfc_cmd.c b/drivers/target/tcm_fc/tfc_cmd.c
index d4c95cc2ae54..3926f4a66cb6 100644
--- a/drivers/target/tcm_fc/tfc_cmd.c
+++ b/drivers/target/tcm_fc/tfc_cmd.c
@@ -399,33 +399,19 @@ static void ft_send_tm(struct ft_cmd *cmd)
return;
}
- switch (fcp->fc_tm_flags) {
- case FCP_TMF_LUN_RESET:
- if (transport_lookup_tmr_lun(&cmd->se_cmd, scsilun_to_int(&fcp->fc_lun)) < 0) {
- /*
- * Make sure to clean up newly allocated TMR request
- * since "unable to handle TMR request because failed
- * to get to LUN"
- */
- pr_debug("Failed to get LUN for TMR func %d, "
- "se_cmd %p, unpacked_lun %d\n",
- tm_func, &cmd->se_cmd, scsilun_to_int(&fcp->fc_lun));
- ft_dump_cmd(cmd, __func__);
- sess = cmd->sess;
- transport_send_check_condition_and_sense(&cmd->se_cmd,
- cmd->se_cmd.scsi_sense_reason, 0);
- ft_sess_put(sess);
- return;
- }
- break;
- case FCP_TMF_TGT_RESET:
- case FCP_TMF_CLR_TASK_SET:
- case FCP_TMF_ABT_TASK_SET:
- case FCP_TMF_CLR_ACA:
- break;
- default:
+ rc = transport_lookup_tmr_lun(&cmd->se_cmd, scsilun_to_int(&fcp->fc_lun));
+ if (rc < 0) {
+ pr_debug("Failed to get LUN for TMR func %d, "
+ "se_cmd %p, unpacked_lun %d\n",
+ tm_func, &cmd->se_cmd, scsilun_to_int(&fcp->fc_lun));
+ ft_dump_cmd(cmd, __func__);
+ sess = cmd->sess;
+ transport_send_check_condition_and_sense(&cmd->se_cmd,
+ cmd->se_cmd.scsi_sense_reason, 0);
+ ft_sess_put(sess);
return;
}
+
transport_generic_handle_tmr(&cmd->se_cmd);
}