aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/target/iscsi/iscsi_target_util.c
diff options
context:
space:
mode:
authorNicholas Bellinger <nab@daterainc.com>2013-08-17 17:27:56 -0400
committerNicholas Bellinger <nab@linux-iscsi.org>2013-09-09 17:29:21 -0400
commitd703ce2f7f4de20c03d71c22a9d5e3708798047b (patch)
treef06be5be02dc43ae0a7c34eacd986238005a003b /drivers/target/iscsi/iscsi_target_util.c
parent3aee26b4ae91048c933dc622f00b7bb01f7f0ff1 (diff)
iscsi/iser-target: Convert to command priv_size usage
This command converts iscsi/isert-target to use allocations based on iscsit_transport->priv_size within iscsit_allocate_cmd(), instead of using an embedded isert_cmd->iscsi_cmd. This includes removing iscsit_transport->alloc_cmd() usage, along with updating isert-target code to use iscsit_priv_cmd(). Also, remove left-over iscsit_transport->release_cmd() usage for direct calls to iscsit_release_cmd(), and drop the now unused lio_cmd_cache and isert_cmd_cache. Cc: Or Gerlitz <ogerlitz@mellanox.com> Cc: Kent Overstreet <kmo@daterainc.com> Signed-off-by: Nicholas Bellinger <nab@daterainc.com>
Diffstat (limited to 'drivers/target/iscsi/iscsi_target_util.c')
-rw-r--r--drivers/target/iscsi/iscsi_target_util.c20
1 files changed, 5 insertions, 15 deletions
diff --git a/drivers/target/iscsi/iscsi_target_util.c b/drivers/target/iscsi/iscsi_target_util.c
index 1df06d5e4e01..5784cad16be1 100644
--- a/drivers/target/iscsi/iscsi_target_util.c
+++ b/drivers/target/iscsi/iscsi_target_util.c
@@ -149,18 +149,6 @@ void iscsit_free_r2ts_from_list(struct iscsi_cmd *cmd)
149 spin_unlock_bh(&cmd->r2t_lock); 149 spin_unlock_bh(&cmd->r2t_lock);
150} 150}
151 151
152struct iscsi_cmd *iscsit_alloc_cmd(struct iscsi_conn *conn, gfp_t gfp_mask)
153{
154 struct iscsi_cmd *cmd;
155
156 cmd = kmem_cache_zalloc(lio_cmd_cache, gfp_mask);
157 if (!cmd)
158 return NULL;
159
160 cmd->release_cmd = &iscsit_release_cmd;
161 return cmd;
162}
163
164/* 152/*
165 * May be called from software interrupt (timer) context for allocating 153 * May be called from software interrupt (timer) context for allocating
166 * iSCSI NopINs. 154 * iSCSI NopINs.
@@ -168,8 +156,9 @@ struct iscsi_cmd *iscsit_alloc_cmd(struct iscsi_conn *conn, gfp_t gfp_mask)
168struct iscsi_cmd *iscsit_allocate_cmd(struct iscsi_conn *conn, gfp_t gfp_mask) 156struct iscsi_cmd *iscsit_allocate_cmd(struct iscsi_conn *conn, gfp_t gfp_mask)
169{ 157{
170 struct iscsi_cmd *cmd; 158 struct iscsi_cmd *cmd;
159 int priv_size = conn->conn_transport->priv_size;
171 160
172 cmd = conn->conn_transport->iscsit_alloc_cmd(conn, gfp_mask); 161 cmd = kzalloc(sizeof(struct iscsi_cmd) + priv_size, gfp_mask);
173 if (!cmd) { 162 if (!cmd) {
174 pr_err("Unable to allocate memory for struct iscsi_cmd.\n"); 163 pr_err("Unable to allocate memory for struct iscsi_cmd.\n");
175 return NULL; 164 return NULL;
@@ -696,8 +685,9 @@ void iscsit_release_cmd(struct iscsi_cmd *cmd)
696 kfree(cmd->iov_data); 685 kfree(cmd->iov_data);
697 kfree(cmd->text_in_ptr); 686 kfree(cmd->text_in_ptr);
698 687
699 kmem_cache_free(lio_cmd_cache, cmd); 688 kfree(cmd);
700} 689}
690EXPORT_SYMBOL(iscsit_release_cmd);
701 691
702static void __iscsit_free_cmd(struct iscsi_cmd *cmd, bool scsi_cmd, 692static void __iscsit_free_cmd(struct iscsi_cmd *cmd, bool scsi_cmd,
703 bool check_queues) 693 bool check_queues)
@@ -761,7 +751,7 @@ void iscsit_free_cmd(struct iscsi_cmd *cmd, bool shutdown)
761 /* Fall-through */ 751 /* Fall-through */
762 default: 752 default:
763 __iscsit_free_cmd(cmd, false, shutdown); 753 __iscsit_free_cmd(cmd, false, shutdown);
764 cmd->release_cmd(cmd); 754 iscsit_release_cmd(cmd);
765 break; 755 break;
766 } 756 }
767} 757}