aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/target
diff options
context:
space:
mode:
authorChristoph Hellwig <hch@lst.de>2011-09-13 17:08:19 -0400
committerNicholas Bellinger <nab@linux-iscsi.org>2011-10-23 23:20:31 -0400
commit2dbc43d256c5371ebc294e3534620663eb80a5ce (patch)
treef23de858027389d0eaa85a17b35748139d8275b2 /drivers/target
parent31afc39c0c93edec5a117371f1bd2a264cceafac (diff)
target: remove transport_free_se_cmd
It is only called by transport_release_cmd, so inline it there. Also add a kerneldoc comment for transport_release_cmd while we are at it. Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
Diffstat (limited to 'drivers/target')
-rw-r--r--drivers/target/target_core_transport.c25
1 files changed, 11 insertions, 14 deletions
diff --git a/drivers/target/target_core_transport.c b/drivers/target/target_core_transport.c
index 0c1d004548b1..49df0971a37f 100644
--- a/drivers/target/target_core_transport.c
+++ b/drivers/target/target_core_transport.c
@@ -1640,19 +1640,6 @@ static int transport_check_alloc_task_attr(struct se_cmd *cmd)
1640 return 0; 1640 return 0;
1641} 1641}
1642 1642
1643void transport_free_se_cmd(
1644 struct se_cmd *se_cmd)
1645{
1646 if (se_cmd->se_tmr_req)
1647 core_tmr_release_req(se_cmd->se_tmr_req);
1648 /*
1649 * Check and free any extended CDB buffer that was allocated
1650 */
1651 if (se_cmd->t_task_cdb != se_cmd->__t_task_cdb)
1652 kfree(se_cmd->t_task_cdb);
1653}
1654EXPORT_SYMBOL(transport_free_se_cmd);
1655
1656static void transport_generic_wait_for_tasks(struct se_cmd *, int, int); 1643static void transport_generic_wait_for_tasks(struct se_cmd *, int, int);
1657 1644
1658/* transport_generic_allocate_tasks(): 1645/* transport_generic_allocate_tasks():
@@ -4371,11 +4358,21 @@ queue_full:
4371 return ret; 4358 return ret;
4372} 4359}
4373 4360
4361/**
4362 * transport_release_cmd - free a command
4363 * @cmd: command to free
4364 *
4365 * This routine unconditionally frees a command, and reference counting
4366 * or list removal must be done in the caller.
4367 */
4374void transport_release_cmd(struct se_cmd *cmd) 4368void transport_release_cmd(struct se_cmd *cmd)
4375{ 4369{
4376 BUG_ON(!cmd->se_tfo); 4370 BUG_ON(!cmd->se_tfo);
4377 4371
4378 transport_free_se_cmd(cmd); 4372 if (cmd->se_tmr_req)
4373 core_tmr_release_req(cmd->se_tmr_req);
4374 if (cmd->t_task_cdb != cmd->__t_task_cdb)
4375 kfree(cmd->t_task_cdb);
4379 cmd->se_tfo->release_cmd(cmd); 4376 cmd->se_tfo->release_cmd(cmd);
4380} 4377}
4381EXPORT_SYMBOL(transport_release_cmd); 4378EXPORT_SYMBOL(transport_release_cmd);