Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:12.2
xen
snapshot-ioemu-delete.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File snapshot-ioemu-delete.patch of Package xen
Index: xen-4.1.2-testing/tools/ioemu-qemu-xen/xenstore.c =================================================================== --- xen-4.1.2-testing.orig/tools/ioemu-qemu-xen/xenstore.c +++ xen-4.1.2-testing/tools/ioemu-qemu-xen/xenstore.c @@ -978,6 +978,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.1.2-testing/tools/ioemu-qemu-xen/savevm.c =================================================================== --- xen-4.1.2-testing.orig/tools/ioemu-qemu-xen/savevm.c +++ xen-4.1.2-testing/tools/ioemu-qemu-xen/savevm.c @@ -1106,6 +1106,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.1.2-testing/tools/ioemu-qemu-xen/qemu-xen.h =================================================================== --- xen-4.1.2-testing.orig/tools/ioemu-qemu-xen/qemu-xen.h +++ xen-4.1.2-testing/tools/ioemu-qemu-xen/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;
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor