qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH 05/10] snapshot: create bdrv_all_find_snapshot h


From: Stefan Hajnoczi
Subject: Re: [Qemu-devel] [PATCH 05/10] snapshot: create bdrv_all_find_snapshot helper
Date: Tue, 17 Nov 2015 16:54:41 +0800
User-agent: Mutt/1.5.23 (2015-06-09)

On Tue, Nov 17, 2015 at 11:10:26AM +0300, Denis V. Lunev wrote:
> On 11/17/2015 10:22 AM, Stefan Hajnoczi wrote:
> >On Mon, Nov 16, 2015 at 06:24:36PM +0300, Denis V. Lunev wrote:
> >>@@ -2168,21 +2157,7 @@ void hmp_info_snapshots(Monitor *mon, const QDict 
> >>*qdict)
> >>      available_snapshots = g_new0(int, nb_sns);
> >>      total = 0;
> >>      for (i = 0; i < nb_sns; i++) {
> >>-        sn = &sn_tab[i];
> >>-        available = 1;
> >>-        bs1 = NULL;
> >>-
> >>-        while ((bs1 = bdrv_next(bs1))) {
> >>-            if (bdrv_can_snapshot(bs1) && bs1 != bs) {
> >>-                ret = bdrv_snapshot_find(bs1, sn_info, sn->id_str);
> >>-                if (ret < 0) {
> >>-                    available = 0;
> >>-                    break;
> >>-                }
> >>-            }
> >>-        }
> >>-
> >>-        if (available) {
> >>+        if (bdrv_all_find_snapshot(sn_tab[i].id_str, false, &bs1) == 0) {
> >bdrv_all_find_snapshot() doesn't do the bs1 != bs exclusion so the new
> >code behaves differently from the old code.  That seems like a bug.
> no. The result will be the same. This is a minor optimisation:
> - we get the first block device we can make snapshot on
> - we get snapshot list on that device
> - after that we start iterations over the list and removing not available
> snapshots on other devices
> This means that if bs == bs1 the check will be "always true"

Ah, I see.  Thanks!

Stefan

Attachment: signature.asc
Description: PGP signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]