提交 ccd4228a 编写于 作者: P Peter Krempa

qemu: blockjob: Store 'flags' for all the block job types

The flags may control important aspects of the block job which may
influence also the termination of the job. Store the 'flags' for all
the block job types.
Signed-off-by: NPeter Krempa <pkrempa@redhat.com>
Reviewed-by: NJán Tomko <jtomko@redhat.com>
上级 9ba804a1
......@@ -252,7 +252,8 @@ qemuBlockJobDiskNew(virDomainObjPtr vm,
qemuBlockJobDataPtr
qemuBlockJobDiskNewPull(virDomainObjPtr vm,
virDomainDiskDefPtr disk,
virStorageSourcePtr base)
virStorageSourcePtr base,
unsigned int jobflags)
{
qemuDomainObjPrivatePtr priv = vm->privateData;
g_autoptr(qemuBlockJobData) job = NULL;
......@@ -269,6 +270,7 @@ qemuBlockJobDiskNewPull(virDomainObjPtr vm,
return NULL;
job->data.pull.base = base;
job->jobflags = jobflags;
if (qemuBlockJobRegister(job, vm, disk, true) < 0)
return NULL;
......@@ -283,7 +285,8 @@ qemuBlockJobDiskNewCommit(virDomainObjPtr vm,
virStorageSourcePtr topparent,
virStorageSourcePtr top,
virStorageSourcePtr base,
bool delete_imgs)
bool delete_imgs,
unsigned int jobflags)
{
qemuDomainObjPrivatePtr priv = vm->privateData;
g_autoptr(qemuBlockJobData) job = NULL;
......@@ -307,6 +310,7 @@ qemuBlockJobDiskNewCommit(virDomainObjPtr vm,
job->data.commit.top = top;
job->data.commit.base = base;
job->data.commit.deleteCommittedImages = delete_imgs;
job->jobflags = jobflags;
if (qemuBlockJobRegister(job, vm, disk, true) < 0)
return NULL;
......@@ -350,7 +354,8 @@ qemuBlockJobDiskNewCopy(virDomainObjPtr vm,
virDomainDiskDefPtr disk,
virStorageSourcePtr mirror,
bool shallow,
bool reuse)
bool reuse,
unsigned int jobflags)
{
qemuDomainObjPrivatePtr priv = vm->privateData;
g_autoptr(qemuBlockJobData) job = NULL;
......@@ -371,6 +376,8 @@ qemuBlockJobDiskNewCopy(virDomainObjPtr vm,
if (shallow && !reuse)
job->data.copy.shallownew = true;
job->jobflags = jobflags;
if (qemuBlockJobRegister(job, vm, disk, true) < 0)
return NULL;
......
......@@ -176,7 +176,8 @@ qemuBlockJobDiskNew(virDomainObjPtr vm,
qemuBlockJobDataPtr
qemuBlockJobDiskNewPull(virDomainObjPtr vm,
virDomainDiskDefPtr disk,
virStorageSourcePtr base);
virStorageSourcePtr base,
unsigned int jobflags);
qemuBlockJobDataPtr
qemuBlockJobDiskNewCommit(virDomainObjPtr vm,
......@@ -184,7 +185,8 @@ qemuBlockJobDiskNewCommit(virDomainObjPtr vm,
virStorageSourcePtr topparent,
virStorageSourcePtr top,
virStorageSourcePtr base,
bool delete_imgs);
bool delete_imgs,
unsigned int jobflags);
qemuBlockJobDataPtr
qemuBlockJobNewCreate(virDomainObjPtr vm,
......@@ -197,7 +199,8 @@ qemuBlockJobDiskNewCopy(virDomainObjPtr vm,
virDomainDiskDefPtr disk,
virStorageSourcePtr mirror,
bool shallow,
bool reuse);
bool reuse,
unsigned int jobflags);
qemuBlockJobDataPtr
qemuBlockJobDiskNewBackup(virDomainObjPtr vm,
......
......@@ -17706,7 +17706,7 @@ qemuDomainBlockPullCommon(virDomainObjPtr vm,
speed <<= 20;
}
if (!(job = qemuBlockJobDiskNewPull(vm, disk, baseSource)))
if (!(job = qemuBlockJobDiskNewPull(vm, disk, baseSource, flags)))
goto endjob;
if (blockdev) {
......@@ -18393,7 +18393,7 @@ qemuDomainBlockCopyCommon(virDomainObjPtr vm,
goto endjob;
}
if (!(job = qemuBlockJobDiskNewCopy(vm, disk, mirror, mirror_shallow, mirror_reuse)))
if (!(job = qemuBlockJobDiskNewCopy(vm, disk, mirror, mirror_shallow, mirror_reuse, flags)))
goto endjob;
disk->mirrorState = VIR_DOMAIN_DISK_MIRROR_STATE_NONE;
......@@ -18814,7 +18814,8 @@ qemuDomainBlockCommit(virDomainPtr dom,
if (!(job = qemuBlockJobDiskNewCommit(vm, disk, top_parent, topSource,
baseSource,
flags & VIR_DOMAIN_BLOCK_COMMIT_DELETE)))
flags & VIR_DOMAIN_BLOCK_COMMIT_DELETE,
flags)))
goto endjob;
disk->mirrorState = VIR_DOMAIN_DISK_MIRROR_STATE_NONE;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册