[libvirt] [PATCH v9 2/3] qom: call class destructor before unparent

2013-03-21 Thread Michael S. Tsirkin
Make sure object is valid when destructor is called.

Signed-off-by: Michael S. Tsirkin m...@redhat.com
---
 qom/object.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/qom/object.c b/qom/object.c
index 3d638ff..a0e3cbe 100644
--- a/qom/object.c
+++ b/qom/object.c
@@ -363,12 +363,12 @@ static void object_property_del_child(Object *obj, Object 
*child, Error **errp)
 void object_unparent(Object *obj)
 {
 object_ref(obj);
-if (obj-parent) {
-object_property_del_child(obj-parent, obj, NULL);
-}
 if (obj-class-unparent) {
 (obj-class-unparent)(obj);
 }
+if (obj-parent) {
+object_property_del_child(obj-parent, obj, NULL);
+}
 object_unref(obj);
 }
 
-- 
MST

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list


Re: [libvirt] [PATCH v9 2/3] qom: call class destructor before unparent

2013-03-21 Thread Paolo Bonzini
Il 21/03/2013 13:07, Michael S. Tsirkin ha scritto:
 Make sure object is valid when destructor is called.

Make sure the object still has a canonical path while the unparent
callback is running.

Otherwise, the series looks good.

Paolo

 Signed-off-by: Michael S. Tsirkin m...@redhat.com
 ---
  qom/object.c | 6 +++---
  1 file changed, 3 insertions(+), 3 deletions(-)
 
 diff --git a/qom/object.c b/qom/object.c
 index 3d638ff..a0e3cbe 100644
 --- a/qom/object.c
 +++ b/qom/object.c
 @@ -363,12 +363,12 @@ static void object_property_del_child(Object *obj, 
 Object *child, Error **errp)
  void object_unparent(Object *obj)
  {
  object_ref(obj);
 -if (obj-parent) {
 -object_property_del_child(obj-parent, obj, NULL);
 -}
  if (obj-class-unparent) {
  (obj-class-unparent)(obj);
  }
 +if (obj-parent) {
 +object_property_del_child(obj-parent, obj, NULL);
 +}
  object_unref(obj);
  }
  
 

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list


Re: [libvirt] [PATCH v9 2/3] qom: call class destructor before unparent

2013-03-21 Thread Michael S. Tsirkin
On Thu, Mar 21, 2013 at 01:25:50PM +0100, Paolo Bonzini wrote:
 Il 21/03/2013 13:07, Michael S. Tsirkin ha scritto:
  Make sure object is valid when destructor is called.
 
 Make sure the object still has a canonical path while the unparent
 callback is running.
 
 Otherwise, the series looks good.
 
 Paolo

Worth respinning for?

  Signed-off-by: Michael S. Tsirkin m...@redhat.com
  ---
   qom/object.c | 6 +++---
   1 file changed, 3 insertions(+), 3 deletions(-)
  
  diff --git a/qom/object.c b/qom/object.c
  index 3d638ff..a0e3cbe 100644
  --- a/qom/object.c
  +++ b/qom/object.c
  @@ -363,12 +363,12 @@ static void object_property_del_child(Object *obj, 
  Object *child, Error **errp)
   void object_unparent(Object *obj)
   {
   object_ref(obj);
  -if (obj-parent) {
  -object_property_del_child(obj-parent, obj, NULL);
  -}
   if (obj-class-unparent) {
   (obj-class-unparent)(obj);
   }
  +if (obj-parent) {
  +object_property_del_child(obj-parent, obj, NULL);
  +}
   object_unref(obj);
   }
   
  

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list


Re: [libvirt] [PATCH v9 2/3] qom: call class destructor before unparent

2013-03-21 Thread Paolo Bonzini
Il 21/03/2013 13:30, Michael S. Tsirkin ha scritto:
 On Thu, Mar 21, 2013 at 01:25:50PM +0100, Paolo Bonzini wrote:
  Il 21/03/2013 13:07, Michael S. Tsirkin ha scritto:
   Make sure object is valid when destructor is called.
  
  Make sure the object still has a canonical path while the unparent
  callback is running.
  
  Otherwise, the series looks good.
  
 
 Worth respinning for?

If it goes through the pci branch, of course not but still make the
change.  Otherwise, probably not.

Paolo

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list