diff options
author | Kevin Wolf <kwolf@redhat.com> | 2017-01-17 11:56:42 +0100 |
---|---|---|
committer | Kevin Wolf <kwolf@redhat.com> | 2017-02-28 20:40:37 +0100 |
commit | 76d554e20bd0a965ac22d6155a129be12fac2667 (patch) | |
tree | dd9e34a6339d8cebb1c60a51782cb6ae84490dcd /block/mirror.c | |
parent | 26de9438c1b6013532fb95de0720e2696588332f (diff) | |
download | qemu-76d554e20bd0a965ac22d6155a129be12fac2667.zip qemu-76d554e20bd0a965ac22d6155a129be12fac2667.tar.gz qemu-76d554e20bd0a965ac22d6155a129be12fac2667.tar.bz2 |
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/mirror.c')
-rw-r--r-- | block/mirror.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/block/mirror.c b/block/mirror.c index 18128e6..4d325f1 100644 --- a/block/mirror.c +++ b/block/mirror.c @@ -1052,13 +1052,18 @@ static void mirror_start_job(const char *job_id, BlockDriverState *bs, return; } - block_job_add_bdrv(&s->common, target); + /* FIXME Use real permissions */ + block_job_add_bdrv(&s->common, "target", target, 0, BLK_PERM_ALL, + &error_abort); + /* In commit_active_start() all intermediate nodes disappear, so * any jobs in them must be blocked */ if (bdrv_chain_contains(bs, target)) { BlockDriverState *iter; for (iter = backing_bs(bs); iter != target; 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); } } |