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:
parent
006abfecb8
commit
2a00a12892
@ -119,6 +119,15 @@ blk_task_finish(struct spdk_vhost_blk_task *task)
|
|||||||
task->used = false;
|
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
|
static void
|
||||||
invalid_blk_request(struct spdk_vhost_blk_task *task, uint8_t status)
|
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;
|
struct spdk_vhost_blk_task *task = (struct spdk_vhost_blk_task *)arg;
|
||||||
int rc = 0;
|
int rc = 0;
|
||||||
|
|
||||||
|
blk_task_init(task);
|
||||||
|
|
||||||
rc = process_blk_request(task, task->bvsession, task->vq);
|
rc = process_blk_request(task, task->bvsession, task->vq);
|
||||||
if (rc == 0) {
|
if (rc == 0) {
|
||||||
SPDK_DEBUGLOG(SPDK_LOG_VHOST_BLK, "====== Task %p resubmitted ======\n", task);
|
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++;
|
vsession->task_cnt++;
|
||||||
|
|
||||||
task->used = true;
|
blk_task_init(task);
|
||||||
task->iovcnt = SPDK_COUNTOF(task->iovs);
|
|
||||||
task->status = NULL;
|
|
||||||
task->used_len = 0;
|
|
||||||
|
|
||||||
rc = process_blk_request(task, bvsession, vq);
|
rc = process_blk_request(task, bvsession, vq);
|
||||||
if (rc == 0) {
|
if (rc == 0) {
|
||||||
@ -534,10 +542,7 @@ process_vq(struct spdk_vhost_blk_session *bvsession, struct spdk_vhost_virtqueue
|
|||||||
|
|
||||||
vsession->task_cnt++;
|
vsession->task_cnt++;
|
||||||
|
|
||||||
task->used = true;
|
blk_task_init(task);
|
||||||
task->iovcnt = SPDK_COUNTOF(task->iovs);
|
|
||||||
task->status = NULL;
|
|
||||||
task->used_len = 0;
|
|
||||||
|
|
||||||
rc = process_blk_request(task, bvsession, vq);
|
rc = process_blk_request(task, bvsession, vq);
|
||||||
if (rc == 0) {
|
if (rc == 0) {
|
||||||
|
Loading…
Reference in New Issue
Block a user