On 30.05.2019 12:34, Michal Privoznik wrote:
> Some driver have concept of jobs (e.g. qemu, lxc, libxl and vz).
> This means that whenever something wants to modify a domain
> object it needs to acquire job (to mutually exclude with other
> threads trying to modify the same object). And aforementioned
> drivers do that more or less successfully. Except for
> virDomainObjListAdd() which may modify the domain object without
> acquiring job. This is harmful because if a thread that's
> executing say an API in qemu driver unlock a domain object and
> locks it again the object has changed even though the thread
> acquired job before.
>
> Signed-off-by: Michal Privoznik <mpriv...@redhat.com>
> ---
> src/bhyve/bhyve_driver.c | 10 ++++++----
> src/conf/virdomainobjlist.c | 29 +++++++----------------------
> src/conf/virdomainobjlist.h | 3 +--
> src/libxl/libxl_driver.c | 22 ++++++++++++----------
> src/libxl/libxl_migration.c | 12 ++++++------
> src/lxc/lxc_driver.c | 10 +++++-----
> src/openvz/openvz_conf.c | 12 ++++++------
> src/openvz/openvz_driver.c | 17 +++++++++--------
> src/qemu/qemu_driver.c | 22 +++++++++++-----------
> src/qemu/qemu_migration.c | 6 +++---
> src/test/test_driver.c | 21 ++++++++++++---------
> src/vmware/vmware_conf.c | 4 ++--
> src/vmware/vmware_driver.c | 9 ++++-----
> src/vz/vz_sdk.c | 4 +++-
> 14 files changed, 87 insertions(+), 94 deletions(-)
>
Let's remove now unused VIR_DOMAIN_OBJ_LIST_ADD_LIVE entirely.
diff --git a/src/conf/virdomainobjlist.h b/src/conf/virdomainobjlist.h
index 552a7cf..54e7871 100644
--- a/src/conf/virdomainobjlist.h
+++ b/src/conf/virdomainobjlist.h
@@ -38,8 +38,7 @@ virDomainObjPtr
virDomainObjListFindByName(virDomainObjListPtr doms,
const char *name);
enum {
- VIR_DOMAIN_OBJ_LIST_ADD_LIVE = (1 << 0),
- VIR_DOMAIN_OBJ_LIST_ADD_CHECK_LIVE = (1 << 1),
+ VIR_DOMAIN_OBJ_LIST_ADD_CHECK_LIVE = (1 << 0),
};
virDomainObjPtr virDomainObjListAdd(virDomainObjListPtr doms,
virDomainDefPtr def,
Reviewed-by: Nikolay Shirokovskiy <nshirokovs...@virtuozzo.com>
--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list