qemu-block
[Top][All Lists]
Advanced

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

[Qemu-block] [PATCH v2 20/20] block: Drop unused .bdrv_co_get_block_stat


From: Eric Blake
Subject: [Qemu-block] [PATCH v2 20/20] block: Drop unused .bdrv_co_get_block_status()
Date: Fri, 14 Jul 2017 07:14:57 -0500

We are gradually moving away from sector-based interfaces, towards
byte-based.  Now that all drivers have been updated to provide the
byte-based .bdrv_co_block_status(), we can delete the sector-based
interface.

Signed-off-by: Eric Blake <address@hidden>

---
v2: rebase to earlier changes
---
 include/block/block_int.h |  3 ---
 block/io.c                | 23 +----------------------
 2 files changed, 1 insertion(+), 25 deletions(-)

diff --git a/include/block/block_int.h b/include/block/block_int.h
index 72b8b81..9b94b32 100644
--- a/include/block/block_int.h
+++ b/include/block/block_int.h
@@ -182,9 +182,6 @@ struct BlockDriver {
      * (favor larger *pnum).  The block layer guarantees input aligned
      * to request_alignment, as well as non-NULL pnum and file.
      */
-    int64_t coroutine_fn (*bdrv_co_get_block_status)(BlockDriverState *bs,
-        int64_t sector_num, int nb_sectors, int *pnum,
-        BlockDriverState **file);
     int64_t coroutine_fn (*bdrv_co_block_status)(BlockDriverState *bd,
         bool mapping, int64_t offset, int64_t bytes, int64_t *pnum,
         BlockDriverState **file);
diff --git a/block/io.c b/block/io.c
index 2e8ddd7..375fc66 100644
--- a/block/io.c
+++ b/block/io.c
@@ -1772,7 +1772,7 @@ static int64_t coroutine_fn 
bdrv_co_block_status(BlockDriverState *bs,
         bytes = n;
     }

-    if (!bs->drv->bdrv_co_get_block_status && !bs->drv->bdrv_co_block_status) {
+    if (!bs->drv->bdrv_co_block_status) {
         *pnum = bytes;
         ret = BDRV_BLOCK_DATA | BDRV_BLOCK_ALLOCATED;
         if (offset + bytes == total_size) {
@@ -1793,29 +1793,9 @@ static int64_t coroutine_fn 
bdrv_co_block_status(BlockDriverState *bs,

     /* Round out to request_alignment boundaries */
     align = bs->bl.request_alignment;
-    if (bs->drv->bdrv_co_get_block_status && align < BDRV_SECTOR_SIZE) {
-        align = BDRV_SECTOR_SIZE;
-    }
     aligned_offset = QEMU_ALIGN_DOWN(offset, align);
     aligned_bytes = ROUND_UP(offset + bytes, align) - aligned_offset;

-    if (bs->drv->bdrv_co_get_block_status) {
-        int count; /* sectors */
-
-        assert(QEMU_IS_ALIGNED(aligned_offset | aligned_bytes,
-                               BDRV_SECTOR_SIZE));
-        ret = bs->drv->bdrv_co_get_block_status(
-            bs, aligned_offset >> BDRV_SECTOR_BITS,
-            MIN(INT_MAX, aligned_bytes) >> BDRV_SECTOR_BITS, &count,
-            &local_file);
-        if (ret < 0) {
-            *pnum = 0;
-            goto out;
-        }
-        *pnum = count * BDRV_SECTOR_SIZE;
-        goto refine;
-    }
-
     ret = bs->drv->bdrv_co_block_status(bs, mapping, aligned_offset,
                                         aligned_bytes, pnum, &local_file);
     if (ret < 0) {
@@ -1832,7 +1812,6 @@ static int64_t coroutine_fn 
bdrv_co_block_status(BlockDriverState *bs,
         *pnum = total_size - aligned_offset;
     }

- refine:
     /* Clamp pnum and ret to original request */
     assert(QEMU_IS_ALIGNED(*pnum, align));
     *pnum -= offset - aligned_offset;
-- 
2.9.4




reply via email to

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