From: Eric Blake <eblake@redhat.com>
To: Kevin Wolf <kwolf@redhat.com>
Cc: qemu-devel@nongnu.org, anthony@codemonkey.ws
Subject: Re: [Qemu-devel] [PULL 15/33] snapshot: distinguish id and name in snapshot delete
Date: Fri, 13 Sep 2013 12:42:24 -0600 [thread overview]
Message-ID: <52335C90.4060006@redhat.com> (raw)
In-Reply-To: <1379073063-14963-16-git-send-email-kwolf@redhat.com>
[-- Attachment #1: Type: text/plain, Size: 3143 bytes --]
On 09/13/2013 05:50 AM, Kevin Wolf wrote:
> From: Wenchao Xia <xiawenc@linux.vnet.ibm.com>
>
> Snapshot creation actually already distinguish id and name since it take
> a structured parameter *sn, but delete can't. Later an accurate delete
> is needed in qmp_transaction abort and blockdev-snapshot-delete-sync,
> so change its prototype. Also *errp is added to tip error, but return
> value is kepted to let caller check what kind of error happens. Existing
s/kepted/kept/
> caller for it are savevm, delvm and qemu-img, they are not impacted by
> introducing a new function bdrv_snapshot_delete_by_id_or_name(), which
> check the return value and do the operation again.
>
> Before this patch:
> For qcow2, it search id first then name to find the one to delete.
> For rbd, it search name.
> For sheepdog, it does nothing.
>
> After this patch:
> For qcow2, logic is the same by call it twice in caller.
> For rbd, it always fails in delete with id, but still search for name
> in second try, no change to user.
>
> Some code for *errp is based on Pavel's patch.
>
> Signed-off-by: Wenchao Xia <xiawenc@linux.vnet.ibm.com>
> Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
> ---
>
> static int qemu_rbd_snap_remove(BlockDriverState *bs,
> - const char *snapshot_name)
> + const char *snapshot_id,
> + const char *snapshot_name,
> + Error **errp)
> {
> BDRVRBDState *s = bs->opaque;
> int r;
>
> + if (!snapshot_name) {
> + error_setg(errp, "rbd need a valid snapshot name");
s/need/needs/
> + return -EINVAL;
> + }
> +
> + /* If snapshot_id is specified, it must be equal to name, see
> + qemu_rbd_snap_list() */
> + if (snapshot_id && strcmp(snapshot_id, snapshot_name)) {
> + error_setg(errp,
> + "rbd do not support snapshot id, it should be NULL or "
s/do/does/
> -int bdrv_snapshot_delete(BlockDriverState *bs, const char *snapshot_id)
> +/**
> + * Delete an internal snapshot by @snapshot_id and @name.
> + * @bs: block device used in the operation
> + * @snapshot_id: unique snapshot ID, or NULL
> + * @name: snapshot name, or NULL
> + * @errp: location to store error
> + *
> + * If both @snapshot_id and @name are specified, delete the first one with
> + * id @snapshot_id and name @name.
> + * If only @snapshot_id is specified, delete the first one with id
> + * @snapshot_id.
> + * If only @name is specified, delete the first one with name @name.
> + * if none is specified, return -ENINVAL.
s/ENINVAL/EINVAL/
[Given that this is already in the pull request phase, I'm fine if the
typo in the commit message stays, and if the remaining typos are cleaned
up in a separate followup patch, rather than delaying this series any
longer - my fault for not reviewing sooner]
--
Eric Blake eblake redhat com +1-919-301-3266
Libvirt virtualization library http://libvirt.org
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 621 bytes --]
next prev parent reply other threads:[~2013-09-13 18:42 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-09-13 11:50 [Qemu-devel] [PULL 00/33] Block patches Kevin Wolf
2013-09-13 11:50 ` [Qemu-devel] [PULL 01/33] qcow2: Pass discard type to qcow2_discard_clusters() Kevin Wolf
2013-09-13 11:50 ` [Qemu-devel] [PULL 02/33] qcow2: Discard VM state in active L1 after creating snapshot Kevin Wolf
2013-09-13 11:50 ` [Qemu-devel] [PULL 03/33] raw-win32.c: Fix incorrect handling behaviour of small block files Kevin Wolf
2013-09-13 11:50 ` [Qemu-devel] [PULL 04/33] block: Image file option amendment Kevin Wolf
2013-09-13 11:50 ` [Qemu-devel] [PULL 05/33] qcow2-cache: Empty cache Kevin Wolf
2013-09-13 11:50 ` [Qemu-devel] [PULL 06/33] qcow2-cluster: Expand zero clusters Kevin Wolf
2013-09-13 11:50 ` [Qemu-devel] [PULL 07/33] qcow2: Save refcount order in BDRVQcowState Kevin Wolf
2013-09-13 11:50 ` [Qemu-devel] [PULL 08/33] qcow2: Implement bdrv_amend_options Kevin Wolf
2013-09-13 11:50 ` [Qemu-devel] [PULL 09/33] qemu-iotest: qcow2 image option amendment Kevin Wolf
2013-09-13 11:50 ` [Qemu-devel] [PULL 10/33] qemu-iotests: add unix socket help program Kevin Wolf
2013-09-13 11:50 ` [Qemu-devel] [PULL 11/33] qemu-iotests: add infrastructure of fd passing via SCM Kevin Wolf
2013-09-13 11:50 ` [Qemu-devel] [PULL 12/33] qemu-iotests: add tests for runtime fd passing via SCM rights Kevin Wolf
2013-09-13 18:30 ` Eric Blake
2013-09-13 11:50 ` [Qemu-devel] [PULL 13/33] qemu-iotests: New test case in 061 Kevin Wolf
2013-09-13 11:50 ` [Qemu-devel] [PULL 14/33] snapshot: new function bdrv_snapshot_find_by_id_and_name() Kevin Wolf
2013-09-13 11:50 ` [Qemu-devel] [PULL 15/33] snapshot: distinguish id and name in snapshot delete Kevin Wolf
2013-09-13 18:42 ` Eric Blake [this message]
2013-09-13 11:50 ` [Qemu-devel] [PULL 16/33] qmp: add internal snapshot support in qmp_transaction Kevin Wolf
2013-09-13 11:50 ` [Qemu-devel] [PULL 17/33] qmp: add interface blockdev-snapshot-internal-sync Kevin Wolf
2013-09-13 11:50 ` [Qemu-devel] [PULL 18/33] qmp: add interface blockdev-snapshot-delete-internal-sync Kevin Wolf
2013-09-13 11:50 ` [Qemu-devel] [PULL 19/33] hmp: add interface hmp_snapshot_blkdev_internal Kevin Wolf
2013-09-13 11:50 ` [Qemu-devel] [PULL 20/33] hmp: add interface hmp_snapshot_delete_blkdev_internal Kevin Wolf
2013-09-13 11:50 ` [Qemu-devel] [PULL 21/33] qemu-iotests: add 057 internal snapshot for block device test case Kevin Wolf
2013-09-13 11:50 ` [Qemu-devel] [PULL 22/33] bdrv: Use "Error" for opening images Kevin Wolf
2013-09-13 11:50 ` [Qemu-devel] [PULL 23/33] bdrv: Use "Error" for creating images Kevin Wolf
2013-09-13 11:50 ` [Qemu-devel] [PULL 24/33] block: Error parameter for open functions Kevin Wolf
2013-09-13 11:50 ` [Qemu-devel] [PULL 25/33] block: Error parameter for create functions Kevin Wolf
2013-09-13 11:50 ` [Qemu-devel] [PULL 26/33] qemu-img create: Emit filename on error Kevin Wolf
2013-09-13 11:50 ` [Qemu-devel] [PULL 27/33] qcow2: Use Error parameter Kevin Wolf
2013-09-13 11:50 ` [Qemu-devel] [PULL 28/33] qemu-iotests: Adjustments due to error propagation Kevin Wolf
2013-09-13 11:50 ` [Qemu-devel] [PULL 29/33] coroutine: add ./configure --disable-coroutine-pool Kevin Wolf
2013-09-13 11:51 ` [Qemu-devel] [PULL 30/33] qemu-img: fix invalid JSON Kevin Wolf
2013-09-13 11:51 ` [Qemu-devel] [PULL 31/33] qemu-iotests: Cleanup test image in test number 007 Kevin Wolf
2013-09-13 11:51 ` [Qemu-devel] [PULL 32/33] block: Assert validity of BdrvActionOps Kevin Wolf
2013-09-13 11:51 ` [Qemu-devel] [PULL 33/33] qemu-iotests: Fix test 038 Kevin Wolf
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=52335C90.4060006@redhat.com \
--to=eblake@redhat.com \
--cc=anthony@codemonkey.ws \
--cc=kwolf@redhat.com \
--cc=qemu-devel@nongnu.org \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.