All of lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH v3 0/2] mirror: fix improperly filled copy_bitmap for mirror block job
@ 2016-09-15 16:34 Denis V. Lunev
  2016-09-15 16:34 ` [Qemu-devel] [PATCH v3 1/2] block: sync bdrv_co_get_block_status_above() with bdrv_is_allocated_above() Denis V. Lunev
  2016-09-15 16:34 ` [Qemu-devel] [PATCH v3 2/2] mirror: fix improperly filled copy_bitmap for mirror block job Denis V. Lunev
  0 siblings, 2 replies; 12+ messages in thread
From: Denis V. Lunev @ 2016-09-15 16:34 UTC (permalink / raw)
  To: qemu-block, qemu-devel
  Cc: den, Stefan Hajnoczi, Fam Zheng, Kevin Wolf, Max Reitz, Jeff Cody

bdrv_is_allocated_above() returns true in the case even for completel
zeroed areas as BDRV_BLOCK_ALLOCATED flag is set in both cases.

The patch stops using bdrv_is_allocated_above() wrapper and switches to
bdrv_get_block_status_above() to distinguish zeroed areas and areas with
data to avoid extra IO operations if possible.

Though this change requires some preparations in bdrv_get_block_status_above()
performed in the patch (1).

Changes from v2:
- reworked patch 1 to properly hide data below short image
- fixed comment in patch 1
- fixed mask assignment in patch 2 to cover bdrv_is_zero_initialized() case

Changes from v1:
- fixed assert in 041 test case (added patch 1)
- fixed commit message
- fixed status check to be on the safe side

Signed-off-by: Denis V. Lunev <den@openvz.org>
CC: Stefan Hajnoczi <stefanha@redhat.com>
CC: Fam Zheng <famz@redhat.com>
CC: Kevin Wolf <kwolf@redhat.com>
CC: Max Reitz <mreitz@redhat.com>
CC: Jeff Cody <jcody@redhat.com>

Denis V. Lunev (2):
  block: sync bdrv_co_get_block_status_above() with
    bdrv_is_allocated_above()
  mirror: fix improperly filled copy_bitmap for mirror block job

 block/io.c     | 25 ++++++++++++++++++++-----
 block/mirror.c | 17 +++++++++++------
 2 files changed, 31 insertions(+), 11 deletions(-)

-- 
2.7.4

^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2016-09-26 21:43 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-09-15 16:34 [Qemu-devel] [PATCH v3 0/2] mirror: fix improperly filled copy_bitmap for mirror block job Denis V. Lunev
2016-09-15 16:34 ` [Qemu-devel] [PATCH v3 1/2] block: sync bdrv_co_get_block_status_above() with bdrv_is_allocated_above() Denis V. Lunev
2016-09-19  1:21   ` Fam Zheng
2016-09-19  4:37     ` Denis V. Lunev
2016-09-19 20:39       ` Eric Blake
2016-09-26 15:04         ` Kevin Wolf
2016-09-26 21:42           ` [Qemu-devel] [Qemu-block] " Kashyap Chamarthy
2016-09-19 23:18   ` [Qemu-devel] " Max Reitz
2016-09-20  6:13     ` Jeff Cody
2016-09-15 16:34 ` [Qemu-devel] [PATCH v3 2/2] mirror: fix improperly filled copy_bitmap for mirror block job Denis V. Lunev
2016-09-15 17:19   ` Eric Blake
2016-09-23 11:00   ` Vladimir Sementsov-Ogievskiy

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.