Commit 2dbc43d2 authored by Christoph Hellwig's avatar Christoph Hellwig Committed by Nicholas Bellinger

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: default avatarChristoph Hellwig <hch@lst.de>
Signed-off-by: default avatarNicholas Bellinger <nab@linux-iscsi.org>
parent 31afc39c
...@@ -1640,19 +1640,6 @@ static int transport_check_alloc_task_attr(struct se_cmd *cmd) ...@@ -1640,19 +1640,6 @@ static int transport_check_alloc_task_attr(struct se_cmd *cmd)
return 0; return 0;
} }
void transport_free_se_cmd(
struct se_cmd *se_cmd)
{
if (se_cmd->se_tmr_req)
core_tmr_release_req(se_cmd->se_tmr_req);
/*
* Check and free any extended CDB buffer that was allocated
*/
if (se_cmd->t_task_cdb != se_cmd->__t_task_cdb)
kfree(se_cmd->t_task_cdb);
}
EXPORT_SYMBOL(transport_free_se_cmd);
static void transport_generic_wait_for_tasks(struct se_cmd *, int, int); static void transport_generic_wait_for_tasks(struct se_cmd *, int, int);
/* transport_generic_allocate_tasks(): /* transport_generic_allocate_tasks():
...@@ -4371,11 +4358,21 @@ static int transport_generic_write_pending(struct se_cmd *cmd) ...@@ -4371,11 +4358,21 @@ static int transport_generic_write_pending(struct se_cmd *cmd)
return ret; return ret;
} }
/**
* transport_release_cmd - free a command
* @cmd: command to free
*
* This routine unconditionally frees a command, and reference counting
* or list removal must be done in the caller.
*/
void transport_release_cmd(struct se_cmd *cmd) void transport_release_cmd(struct se_cmd *cmd)
{ {
BUG_ON(!cmd->se_tfo); BUG_ON(!cmd->se_tfo);
transport_free_se_cmd(cmd); if (cmd->se_tmr_req)
core_tmr_release_req(cmd->se_tmr_req);
if (cmd->t_task_cdb != cmd->__t_task_cdb)
kfree(cmd->t_task_cdb);
cmd->se_tfo->release_cmd(cmd); cmd->se_tfo->release_cmd(cmd);
} }
EXPORT_SYMBOL(transport_release_cmd); EXPORT_SYMBOL(transport_release_cmd);
......
...@@ -169,7 +169,6 @@ extern void transport_init_se_cmd(struct se_cmd *, ...@@ -169,7 +169,6 @@ extern void transport_init_se_cmd(struct se_cmd *,
unsigned char *); unsigned char *);
void *transport_kmap_first_data_page(struct se_cmd *cmd); void *transport_kmap_first_data_page(struct se_cmd *cmd);
void transport_kunmap_first_data_page(struct se_cmd *cmd); void transport_kunmap_first_data_page(struct se_cmd *cmd);
extern void transport_free_se_cmd(struct se_cmd *);
extern int transport_generic_allocate_tasks(struct se_cmd *, unsigned char *); extern int transport_generic_allocate_tasks(struct se_cmd *, unsigned char *);
extern int transport_handle_cdb_direct(struct se_cmd *); extern int transport_handle_cdb_direct(struct se_cmd *);
extern int transport_generic_handle_cdb_map(struct se_cmd *); extern int transport_generic_handle_cdb_map(struct se_cmd *);
......
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