diff options
author | Ian Campbell <ian.campbell@citrix.com> | 2012-07-23 13:09:43 +0100 |
---|---|---|
committer | Ian Campbell <ian.campbell@citrix.com> | 2012-07-23 13:09:43 +0100 |
commit | a97def2ebbb36191e34cd7d19b94011e8a23b189 (patch) | |
tree | f6ac42eab9d89c035b2611a5bdf9b8cd6bf0509d /tools/libxl/libxl_dm.c | |
parent | 925a783ab52af794a55670ba75d8cafe3048c728 (diff) | |
download | xen-a97def2ebbb36191e34cd7d19b94011e8a23b189.tar.gz xen-a97def2ebbb36191e34cd7d19b94011e8a23b189.tar.bz2 xen-a97def2ebbb36191e34cd7d19b94011e8a23b189.zip |
libxl: rename stubdomain when renaming domain.
Otherwise after a localhost migrate of an HVM domain with a stubdomain we end
up with domains called "FOO" and "FOO--incoming-dm". This because we initially
create the domains as "FOO--incoming" and then rename to "FOO" inorder to
maintain the uniqueness of domain names on a host.
In this state a second attempt to migrate will fail upon attempting to create
a new domain named "FOO--incoming-dm"
Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
Committed-by: Ian Campbell <ian.campbell@citrix.com>
Diffstat (limited to 'tools/libxl/libxl_dm.c')
-rw-r--r-- | tools/libxl/libxl_dm.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/tools/libxl/libxl_dm.c b/tools/libxl/libxl_dm.c index 6a041f96b9..0591c1c909 100644 --- a/tools/libxl/libxl_dm.c +++ b/tools/libxl/libxl_dm.c @@ -698,6 +698,11 @@ static void spaw_stubdom_pvqemu_destroy_cb(libxl__egc *egc, libxl__destroy_domid_state *dis, int rc); +char *libxl__stub_dm_name(libxl__gc *gc, const char *guest_name) +{ + return libxl__sprintf(gc, "%s-dm", guest_name); +} + void libxl__spawn_stub_dm(libxl__egc *egc, libxl__stub_dm_spawn_state *sdss) { STATE_AO_GC(sdss->dm.spawn.ao); @@ -727,7 +732,7 @@ void libxl__spawn_stub_dm(libxl__egc *egc, libxl__stub_dm_spawn_state *sdss) libxl_domain_create_info_init(&dm_config->c_info); dm_config->c_info.type = LIBXL_DOMAIN_TYPE_PV; - dm_config->c_info.name = libxl__sprintf(gc, "%s-dm", + dm_config->c_info.name = libxl__stub_dm_name(gc, libxl__domid_to_name(gc, guest_domid)); dm_config->c_info.ssidref = guest_config->b_info.device_model_ssidref; |