[sheepdog] [PATCH 2/2] sheepdog: support 'qemu-img snapshot -a'
Kevin Wolf
kwolf at redhat.com
Thu Jun 6 14:46:29 CEST 2013
Am 06.06.2013 um 13:57 hat Liu Yuan geschrieben:
> Just call sd_create_branch() to rollback the image is good enough
>
> Cc: qemu-devel at nongnu.org
> Cc: MORITA Kazutaka <morita.kazutaka at lab.ntt.co.jp>
> Cc: Kevin Wolf <kwolf at redhat.com>
> Cc: Stefan Hajnoczi <stefanha at redhat.com>
> Signed-off-by: Liu Yuan <namei.unix at gmail.com>
> ---
> block/sheepdog.c | 8 +++++---
> 1 file changed, 5 insertions(+), 3 deletions(-)
>
> diff --git a/block/sheepdog.c b/block/sheepdog.c
> index 94218ac..cb5ca4a 100644
> --- a/block/sheepdog.c
> +++ b/block/sheepdog.c
> @@ -2072,9 +2072,11 @@ static int sd_snapshot_goto(BlockDriverState *bs, const char *snapshot_id)
> }
>
> if (!s->inode.vm_state_size) {
> - error_report("Invalid snapshot");
> - ret = -ENOENT;
> - goto out;
> + /* qemu-img asks us to rollback, we need to do it right now */
> + ret = sd_create_branch(s);
> + if (ret) {
> + goto out;
> + }
> }
I'm not sure how snapshots work internally for Sheepdog, but it seems
odd to me that you need to do this only for disk-only snapshots, but not
when the snapshot has VM state. (Also, note that 'qemu-img snapshot -a'
works on images with a VM state, so the comment doesn't seem to be
completely accurate)
Would you mind explaining to me how this works in detail?
Kevin
More information about the sheepdog
mailing list