diff options
author | Kevin Wolf <kwolf@redhat.com> | 2016-11-22 12:49:49 +0100 |
---|---|---|
committer | Kevin Wolf <kwolf@redhat.com> | 2017-01-09 13:30:52 +0100 |
commit | 7c37f941d028e2a1bf350ffb292684f2e1a292c7 (patch) | |
tree | 55b5daa89370e0d340c702a3cce8c73326f21a4a /block | |
parent | a7e159025ed439011a47d56af5f34729bbb7247c (diff) |
quorum: Clean up quorum_aio_get()
Make sure that all fields of the new QuorumAIOCB are zeroed when the
function returns even without explicitly setting them. This will protect
us when new fields are added, removes some explicit zero assignment and
makes the code a little nicer to read.
Suggested-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Reviewed-by: Alberto Garcia <berto@igalia.com>
Diffstat (limited to 'block')
-rw-r--r-- | block/quorum.c | 23 |
1 files changed, 10 insertions, 13 deletions
diff --git a/block/quorum.c b/block/quorum.c index e2443897b5..86e2072dce 100644 --- a/block/quorum.c +++ b/block/quorum.c @@ -164,20 +164,17 @@ static QuorumAIOCB *quorum_aio_get(BlockDriverState *bs, QuorumAIOCB *acb = g_new(QuorumAIOCB, 1); int i; - acb->co = qemu_coroutine_self(); - acb->bs = bs; - acb->offset = offset; - acb->bytes = bytes; - acb->qiov = qiov; - acb->qcrs = g_new0(QuorumChildRequest, s->num_children); - acb->count = 0; - acb->success_count = 0; - acb->rewrite_count = 0; - acb->votes.compare = quorum_sha256_compare; - QLIST_INIT(&acb->votes.vote_list); - acb->is_read = false; - acb->vote_ret = 0; + *acb = (QuorumAIOCB) { + .co = qemu_coroutine_self(), + .bs = bs, + .offset = offset, + .bytes = bytes, + .qiov = qiov, + .votes.compare = quorum_sha256_compare, + .votes.vote_list = QLIST_HEAD_INITIALIZER(acb.votes.vote_list), + }; + acb->qcrs = g_new0(QuorumChildRequest, s->num_children); for (i = 0; i < s->num_children; i++) { acb->qcrs[i].buf = NULL; acb->qcrs[i].ret = 0; |