[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 3/5] block: Use bdrv_nb_sectors() when sectors,
From: |
Markus Armbruster |
Subject: |
Re: [Qemu-devel] [PATCH 3/5] block: Use bdrv_nb_sectors() when sectors, not bytes are wanted |
Date: |
Fri, 09 May 2014 18:27:44 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/24.2 (gnu/linux) |
Markus Armbruster <address@hidden> writes:
> Instead of bdrv_nb_sectors().
>
> Aside: a few of these callers don't handle errors. I didn't
> investigate whether they should.
>
> Signed-off-by: Markus Armbruster <address@hidden>
> ---
[...]
> diff --git a/block.c b/block.c
> index 44e1f57..1b99cb1 100644
> --- a/block.c
> +++ b/block.c
[...]
> @@ -3848,21 +3845,21 @@ static int64_t coroutine_fn
> bdrv_co_get_block_status(BlockDriverState *bs,
> int64_t sector_num,
> int nb_sectors, int
> *pnum)
> {
> - int64_t length;
> + int64_t total_sectors;
> int64_t n;
> int64_t ret, ret2;
>
> - length = bdrv_getlength(bs);
> - if (length < 0) {
> - return length;
> + total_sectors = bdrv_getlength(bs);
> + if (total_sectors < 0) {
> + return total_sectors;
> }
>
> - if (sector_num >= (length >> BDRV_SECTOR_BITS)) {
> + if (sector_num >= total_sectors) {
> *pnum = 0;
> return 0;
> }
>
> - n = bs->total_sectors - sector_num;
> + n = total_sectors - sector_num;
> if (n < nb_sectors) {
> nb_sectors = n;
> }
> @@ -3893,8 +3890,8 @@ static int64_t coroutine_fn
> bdrv_co_get_block_status(BlockDriverState *bs,
> ret |= BDRV_BLOCK_ZERO;
> } else if (bs->backing_hd) {
> BlockDriverState *bs2 = bs->backing_hd;
> - int64_t length2 = bdrv_getlength(bs2);
> - if (length2 >= 0 && sector_num >= (length2 >> BDRV_SECTOR_BITS))
> {
> + int64_t nb_sectors2 = bdrv_getlength(bs2);
> + if (nb_sectors2 >= 0 && sector_num >= nb_sectors2) {
> ret |= BDRV_BLOCK_ZERO;
> }
> }
[...]
I neglected to actually replace bdrv_getlength() by bdrv_nb_sectors()
here, breaking test 030 (I forgot that make check-block doesn't run all
the tests). With that fixed, the tests pass. Full respin wanted?
- [Qemu-devel] [PATCH 0/5] Clean up around bdrv_getlength(), Markus Armbruster, 2014/05/09
- [Qemu-devel] [PATCH 2/5] block: New bdrv_nb_sectors(), Markus Armbruster, 2014/05/09
- [Qemu-devel] [PATCH 1/5] raw-posix: Fix raw_getlength() to always return -errno on error, Markus Armbruster, 2014/05/09
- [Qemu-devel] [PATCH 4/5] block: Drop superfluous aligning of bdrv_getlength()'s value, Markus Armbruster, 2014/05/09
- [Qemu-devel] [PATCH 3/5] block: Use bdrv_nb_sectors() when sectors, not bytes are wanted, Markus Armbruster, 2014/05/09
- Re: [Qemu-devel] [PATCH 3/5] block: Use bdrv_nb_sectors() when sectors, not bytes are wanted,
Markus Armbruster <=
- [Qemu-devel] [PATCH 5/5] block: Avoid bdrv_get_geometry() where errors should be detected, Markus Armbruster, 2014/05/09
- Re: [Qemu-devel] [PATCH 0/5] Clean up around bdrv_getlength(), Stefan Hajnoczi, 2014/05/09
- Re: [Qemu-devel] [PATCH 0/5] Clean up around bdrv_getlength(), Stefan Hajnoczi, 2014/05/09