qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PULL 30/42] block: define get_block_status return valu


From: Peter Lieven
Subject: Re: [Qemu-devel] [PULL 30/42] block: define get_block_status return value
Date: Fri, 13 Sep 2013 10:04:33 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130804 Thunderbird/17.0.8

On 06.09.2013 17:39, Stefan Hajnoczi wrote:
From: Paolo Bonzini <address@hidden>

Define the return value of get_block_status.  Bits 0, 1, 2 and 9-62
are valid; bit 63 (the sign bit) is reserved for errors.  Bits 3-8
are left for future extensions.

The return code is compatible with the old is_allocated API: if a driver
only returns 0 or 1 (aka BDRV_BLOCK_DATA) like is_allocated used to,
clients of is_allocated will not have any change in behavior.  Still,
we will return more precise information in the next patches and the
new definition of bdrv_is_allocated is already prepared for this.

Reviewed-by: Eric Blake <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>
Signed-off-by: Stefan Hajnoczi <address@hidden>
---
  block.c               | 10 ++++++++--
  include/block/block.h | 26 ++++++++++++++++++++++++++
  2 files changed, 34 insertions(+), 2 deletions(-)

diff --git a/block.c b/block.c
index a5bfe74..97406ec 100644
--- a/block.c
+++ b/block.c
@@ -3093,7 +3093,7 @@ static int64_t coroutine_fn 
bdrv_co_get_block_status(BlockDriverState *bs,
if (!bs->drv->bdrv_co_get_block_status) {
          *pnum = nb_sectors;
-        return 1;
+        return BDRV_BLOCK_DATA;
      }
return bs->drv->bdrv_co_get_block_status(bs, sector_num, nb_sectors, pnum);
@@ -3143,7 +3143,13 @@ int64_t bdrv_get_block_status(BlockDriverState *bs, 
int64_t sector_num,
  int coroutine_fn bdrv_is_allocated(BlockDriverState *bs, int64_t sector_num,
                                     int nb_sectors, int *pnum)
  {
-    return bdrv_get_block_status(bs, sector_num, nb_sectors, pnum);
+    int64_t ret = bdrv_get_block_status(bs, sector_num, nb_sectors, pnum);
+    if (ret < 0) {
sorry if I repeat myself.

isn't here a *pnum = 0 missing?

Peter


--

Mit freundlichen Grüßen

Peter Lieven

...........................................................

  KAMP Netzwerkdienste GmbH
  Vestische Str. 89-91 | 46117 Oberhausen
  Tel: +49 (0) 208.89 402-50 | Fax: +49 (0) 208.89 402-40
  address@hidden | http://www.kamp.de

  Geschäftsführer: Heiner Lante | Michael Lante
  Amtsgericht Duisburg | HRB Nr. 12154
  USt-Id-Nr.: DE 120607556

...........................................................




reply via email to

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