[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen master] libxc/save: introduce setup() and cleanup() on save
commit aed0d958c28d46af24ba08cb01a8e8e7146b30bb Author: Yang Hongyang <yanghy@xxxxxxxxxxxxxx> AuthorDate: Thu May 14 16:55:09 2015 +0800 Commit: Ian Campbell <ian.campbell@xxxxxxxxxx> CommitDate: Thu May 14 13:03:05 2015 +0100 libxc/save: introduce setup() and cleanup() on save introduce setup() and cleanup() which subsume the ctx->save.ops.{setup,cleanup}() calls. The SHADOW_OP_OFF hypercall is also included in the cleanup(). 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> CC: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> Reviewed-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> Acked-by: Ian Campbell <Ian.Campbell@xxxxxxxxxx> --- tools/libxc/xc_sr_save.c | 34 +++++++++++++++++++++++++++------- 1 files changed, 27 insertions(+), 7 deletions(-) diff --git a/tools/libxc/xc_sr_save.c b/tools/libxc/xc_sr_save.c index caa727d..f4ab5c5 100644 --- a/tools/libxc/xc_sr_save.c +++ b/tools/libxc/xc_sr_save.c @@ -637,6 +637,31 @@ static int send_domain_memory_nonlive(struct xc_sr_context *ctx) return rc; } +static int setup(struct xc_sr_context *ctx) +{ + int rc; + + rc = ctx->save.ops.setup(ctx); + if ( rc ) + goto err; + + rc = 0; + + err: + return rc; +} + +static void cleanup(struct xc_sr_context *ctx) +{ + xc_interface *xch = ctx->xch; + + xc_shadow_control(xch, ctx->domid, XEN_DOMCTL_SHADOW_OP_OFF, + NULL, 0, NULL, 0, NULL); + + if ( ctx->save.ops.cleanup(ctx) ) + PERROR("Failed to clean up"); +} + /* * Save a domain. */ @@ -648,7 +673,7 @@ static int save(struct xc_sr_context *ctx, uint16_t guest_type) IPRINTF("Saving domain %d, type %s", ctx->domid, dhdr_type_to_str(guest_type)); - rc = ctx->save.ops.setup(ctx); + rc = setup(ctx); if ( rc ) goto err; @@ -701,12 +726,7 @@ static int save(struct xc_sr_context *ctx, uint16_t guest_type) PERROR("Save failed"); done: - xc_shadow_control(xch, ctx->domid, XEN_DOMCTL_SHADOW_OP_OFF, - NULL, 0, NULL, 0, NULL); - - rc = ctx->save.ops.cleanup(ctx); - if ( rc ) - PERROR("Failed to clean up"); + cleanup(ctx); if ( saved_rc ) { -- 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 |