diff options
author | Richard W.M. Jones <rjones@redhat.com> | 2012-09-04 15:34:35 +0100 |
---|---|---|
committer | Richard W.M. Jones <rjones@redhat.com> | 2012-09-04 15:36:29 +0100 |
commit | c4171ad58f61f72f5f6c6c8e711a7bcc19d20f75 (patch) | |
tree | c39e82b8e8846ec74a13d8795d5d7a857dfadb7b /src/launch-libvirt.c | |
parent | cc4b3139d17b98d734d98286bb698bb3b105da05 (diff) | |
download | libguestfs-c4171ad58f61f72f5f6c6c8e711a7bcc19d20f75.tar.gz libguestfs-c4171ad58f61f72f5f6c6c8e711a7bcc19d20f75.tar.xz libguestfs-c4171ad58f61f72f5f6c6c8e711a7bcc19d20f75.zip |
shutdown: Add 'check_for_errors' hint along the shutdown path.
This hint tells the backend whether anyone cares about errors when the
appliance is shut down.
Currently this only has any effect on the libvirt backend, where it
controls whether or not we use the VIR_DOMAIN_DESTROY_GRACEFUL flag.
Diffstat (limited to 'src/launch-libvirt.c')
-rw-r--r-- | src/launch-libvirt.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/src/launch-libvirt.c b/src/launch-libvirt.c index 04431641..37113633 100644 --- a/src/launch-libvirt.c +++ b/src/launch-libvirt.c @@ -1139,18 +1139,20 @@ ignore_errors (void *ignore, virErrorPtr ignore2) } static int -shutdown_libvirt (guestfs_h *g) +shutdown_libvirt (guestfs_h *g, int check_for_errors) { virConnectPtr conn = g->virt.connv; virDomainPtr dom = g->virt.domv; int ret = 0; + int flags; /* Note that we can be called back very early in launch (specifically * from launch_libvirt itself), when conn and dom might be NULL. */ if (dom != NULL) { - if (virDomainDestroyFlags (dom, VIR_DOMAIN_DESTROY_GRACEFUL) == -1) { + flags = check_for_errors ? VIR_DOMAIN_DESTROY_GRACEFUL : 0; + if (virDomainDestroyFlags (dom, flags) == -1) { libvirt_error (g, _("could not destroy libvirt domain")); ret = -1; } @@ -1220,7 +1222,7 @@ launch_libvirt (guestfs_h *g, const char *arg) } static int -shutdown_libvirt (guestfs_h *g) +shutdown_libvirt (guestfs_h *g, int check_for_errors) { NOT_IMPL (-1); } |