scsi: set free_fn in spdk_scsi_task_construct()

The task free callback function is required, so make its assignment part
of task construction.

Change-Id: I2f5fdf73b064653ee85b4e7961cb1653a0a4107d
Signed-off-by: Daniel Verkamp <daniel.verkamp@intel.com>
This commit is contained in:
Daniel Verkamp 2017-05-12 16:55:16 -07:00
parent 1aea6c5b6f
commit 7145cf62c6
5 changed files with 8 additions and 5 deletions

View File

@ -213,6 +213,7 @@ const char *spdk_scsi_port_get_name(const struct spdk_scsi_port *port);
void spdk_scsi_task_construct(struct spdk_scsi_task *task, uint32_t *owner_task_ctr,
void (*free_fn)(struct spdk_scsi_task *task),
struct spdk_scsi_task *parent);
void spdk_scsi_task_put(struct spdk_scsi_task *task);

View File

@ -59,11 +59,11 @@ spdk_iscsi_task_get(uint32_t *owner_task_ctr, struct spdk_iscsi_task *parent)
memset(task, 0, sizeof(*task));
spdk_scsi_task_construct((struct spdk_scsi_task *)task, owner_task_ctr,
spdk_iscsi_task_free,
(struct spdk_scsi_task *)parent);
if (parent) {
task->tag = parent->tag;
}
task->scsi.free_fn = spdk_iscsi_task_free;
return task;
}

View File

@ -73,8 +73,12 @@ spdk_scsi_task_put(struct spdk_scsi_task *task)
void
spdk_scsi_task_construct(struct spdk_scsi_task *task, uint32_t *owner_task_ctr,
void (*free_fn)(struct spdk_scsi_task *task),
struct spdk_scsi_task *parent)
{
assert(free_fn != NULL);
task->free_fn = free_fn;
task->ref++;
assert(owner_task_ctr != NULL);

View File

@ -83,8 +83,7 @@ spdk_vhost_task_get(uint32_t *owner_task_ctr)
}
memset(task, 0, sizeof(*task));
spdk_scsi_task_construct(&task->scsi, owner_task_ctr, NULL);
task->scsi.free_fn = spdk_vhost_task_free_cb;
spdk_scsi_task_construct(&task->scsi, owner_task_ctr, spdk_vhost_task_free_cb, NULL);
return task;
}

View File

@ -86,8 +86,7 @@ spdk_get_task(uint32_t *owner_task_ctr)
return NULL;
}
spdk_scsi_task_construct(task, &g_task_count, NULL);
task->free_fn = spdk_lun_ut_free_task;
spdk_scsi_task_construct(task, &g_task_count, spdk_lun_ut_free_task, NULL);
return task;
}