[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 1/8] block: Handle filter truncation like native
From: |
Maxim Levitsky |
Subject: |
Re: [Qemu-devel] [PATCH 1/8] block: Handle filter truncation like native impl. |
Date: |
Wed, 18 Sep 2019 23:49:39 +0300 |
On Wed, 2019-09-18 at 11:51 +0200, Max Reitz wrote:
> Make the filter truncation (passing it through to bs->file) a
> first-class citizen and handle it exactly as if it was the filter
> driver's native implementation of .bdrv_co_truncate().
>
> I do not see a reason not to, it makes the code a bit shorter, and may
> be even more correct because this gets us to finish the write_req that
> we prepared before (may be important to e.g. bring dirty bitmaps to the
> correct size).
>
> Signed-off-by: Max Reitz <address@hidden>
> ---
> block/io.c | 13 ++++++-------
> 1 file changed, 6 insertions(+), 7 deletions(-)
>
> diff --git a/block/io.c b/block/io.c
> index f8c3596131..723655c792 100644
> --- a/block/io.c
> +++ b/block/io.c
> @@ -3299,20 +3299,19 @@ int coroutine_fn bdrv_co_truncate(BdrvChild *child,
> int64_t offset,
> goto out;
> }
>
> - if (!drv->bdrv_co_truncate) {
> - if (bs->file && drv->is_filter) {
> - ret = bdrv_co_truncate(bs->file, offset, prealloc, errp);
> - goto out;
> - }
> + if (drv->bdrv_co_truncate) {
> + ret = drv->bdrv_co_truncate(bs, offset, prealloc, errp);
> + } else if (bs->file && drv->is_filter) {
> + ret = bdrv_co_truncate(bs->file, offset, prealloc, errp);
> + } else {
> error_setg(errp, "Image format driver does not support resize");
> ret = -ENOTSUP;
> goto out;
> }
> -
> - ret = drv->bdrv_co_truncate(bs, offset, prealloc, errp);
> if (ret < 0) {
> goto out;
> }
> +
>
I would say that those are unrelated whitespace changes, but I myself
don't mind this :-)
> ret = refresh_total_sectors(bs, offset >> BDRV_SECTOR_BITS);
> if (ret < 0) {
> error_setg_errno(errp, -ret, "Could not refresh total sector count");
Looks all right to me, although I don't know the block filters well yet.
Reviewed-by: Maxim Levitsky <address@hidden>
Best regards,
Maxim Levitsky
- [Qemu-devel] [PATCH 0/8] block: Add @exact parameter to bdrv_co_truncate(), Max Reitz, 2019/09/18
- [Qemu-devel] [PATCH 1/8] block: Handle filter truncation like native impl., Max Reitz, 2019/09/18
- Re: [Qemu-devel] [PATCH 1/8] block: Handle filter truncation like native impl.,
Maxim Levitsky <=
- [Qemu-devel] [PATCH 2/8] block/cor: Drop cor_co_truncate(), Max Reitz, 2019/09/18
- [Qemu-devel] [PATCH 3/8] block: Do not truncate file node when formatting, Max Reitz, 2019/09/18
- [Qemu-devel] [PATCH 5/8] block: Evaluate @exact in protocol drivers, Max Reitz, 2019/09/18
- [Qemu-devel] [PATCH 6/8] block: Let format drivers pass @exact, Max Reitz, 2019/09/18
- [Qemu-devel] [PATCH 4/8] block: Add @exact parameter to bdrv_co_truncate(), Max Reitz, 2019/09/18