xen/snapshot-ioemu-delete.patch
Charles Arnold 514b8cf8ec - bnc#556939 - Improve device map cleanup code in domUloader
- bnc# 578910 - xm block-detach does not cleanup xenstore
  hotplug-cleanup-fix.patch  

- bnc#579361 - Windows Server 2003 cannot wake up from stand by in 
  sp1 
  hibernate.patch

- fate#308852: XEN CPU Pools
  cpupools-core.patch
  cpupools-core-fixup.patch
  keyhandler-alternative.patch
  cpu-pools-libxc.patch
  cpu-pools-python.patch
  cpu-pools-libxen.patch
  cpu-pools-xmtest.patch
  cpu-pools-docs.patch

- bnc#558760: Disable scsi devices when PV drivers are loaded. 

- Update to changeset 20951 Xen 4.0.0 RC4 for sle11-sp1 beta5. 

- bnc#572146 - SLES11 SP1 beta 2 Xen - BUG: soft lockup - CPU#31 
  stuck for 61s! [kstop/31:4512] 
  cpuidle-hint-v3.patch

OBS-URL: https://build.opensuse.org/package/show/Virtualization/xen?expand=0&rev=31
2010-03-01 15:05:50 +00:00

76 lines
2.6 KiB
Diff

Index: xen-4.0.0-testing/tools/ioemu-remote/xenstore.c
===================================================================
--- xen-4.0.0-testing.orig/tools/ioemu-remote/xenstore.c
+++ xen-4.0.0-testing/tools/ioemu-remote/xenstore.c
@@ -912,6 +912,18 @@ static void xenstore_process_dm_command_
}
snapshot_name = xs_read(xsh, XBT_NULL, path, &len);
+ } else if (!strncmp(command, "snapshot-delete", len)) {
+ if (pasprintf(&path,
+ "/local/domain/0/device-model/%u/parameter", domid) == -1) {
+ fprintf(logfile, "out of memory reading dm command parameter\n");
+ goto out;
+ }
+ par = xs_read(xsh, XBT_NULL, path, &len);
+ if (!par)
+ goto out;
+ if (delete_disk_snapshots(par) == 0)
+ xenstore_record_dm_state("snapshot-deleted");
+ free(par);
} else if (!strncmp(command, "continue", len)) {
fprintf(logfile, "dm-command: continue after state save\n");
xen_pause_requested = 0;
Index: xen-4.0.0-testing/tools/ioemu-remote/savevm.c
===================================================================
--- xen-4.0.0-testing.orig/tools/ioemu-remote/savevm.c
+++ xen-4.0.0-testing/tools/ioemu-remote/savevm.c
@@ -1096,6 +1096,35 @@ the_end:
return ret;
}
+int delete_disk_snapshots(const char* name)
+{
+ BlockDriverState *bs, *bs1;
+ int i, ret;
+
+ bs = get_bs_snapshots();
+ if (!bs) {
+ xenstore_record_dm_error("No block device supports snapshots");
+ return -1;
+ }
+
+ for(i = 0; i <= nb_drives; i++) {
+ bs1 = drives_table[i].bdrv;
+ if (bdrv_has_snapshot(bs1)) {
+ ret = bdrv_snapshot_delete(bs1, name);
+ if (ret < 0) {
+ if (ret == -ENOTSUP)
+ fprintf(stderr, "Snapshots not supported on device '%s'\n",
+ bdrv_get_device_name(bs1));
+ else
+ fprintf(stderr, "Error %d while deleting snapshot on "
+ "'%s'\n", ret, bdrv_get_device_name(bs1));
+ }
+ }
+ }
+
+ return 0;
+}
+
#ifndef CONFIG_DM
void do_savevm(const char *name)
Index: xen-4.0.0-testing/tools/ioemu-remote/qemu-xen.h
===================================================================
--- xen-4.0.0-testing.orig/tools/ioemu-remote/qemu-xen.h
+++ xen-4.0.0-testing/tools/ioemu-remote/qemu-xen.h
@@ -42,6 +42,7 @@ enum {
/* xen-vl-extra.c */
int save_disk_snapshots(const char* name);
+int delete_disk_snapshots(const char* name);
/* helper2.c */
extern long time_offset;