qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Stefan Hajnoczi <stefanha@redhat.com>
To: Wenchao Xia <xiawenc@linux.vnet.ibm.com>
Cc: kwolf@redhat.com, Stefan Hajnoczi <stefanha@gmail.com>,
	jcody@redhat.com, qemu-devel@nongnu.org, mreitz@redhat.com
Subject: Re: [Qemu-devel] [PATCH V7 4/6] qcow2: cancel the modification on fail in qcow2_snapshot_create()
Date: Thu, 2 Jan 2014 11:42:38 +0800	[thread overview]
Message-ID: <20140102034238.GA7317@stefanha-thinkpad> (raw)
In-Reply-To: <52B7D468.4060307@linux.vnet.ibm.com>

On Mon, Dec 23, 2013 at 02:12:56PM +0800, Wenchao Xia wrote:
>   I have reconsidered the roll back process, there is many case we
> should take care, so it is better to summarize a general rule to do such
> cancel operations. I suggest: do a series of roll back operations,
> when one fail, skip following roll back operation. For snapshot create,
> the create action is:
> allocate new L1 -> refcount+1 -> allocate sn_list -> update header
> The mirrored rollback action can be:
> deallocate L1 <- refcount-1 <- deallocate sn_list <- restore header
> 
> When fail happens in rollback action, simply stop following ones.
> If you agree, I'd like to reorganize the patch as above.

I agree.  When the steps depend on each other we should skip further
operations when an error is returned in the failure path.  If the steps
are independent we can still safely clean up the independent parts.

Stefan

  reply	other threads:[~2014-01-02  3:43 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-12-05 12:02 [Qemu-devel] [PATCH V7 0/6] qcow2: rollback the modification on fail in snapshot creation Wenchao Xia
2013-12-05 12:02 ` [Qemu-devel] [PATCH V7 1/6] snapshot: add parameter *errp in snapshot create Wenchao Xia
2013-12-20 14:26   ` Stefan Hajnoczi
2013-12-05 12:02 ` [Qemu-devel] [PATCH V7 2/6] qcow2: add error message in qcow2_write_snapshots() Wenchao Xia
2013-12-20 13:48   ` Stefan Hajnoczi
2013-12-05 12:02 ` [Qemu-devel] [PATCH V7 3/6] qcow2: do not free clusters when fail in header update in qcow2_write_snapshots Wenchao Xia
2013-12-05 12:02 ` [Qemu-devel] [PATCH V7 4/6] qcow2: cancel the modification on fail in qcow2_snapshot_create() Wenchao Xia
2013-12-20 14:20   ` Stefan Hajnoczi
2013-12-23  2:57     ` Wenchao Xia
2013-12-23  6:12       ` Wenchao Xia
2014-01-02  3:42         ` Stefan Hajnoczi [this message]
2013-12-05 12:02 ` [Qemu-devel] [PATCH V7 5/6] blkdebug: add debug events for snapshot Wenchao Xia
2013-12-05 12:02 ` [Qemu-devel] [PATCH V7 6/6] qemu-iotests: add test for qcow2 snapshot Wenchao Xia
2013-12-09  3:41 ` [Qemu-devel] [PATCH V7 0/6] qcow2: rollback the modification on fail in snapshot creation Wenchao Xia
2013-12-13  2:15 ` Wenchao Xia
2013-12-18  2:13 ` Wenchao Xia
2013-12-18 13:26   ` Stefan Hajnoczi
2013-12-20 14:27 ` Stefan Hajnoczi

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20140102034238.GA7317@stefanha-thinkpad \
    --to=stefanha@redhat.com \
    --cc=jcody@redhat.com \
    --cc=kwolf@redhat.com \
    --cc=mreitz@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=stefanha@gmail.com \
    --cc=xiawenc@linux.vnet.ibm.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).