Skip to content

Commit

Permalink
qed: introduce bdrv_qed_init_state
Browse files Browse the repository at this point in the history
This will be used in the next patch, which will call bdrv_qed_do_open
with a CoMutex taken.  bdrv_qed_init_state provides a nice place to
initialize it.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Message-Id: <20170629132749.997-9-pbonzini@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Reviewed-by: Fam Zheng <famz@redhat.com>
Signed-off-by: Fam Zheng <famz@redhat.com>
  • Loading branch information
bonzini authored and Fam Zheng committed Jul 17, 2017
1 parent 61124f0 commit 61c7887
Showing 1 changed file with 11 additions and 5 deletions.
16 changes: 11 additions & 5 deletions block/qed.c
Expand Up @@ -363,6 +363,15 @@ static void coroutine_fn bdrv_qed_co_drain(BlockDriverState *bs)
}
}

static void bdrv_qed_init_state(BlockDriverState *bs)
{
BDRVQEDState *s = bs->opaque;

memset(s, 0, sizeof(BDRVQEDState));
s->bs = bs;
qemu_co_queue_init(&s->allocating_write_reqs);
}

static int bdrv_qed_do_open(BlockDriverState *bs, QDict *options, int flags,
Error **errp)
{
Expand All @@ -371,9 +380,6 @@ static int bdrv_qed_do_open(BlockDriverState *bs, QDict *options, int flags,
int64_t file_size;
int ret;

s->bs = bs;
qemu_co_queue_init(&s->allocating_write_reqs);

ret = bdrv_pread(bs->file, 0, &le_header, sizeof(le_header));
if (ret < 0) {
return ret;
Expand Down Expand Up @@ -507,6 +513,7 @@ static int bdrv_qed_open(BlockDriverState *bs, QDict *options, int flags,
return -EINVAL;
}

bdrv_qed_init_state(bs);
return bdrv_qed_do_open(bs, options, flags, errp);
}

Expand Down Expand Up @@ -1462,13 +1469,12 @@ static int bdrv_qed_change_backing_file(BlockDriverState *bs,

static void bdrv_qed_invalidate_cache(BlockDriverState *bs, Error **errp)
{
BDRVQEDState *s = bs->opaque;
Error *local_err = NULL;
int ret;

bdrv_qed_close(bs);

memset(s, 0, sizeof(BDRVQEDState));
bdrv_qed_init_state(bs);
ret = bdrv_qed_do_open(bs, NULL, bs->open_flags, &local_err);
if (local_err) {
error_propagate(errp, local_err);
Expand Down

0 comments on commit 61c7887

Please sign in to comment.