mirror of
https://github.com/libvirt/libvirt.git
synced 2025-02-25 18:55:26 -06:00
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: Peter Krempa <pkrempa@redhat.com> Reviewed-by: Ján Tomko <jtomko@redhat.com>
This commit is contained in:
parent
9ba804a1d1
commit
ccd4228aff
@ -252,7 +252,8 @@ qemuBlockJobDiskNew(virDomainObjPtr vm,
|
|||||||
qemuBlockJobDataPtr
|
qemuBlockJobDataPtr
|
||||||
qemuBlockJobDiskNewPull(virDomainObjPtr vm,
|
qemuBlockJobDiskNewPull(virDomainObjPtr vm,
|
||||||
virDomainDiskDefPtr disk,
|
virDomainDiskDefPtr disk,
|
||||||
virStorageSourcePtr base)
|
virStorageSourcePtr base,
|
||||||
|
unsigned int jobflags)
|
||||||
{
|
{
|
||||||
qemuDomainObjPrivatePtr priv = vm->privateData;
|
qemuDomainObjPrivatePtr priv = vm->privateData;
|
||||||
g_autoptr(qemuBlockJobData) job = NULL;
|
g_autoptr(qemuBlockJobData) job = NULL;
|
||||||
@ -269,6 +270,7 @@ qemuBlockJobDiskNewPull(virDomainObjPtr vm,
|
|||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
job->data.pull.base = base;
|
job->data.pull.base = base;
|
||||||
|
job->jobflags = jobflags;
|
||||||
|
|
||||||
if (qemuBlockJobRegister(job, vm, disk, true) < 0)
|
if (qemuBlockJobRegister(job, vm, disk, true) < 0)
|
||||||
return NULL;
|
return NULL;
|
||||||
@ -283,7 +285,8 @@ qemuBlockJobDiskNewCommit(virDomainObjPtr vm,
|
|||||||
virStorageSourcePtr topparent,
|
virStorageSourcePtr topparent,
|
||||||
virStorageSourcePtr top,
|
virStorageSourcePtr top,
|
||||||
virStorageSourcePtr base,
|
virStorageSourcePtr base,
|
||||||
bool delete_imgs)
|
bool delete_imgs,
|
||||||
|
unsigned int jobflags)
|
||||||
{
|
{
|
||||||
qemuDomainObjPrivatePtr priv = vm->privateData;
|
qemuDomainObjPrivatePtr priv = vm->privateData;
|
||||||
g_autoptr(qemuBlockJobData) job = NULL;
|
g_autoptr(qemuBlockJobData) job = NULL;
|
||||||
@ -307,6 +310,7 @@ qemuBlockJobDiskNewCommit(virDomainObjPtr vm,
|
|||||||
job->data.commit.top = top;
|
job->data.commit.top = top;
|
||||||
job->data.commit.base = base;
|
job->data.commit.base = base;
|
||||||
job->data.commit.deleteCommittedImages = delete_imgs;
|
job->data.commit.deleteCommittedImages = delete_imgs;
|
||||||
|
job->jobflags = jobflags;
|
||||||
|
|
||||||
if (qemuBlockJobRegister(job, vm, disk, true) < 0)
|
if (qemuBlockJobRegister(job, vm, disk, true) < 0)
|
||||||
return NULL;
|
return NULL;
|
||||||
@ -350,7 +354,8 @@ qemuBlockJobDiskNewCopy(virDomainObjPtr vm,
|
|||||||
virDomainDiskDefPtr disk,
|
virDomainDiskDefPtr disk,
|
||||||
virStorageSourcePtr mirror,
|
virStorageSourcePtr mirror,
|
||||||
bool shallow,
|
bool shallow,
|
||||||
bool reuse)
|
bool reuse,
|
||||||
|
unsigned int jobflags)
|
||||||
{
|
{
|
||||||
qemuDomainObjPrivatePtr priv = vm->privateData;
|
qemuDomainObjPrivatePtr priv = vm->privateData;
|
||||||
g_autoptr(qemuBlockJobData) job = NULL;
|
g_autoptr(qemuBlockJobData) job = NULL;
|
||||||
@ -371,6 +376,8 @@ qemuBlockJobDiskNewCopy(virDomainObjPtr vm,
|
|||||||
if (shallow && !reuse)
|
if (shallow && !reuse)
|
||||||
job->data.copy.shallownew = true;
|
job->data.copy.shallownew = true;
|
||||||
|
|
||||||
|
job->jobflags = jobflags;
|
||||||
|
|
||||||
if (qemuBlockJobRegister(job, vm, disk, true) < 0)
|
if (qemuBlockJobRegister(job, vm, disk, true) < 0)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
|
@ -176,7 +176,8 @@ qemuBlockJobDiskNew(virDomainObjPtr vm,
|
|||||||
qemuBlockJobDataPtr
|
qemuBlockJobDataPtr
|
||||||
qemuBlockJobDiskNewPull(virDomainObjPtr vm,
|
qemuBlockJobDiskNewPull(virDomainObjPtr vm,
|
||||||
virDomainDiskDefPtr disk,
|
virDomainDiskDefPtr disk,
|
||||||
virStorageSourcePtr base);
|
virStorageSourcePtr base,
|
||||||
|
unsigned int jobflags);
|
||||||
|
|
||||||
qemuBlockJobDataPtr
|
qemuBlockJobDataPtr
|
||||||
qemuBlockJobDiskNewCommit(virDomainObjPtr vm,
|
qemuBlockJobDiskNewCommit(virDomainObjPtr vm,
|
||||||
@ -184,7 +185,8 @@ qemuBlockJobDiskNewCommit(virDomainObjPtr vm,
|
|||||||
virStorageSourcePtr topparent,
|
virStorageSourcePtr topparent,
|
||||||
virStorageSourcePtr top,
|
virStorageSourcePtr top,
|
||||||
virStorageSourcePtr base,
|
virStorageSourcePtr base,
|
||||||
bool delete_imgs);
|
bool delete_imgs,
|
||||||
|
unsigned int jobflags);
|
||||||
|
|
||||||
qemuBlockJobDataPtr
|
qemuBlockJobDataPtr
|
||||||
qemuBlockJobNewCreate(virDomainObjPtr vm,
|
qemuBlockJobNewCreate(virDomainObjPtr vm,
|
||||||
@ -197,7 +199,8 @@ qemuBlockJobDiskNewCopy(virDomainObjPtr vm,
|
|||||||
virDomainDiskDefPtr disk,
|
virDomainDiskDefPtr disk,
|
||||||
virStorageSourcePtr mirror,
|
virStorageSourcePtr mirror,
|
||||||
bool shallow,
|
bool shallow,
|
||||||
bool reuse);
|
bool reuse,
|
||||||
|
unsigned int jobflags);
|
||||||
|
|
||||||
qemuBlockJobDataPtr
|
qemuBlockJobDataPtr
|
||||||
qemuBlockJobDiskNewBackup(virDomainObjPtr vm,
|
qemuBlockJobDiskNewBackup(virDomainObjPtr vm,
|
||||||
|
@ -17706,7 +17706,7 @@ qemuDomainBlockPullCommon(virDomainObjPtr vm,
|
|||||||
speed <<= 20;
|
speed <<= 20;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!(job = qemuBlockJobDiskNewPull(vm, disk, baseSource)))
|
if (!(job = qemuBlockJobDiskNewPull(vm, disk, baseSource, flags)))
|
||||||
goto endjob;
|
goto endjob;
|
||||||
|
|
||||||
if (blockdev) {
|
if (blockdev) {
|
||||||
@ -18393,7 +18393,7 @@ qemuDomainBlockCopyCommon(virDomainObjPtr vm,
|
|||||||
goto endjob;
|
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;
|
goto endjob;
|
||||||
|
|
||||||
disk->mirrorState = VIR_DOMAIN_DISK_MIRROR_STATE_NONE;
|
disk->mirrorState = VIR_DOMAIN_DISK_MIRROR_STATE_NONE;
|
||||||
@ -18814,7 +18814,8 @@ qemuDomainBlockCommit(virDomainPtr dom,
|
|||||||
|
|
||||||
if (!(job = qemuBlockJobDiskNewCommit(vm, disk, top_parent, topSource,
|
if (!(job = qemuBlockJobDiskNewCommit(vm, disk, top_parent, topSource,
|
||||||
baseSource,
|
baseSource,
|
||||||
flags & VIR_DOMAIN_BLOCK_COMMIT_DELETE)))
|
flags & VIR_DOMAIN_BLOCK_COMMIT_DELETE,
|
||||||
|
flags)))
|
||||||
goto endjob;
|
goto endjob;
|
||||||
|
|
||||||
disk->mirrorState = VIR_DOMAIN_DISK_MIRROR_STATE_NONE;
|
disk->mirrorState = VIR_DOMAIN_DISK_MIRROR_STATE_NONE;
|
||||||
|
Loading…
Reference in New Issue
Block a user