Re: [PATCHv2] util: only register callbacks for CREATE operations in virnetdevmacvlan.c

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




On Apr 18, 2012, at 10:53 AM, Laine Stump wrote:

From: "D. Herrendoerfer" <d.herrendoerfer@xxxxxxxxxxxxxxxxxx>

I believe the following is the correct patch for this - when a guest
is started from a snapshot or from a saved image, qemuProcessStart is
called with VIR_NETDEV_VPORT_PROFILE_OP_RESTORE. From my reading of
the code, the callback will have been removed when the guest was
previously saved, so it will need to be re-added when it's restored.


Yes. I tested for this. In any case of a disassociation the callback is properly removed.

Dirk - please test this and let me know if it behaves properly.


I just posted an update to my initial patch - sorry for the delay, but I wanted to make
sure this does not create any other regressions.

My patch is basically identical to yours.
---------------------------------

Currently upon a migration a callback is created when a 802.1qbg link
is set to PREASSOCIATE, this should not happen because this is a no-op
on most switches, and does not lead to an ASSOCIATE state.  This patch
only creates callbacks when CREATE or RESTORE is requested.  Migration
and libvirtd restart scenarios are already handled elsewhere.

Signed-off-by: D. Herrendoerfer <d.herrendoerfer@xxxxxxxxxxxxxxxxxx>
---
src/util/virnetdevmacvlan.c |   13 +++++++++++--
1 file changed, 11 insertions(+), 2 deletions(-)

diff --git a/src/util/virnetdevmacvlan.c b/src/util/virnetdevmacvlan.c
index 326e29c..879d846 100644
--- a/src/util/virnetdevmacvlan.c
+++ b/src/util/virnetdevmacvlan.c
@@ -945,9 +945,18 @@ create_name:
        goto disassociate_exit;
    }

- if (virNetDevMacVLanVPortProfileRegisterCallback(cr_ifname, macaddress, - linkdev, vmuuid, virtPortProfile, vmOp) < 0 )
+    if (vmOp == VIR_NETDEV_VPORT_PROFILE_OP_CREATE ||
+        vmOp == VIR_NETDEV_VPORT_PROFILE_OP_RESTORE) {
+ /* Only directly register upon a create or restore (restarting + * a saved image) - migration and libvirtd restart are handled
+         * elsewhere.
+         */
+ if (virNetDevMacVLanVPortProfileRegisterCallback(cr_ifname, macaddress, + linkdev, vmuuid, + virtPortProfile,
+                                                         vmOp) < 0 )
        goto disassociate_exit;
+    }

    return rc;

--
1.7.10

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


DirkH

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


[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]