[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen master] libxl/remus: introduce libxl__remus_teardown
commit c3e886a1bb6341fb1cea2e696c8fd7e02992bace Author: Yang Hongyang <yanghy@xxxxxxxxxxxxxx> AuthorDate: Fri Jul 10 15:11:38 2015 +0800 Commit: Ian Campbell <ian.campbell@xxxxxxxxxx> CommitDate: Tue Jul 21 14:10:23 2015 +0100 libxl/remus: introduce libxl__remus_teardown introduce libxl__remus_teardown to teardown Remus devices. Signed-off-by: Yang Hongyang <yanghy@xxxxxxxxxxxxxx> CC: Ian Campbell <Ian.Campbell@xxxxxxxxxx> CC: Ian Jackson <Ian.Jackson@xxxxxxxxxxxxx> CC: Wei Liu <wei.liu2@xxxxxxxxxx> Acked-by: Ian Campbell <Ian.Campbell@xxxxxxxxxx> --- tools/libxl/libxl_dom.c | 28 ++++++++++++++++++++-------- 1 files changed, 20 insertions(+), 8 deletions(-) diff --git a/tools/libxl/libxl_dom.c b/tools/libxl/libxl_dom.c index 3628641..601d5cc 100644 --- a/tools/libxl/libxl_dom.c +++ b/tools/libxl/libxl_dom.c @@ -1868,6 +1868,9 @@ static void save_device_model_datacopier_done(libxl__egc *egc, dss->save_dm_callback(egc, dss, our_rc); } +static void libxl__remus_teardown(libxl__egc *egc, + libxl__domain_suspend_state *dss, + int rc); static void remus_teardown_done(libxl__egc *egc, libxl__remus_devices_state *rds, int rc); @@ -1886,17 +1889,26 @@ static void domain_save_done(libxl__egc *egc, xc_suspend_evtchn_release(CTX->xch, CTX->xce, domid, dss->guest_evtchn.port, &dss->guest_evtchn_lockfd); - if (!dss->remus) { - dss->callback(egc, dss, rc); + if (dss->remus) { + /* + * With Remus, if we reach this point, it means either + * backup died or some network error occurred preventing us + * from sending checkpoints. Teardown the network buffers and + * release netlink resources. This is an async op. + */ + libxl__remus_teardown(egc, dss, rc); return; } - /* - * With Remus, if we reach this point, it means either - * backup died or some network error occurred preventing us - * from sending checkpoints. Teardown the network buffers and - * release netlink resources. This is an async op. - */ + dss->callback(egc, dss, rc); +} + +static void libxl__remus_teardown(libxl__egc *egc, + libxl__domain_suspend_state *dss, + int rc) +{ + EGC_GC; + LOG(WARN, "Remus: Domain suspend terminated with rc %d," " teardown Remus devices...", rc); dss->rds.callback = remus_teardown_done; -- generated by git-patchbot for /home/xen/git/xen.git#master _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |