setName() writes the new name to xenstore/Dompath too, so that those read domname from xenstore (like 'virsh list') could get correct value. 2nd hunk prevents writing xenstore if not "checkpoint", otherwise, vm destroyed but there is still VM entry in xenstore. Signed-off-by: Chunyan Liu Index: xen-4.2.0-testing/tools/python/xen/xend/XendDomainInfo.py =================================================================== --- xen-4.2.0-testing.orig/tools/python/xen/xend/XendDomainInfo.py +++ xen-4.2.0-testing/tools/python/xen/xend/XendDomainInfo.py @@ -1947,6 +1947,8 @@ class XendDomainInfo: self.info['name_label'] = name if to_store: self.storeVm("name", name) + if self.dompath: + self.storeDom("name", name) def getName(self): return self.info['name_label'] Index: xen-4.2.0-testing/tools/python/xen/xend/XendCheckpoint.py =================================================================== --- xen-4.2.0-testing.orig/tools/python/xen/xend/XendCheckpoint.py +++ xen-4.2.0-testing/tools/python/xen/xend/XendCheckpoint.py @@ -172,7 +172,10 @@ def save(fd, dominfo, network, live, dst dominfo.destroy() dominfo.testDeviceComplete() try: - dominfo.setName(domain_name) + if checkpoint: + dominfo.setName(domain_name) + else: + dominfo.setName(domain_name, False) except VmError: # Ignore this. The name conflict (hopefully) arises because we # are doing localhost migration; if we are doing a suspend of a