vhost_blk: need init task when resubmit the blk request

Change-Id: I10fca86be6a2834fe3238d8881a4645ac810a201
Signed-off-by: zhangjf <zjfhappy@126.com>
Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/482346
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
This commit is contained in:
zhangjf 2020-01-21 17:09:05 +08:00 committed by Tomasz Zawadzki
parent 006abfecb8
commit 2a00a12892

View File

@ -119,6 +119,15 @@ blk_task_finish(struct spdk_vhost_blk_task *task)
task->used = false;
}
static void
blk_task_init(struct spdk_vhost_blk_task *task)
{
task->used = true;
task->iovcnt = SPDK_COUNTOF(task->iovs);
task->status = NULL;
task->used_len = 0;
}
static void
invalid_blk_request(struct spdk_vhost_blk_task *task, uint8_t status)
{
@ -237,6 +246,8 @@ blk_request_resubmit(void *arg)
struct spdk_vhost_blk_task *task = (struct spdk_vhost_blk_task *)arg;
int rc = 0;
blk_task_init(task);
rc = process_blk_request(task, task->bvsession, task->vq);
if (rc == 0) {
SPDK_DEBUGLOG(SPDK_LOG_VHOST_BLK, "====== Task %p resubmitted ======\n", task);
@ -476,10 +487,7 @@ submit_inflight_desc(struct spdk_vhost_blk_session *bvsession,
vsession->task_cnt++;
task->used = true;
task->iovcnt = SPDK_COUNTOF(task->iovs);
task->status = NULL;
task->used_len = 0;
blk_task_init(task);
rc = process_blk_request(task, bvsession, vq);
if (rc == 0) {
@ -534,10 +542,7 @@ process_vq(struct spdk_vhost_blk_session *bvsession, struct spdk_vhost_virtqueue
vsession->task_cnt++;
task->used = true;
task->iovcnt = SPDK_COUNTOF(task->iovs);
task->status = NULL;
task->used_len = 0;
blk_task_init(task);
rc = process_blk_request(task, bvsession, vq);
if (rc == 0) {