qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PULL 33/42] block: return BDRV_BLOCK_ZERO past end of


From: Peter Lieven
Subject: Re: [Qemu-devel] [PULL 33/42] block: return BDRV_BLOCK_ZERO past end of backing file
Date: Mon, 16 Sep 2013 07:45:22 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130804 Thunderbird/17.0.8

On 13.09.2013 17:20, Kevin Wolf wrote:
Am 13.09.2013 um 10:25 hat Paolo Bonzini geschrieben:
Il 13/09/2013 09:33, Peter Lieven ha scritto:
On 06.09.2013 17:39, Stefan Hajnoczi wrote:
From: Paolo Bonzini <address@hidden>

If the sectors are unallocated and we are past the end of the
backing file, they will read as zero.

Signed-off-by: Paolo Bonzini <address@hidden>
Signed-off-by: Stefan Hajnoczi <address@hidden>
---
   block.c | 12 ++++++++++--
   1 file changed, 10 insertions(+), 2 deletions(-)

diff --git a/block.c b/block.c
index aa9ec83..82bbd6c 100644
--- a/block.c
+++ b/block.c
@@ -3102,8 +3102,16 @@ static int64_t coroutine_fn
bdrv_co_get_block_status(BlockDriverState *bs,
           return ret;
       }
   -    if (!(ret & BDRV_BLOCK_DATA) && bdrv_has_zero_init(bs)) {
-        ret |= BDRV_BLOCK_ZERO;
+    if (!(ret & BDRV_BLOCK_DATA)) {
+        if (bdrv_has_zero_init(bs)) {
this should be bdi->discard_zeroes. bdrv_has_zero_init() does only give
a valid result
right after bdrv_create(). i currently working on extending bdi. I can
send a patch for this
if you agree.
Yes, please.  Right now there is no bdi->discard_zeroes.
If we do this, it needs some function that behaves similar to
bdrv_has_zero_init(); in particular that it returns 0 if there is a
backing file.
I will add bdrv_has_discard_zeroes. Would it be ok if it calls out to
bdrv_get_info to get the discard_zeroes information?

Peter




reply via email to

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