summaryrefslogtreecommitdiff
path: root/block/stream.c
diff options
context:
space:
mode:
authorKevin Wolf <kwolf@redhat.com>2017-01-17 11:56:42 +0100
committerKevin Wolf <kwolf@redhat.com>2017-02-28 20:40:37 +0100
commit76d554e20bd0a965ac22d6155a129be12fac2667 (patch)
treedd9e34a6339d8cebb1c60a51782cb6ae84490dcd /block/stream.c
parent26de9438c1b6013532fb95de0720e2696588332f (diff)
downloadqemu-76d554e20bd0a965ac22d6155a129be12fac2667.tar.gz
blockjob: Add permissions to block_job_add_bdrv()
Block jobs don't actually do I/O through the the reference they create with block_job_add_bdrv(), but they might want to use the permisssion system to express what the block job does to intermediate nodes. This adds permissions to block_job_add_bdrv() to provide the means to request permissions. Signed-off-by: Kevin Wolf <kwolf@redhat.com> Reviewed-by: Max Reitz <mreitz@redhat.com> Acked-by: Fam Zheng <famz@redhat.com>
Diffstat (limited to 'block/stream.c')
-rw-r--r--block/stream.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/block/stream.c b/block/stream.c
index 7f49279b38..ba8650f0a4 100644
--- a/block/stream.c
+++ b/block/stream.c
@@ -248,7 +248,9 @@ void stream_start(const char *job_id, BlockDriverState *bs,
/* Block all intermediate nodes between bs and base, because they
* will disappear from the chain after this operation */
for (iter = backing_bs(bs); iter && iter != base; iter = backing_bs(iter)) {
- block_job_add_bdrv(&s->common, iter);
+ /* FIXME Use real permissions */
+ block_job_add_bdrv(&s->common, "intermediate node", iter, 0,
+ BLK_PERM_ALL, &error_abort);
}
s->base = base;