]> xenbits.xensource.com Git - qemu-xen.git/commit
blockdev: Allow external snapshots everywhere
authorMax Reitz <mreitz@redhat.com>
Tue, 18 Feb 2020 10:34:36 +0000 (11:34 +0100)
committerKevin Wolf <kwolf@redhat.com>
Tue, 18 Feb 2020 10:55:38 +0000 (11:55 +0100)
commitca08d937e886aea7b9ce2c05d41e5c1aeec07a9f
tree743913949e9d21c1d2f7f3ccaf6c2cd229088111
parent74e4a8a9614a96a7b7e34778d33e1f05a30d312d
blockdev: Allow external snapshots everywhere

There is no good reason why we would allow external snapshots only on
the first non-filter node in a chain.  Parent BDSs should not care
whether their child is replaced by a snapshot.  (If they do care, they
should announce that via freezing the chain, which is checked in
bdrv_append() through bdrv_set_backing_hd().)

Before we had bdrv_is_first_non_filter() here (since 212a5a8f095), there
was a special function bdrv_check_ext_snapshot() that allowed snapshots
by default, but block drivers could override this.  Only blkverify did
so, however.

It is not clear to me why blkverify would do so; maybe just so that the
testee block driver would not be replaced.  The introducing commit
f6186f49e2c does not explain why.  Maybe because 08b24cfe376 would have
been the correct solution?  (Which adds a .supports_backing check.)

Signed-off-by: Max Reitz <mreitz@redhat.com>
Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Message-Id: <20200218103454.296704-2-mreitz@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
blockdev.c