summaryrefslogtreecommitdiffstats
path: root/block
diff options
context:
space:
mode:
authorPaolo Bonzini2017-05-08 16:13:02 +0200
committerJeff Cody2017-05-24 22:38:51 +0200
commit05b0d8e3b8a1ed1a5840a317ce4f7f4ebe53156f (patch)
tree94487e194c1c0e31d8035e25b2e598f323e521b8 /block
parentblockjob: remove iostatus_reset callback (diff)
downloadqemu-05b0d8e3b8a1ed1a5840a317ce4f7f4ebe53156f.tar.gz
qemu-05b0d8e3b8a1ed1a5840a317ce4f7f4ebe53156f.tar.xz
qemu-05b0d8e3b8a1ed1a5840a317ce4f7f4ebe53156f.zip
blockjob: introduce block_job_early_fail
Outside blockjob.c, block_job_unref is only used when a block job fails to start, and block_job_ref is not used at all. The reference counting thus is pretty well hidden. Introduce a separate function to be used by block jobs; because block_job_ref and block_job_unref now become static, move them earlier in blockjob.c. Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com> Reviewed-by: John Snow <jsnow@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Reviewed-by: Jeff Cody <jcody@redhat.com> Message-id: 20170508141310.8674-4-pbonzini@redhat.com Signed-off-by: Jeff Cody <jcody@redhat.com>
Diffstat (limited to 'block')
-rw-r--r--block/backup.c2
-rw-r--r--block/commit.c2
-rw-r--r--block/mirror.c2
3 files changed, 3 insertions, 3 deletions
diff --git a/block/backup.c b/block/backup.c
index a4fb2884f9..5387fbd84e 100644
--- a/block/backup.c
+++ b/block/backup.c
@@ -692,7 +692,7 @@ BlockJob *backup_job_create(const char *job_id, BlockDriverState *bs,
}
if (job) {
backup_clean(&job->common);
- block_job_unref(&job->common);
+ block_job_early_fail(&job->common);
}
return NULL;
diff --git a/block/commit.c b/block/commit.c
index 76a0d98c6f..a3028b20f3 100644
--- a/block/commit.c
+++ b/block/commit.c
@@ -426,7 +426,7 @@ fail:
if (commit_top_bs) {
bdrv_set_backing_hd(overlay_bs, top, &error_abort);
}
- block_job_unref(&s->common);
+ block_job_early_fail(&s->common);
}
diff --git a/block/mirror.c b/block/mirror.c
index e86f8f8ad7..b9eb2a2ddb 100644
--- a/block/mirror.c
+++ b/block/mirror.c
@@ -1252,7 +1252,7 @@ fail:
g_free(s->replaces);
blk_unref(s->target);
- block_job_unref(&s->common);
+ block_job_early_fail(&s->common);
}
bdrv_child_try_set_perm(mirror_top_bs->backing, 0, BLK_PERM_ALL,