qemu/include/block
Markus Armbruster 65a9bb25d6 block: New bdrv_nb_sectors()
A call to retrieve the image size converts between bytes and sectors
several times:

* BlockDriver method bdrv_getlength() returns bytes.

* refresh_total_sectors() converts to sectors, rounding up, and stores
  in total_sectors.

* bdrv_getlength() converts total_sectors back to bytes (now rounded
  up to a multiple of the sector size).

* Callers wanting sectors rather bytes convert it right back.
  Example: bdrv_get_geometry().

bdrv_nb_sectors() provides a way to omit the last two conversions.
It's exactly bdrv_getlength() with the conversion to bytes omitted.
It's functionally like bdrv_get_geometry() without its odd error
handling.

Reimplement bdrv_getlength() and bdrv_get_geometry() on top of
bdrv_nb_sectors().

The next patches will convert some users of bdrv_getlength() to
bdrv_nb_sectors().

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Reviewed-by: Benoit Canet <benoit@irqsave.net>
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
2014-08-15 15:07:12 +02:00
..
aio.h AioContext: do not rely on aio_poll(ctx, true) result to end a loop 2014-07-14 12:03:20 +02:00
block_int.h block: Add Error argument to bdrv_refresh_limits() 2014-07-18 13:18:43 +01:00
block.h block: New bdrv_nb_sectors() 2014-08-15 15:07:12 +02:00
blockjob.h block: drop aio functions that operate on the main AioContext 2014-07-09 15:50:11 +02:00
coroutine_int.h coroutine: stop using AioContext in CoQueue 2013-05-24 16:17:56 +02:00
coroutine.h block: drop aio functions that operate on the main AioContext 2014-07-09 15:50:11 +02:00
nbd.h nbd: Handle NBD_OPT_LIST option. 2014-06-30 12:50:17 +02:00
qapi.h block: make bdrv_query_stats() static 2014-06-27 18:19:57 +02:00
scsi.h scsi: Print command name in debug 2014-06-18 08:47:10 +02:00
snapshot.h qemu-nbd: support internal snapshot export 2013-12-04 15:19:00 +01:00
thread-pool.h threadpool: drop global thread pool 2013-03-15 16:07:51 +01:00