[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen master] libxl: suspend: domain_suspend_callback_common xs errs
commit 62657e313189f9fe86ccd33414a5122de25595a3 Author: Ian Jackson <ian.jackson@xxxxxxxxxxxxx> AuthorDate: Thu Dec 5 19:08:34 2013 +0000 Commit: Ian Jackson <Ian.Jackson@xxxxxxxxxxxxx> CommitDate: Mon Mar 17 15:54:00 2014 +0000 libxl: suspend: domain_suspend_callback_common xs errs In domain_suspend_callback_common, use libxl__xs_transaction_start in a loop, rather than xs_transaction_start and a goto label. This will improve the error handling, but have no other semantic effect. Signed-off-by: Ian Jackson <Ian.Jackson@xxxxxxxxxxxxx> CC: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx> Acked-by: Ian Campbell <ian.campbell@xxxxxxxxxx> --- tools/libxl/libxl_dom.c | 19 +++++++++++-------- 1 files changed, 11 insertions(+), 8 deletions(-) diff --git a/tools/libxl/libxl_dom.c b/tools/libxl/libxl_dom.c index 78f1de7..9fec4e7 100644 --- a/tools/libxl/libxl_dom.c +++ b/tools/libxl/libxl_dom.c @@ -1050,6 +1050,7 @@ static void domain_suspend_callback_common(libxl__egc *egc, char *state = "suspend"; int watchdog; xs_transaction_t t; + int rc; /* Convenience aliases */ const uint32_t domid = dss->domid; @@ -1116,17 +1117,19 @@ static void domain_suspend_callback_common(libxl__egc *egc, */ if (!domain_suspend_pvcontrol_acked(state)) { LOG(ERROR, "guest didn't acknowledge suspend, cancelling request"); - retry_transaction: - t = xs_transaction_start(CTX->xsh); + for (;;) { + rc = libxl__xs_transaction_start(gc, &t); + if (rc) goto err; - state = libxl__domain_pvcontrol_read(gc, t, domid); + state = libxl__domain_pvcontrol_read(gc, t, domid); - if (!domain_suspend_pvcontrol_acked(state)) - libxl__domain_pvcontrol_write(gc, t, domid, ""); + if (!domain_suspend_pvcontrol_acked(state)) + libxl__domain_pvcontrol_write(gc, t, domid, ""); - if (!xs_transaction_end(CTX->xsh, t, 0)) - if (errno == EAGAIN) - goto retry_transaction; + rc = libxl__xs_transaction_commit(gc, &t); + if (!rc) break; + if (rc<0) goto err; + } } /* -- 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 |