diff options
author | Christoph Hellwig <hch@lst.de> | 2011-09-13 17:08:19 -0400 |
---|---|---|
committer | Nicholas Bellinger <nab@linux-iscsi.org> | 2011-10-23 23:20:31 -0400 |
commit | 2dbc43d256c5371ebc294e3534620663eb80a5ce (patch) | |
tree | f23de858027389d0eaa85a17b35748139d8275b2 /drivers/target | |
parent | 31afc39c0c93edec5a117371f1bd2a264cceafac (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.c | 25 |
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 | ||
1643 | void 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 | } | ||
1654 | EXPORT_SYMBOL(transport_free_se_cmd); | ||
1655 | |||
1656 | static void transport_generic_wait_for_tasks(struct se_cmd *, int, int); | 1643 | static 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 | */ | ||
4374 | void transport_release_cmd(struct se_cmd *cmd) | 4368 | void 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 | } |
4381 | EXPORT_SYMBOL(transport_release_cmd); | 4378 | EXPORT_SYMBOL(transport_release_cmd); |