All of lore.kernel.org
 help / color / mirror / Atom feed
From: Kevin Wolf <kwolf@redhat.com>
To: Eric Blake <eblake@redhat.com>
Cc: vsementsov@virtuozzo.com, berto@igalia.com,
	qemu-devel@nongnu.org, qemu-block@nongnu.org, mreitz@redhat.com
Subject: Re: [PATCH v4 5/9] raw-format: Support BDRV_REQ_ZERO_WRITE for truncate
Date: Mon, 20 Apr 2020 17:32:17 +0200	[thread overview]
Message-ID: <20200420153217.GA29316@linux.fritz.box> (raw)
In-Reply-To: <b30bde4c-1ac1-f7cf-0c1f-1e8f52c4c821@redhat.com>

Am 20.04.2020 um 17:14 hat Eric Blake geschrieben:
> On 4/20/20 8:32 AM, Kevin Wolf wrote:
> > The raw format driver can simply forward the flag and let its bs->file
> > child take care of actually providing the zeros.
> > 
> > Signed-off-by: Kevin Wolf <kwolf@redhat.com>
> > ---
> >   block/raw-format.c | 3 ++-
> >   1 file changed, 2 insertions(+), 1 deletion(-)
> > 
> > diff --git a/block/raw-format.c b/block/raw-format.c
> > index 3465c9a865..ab69ac46d3 100644
> > --- a/block/raw-format.c
> > +++ b/block/raw-format.c
> > @@ -387,7 +387,7 @@ static int coroutine_fn raw_co_truncate(BlockDriverState *bs, int64_t offset,
> >       s->size = offset;
> >       offset += s->offset;
> > -    return bdrv_co_truncate(bs->file, offset, exact, prealloc, 0, errp);
> > +    return bdrv_co_truncate(bs->file, offset, exact, prealloc, flags, errp);
> >   }
> >   static void raw_eject(BlockDriverState *bs, bool eject_flag)
> > @@ -445,6 +445,7 @@ static int raw_open(BlockDriverState *bs, QDict *options, int flags,
> >       bs->supported_zero_flags = BDRV_REQ_WRITE_UNCHANGED |
> >           ((BDRV_REQ_FUA | BDRV_REQ_MAY_UNMAP | BDRV_REQ_NO_FALLBACK) &
> >               bs->file->bs->supported_zero_flags);
> > +    bs->supported_truncate_flags = BDRV_REQ_ZERO_WRITE;
> 
> Shouldn't this be:
> 
> bs->supported_truncate_flags = (bs->file->bs->supported_truncate_flags &
>                                 BDRV_REQ_ZERO_WRITE);
> 
> rather than unconditionally advertising something that the underlying layer
> may lack?

Maybe that makes more sense, yes.

I think in practice it wouldn't make a difference because the nested
bdrv_co_truncate() would still fail rather than silently ignoring the
flag. It would behave the same as filter drivers, which also recursively
call bdrv_co_truncate() without checking the flag first (which is, of
course, because I don't want to modify each filter driver).

Kevin



  reply	other threads:[~2020-04-20 15:34 UTC|newest]

Thread overview: 31+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-04-20 13:32 [PATCH v4 0/9] block: Fix resize (extending) of short overlays Kevin Wolf
2020-04-20 13:32 ` [PATCH v4 1/9] block: Add flags to BlockDriver.bdrv_co_truncate() Kevin Wolf
2020-04-20 13:57   ` Alberto Garcia
2020-04-21  8:15   ` Vladimir Sementsov-Ogievskiy
2020-04-20 13:32 ` [PATCH v4 2/9] block: Add flags to bdrv(_co)_truncate() Kevin Wolf
2020-04-20 13:58   ` Alberto Garcia
2020-04-21  8:25   ` Vladimir Sementsov-Ogievskiy
2020-04-20 13:32 ` [PATCH v4 3/9] block-backend: Add flags to blk_truncate() Kevin Wolf
2020-04-20 13:59   ` Alberto Garcia
2020-04-21  8:33   ` Vladimir Sementsov-Ogievskiy
2020-04-20 13:32 ` [PATCH v4 4/9] qcow2: Support BDRV_REQ_ZERO_WRITE for truncate Kevin Wolf
2020-04-20 14:02   ` Alberto Garcia
2020-04-21  8:47   ` Vladimir Sementsov-Ogievskiy
2020-04-21 10:50     ` Alberto Garcia
2020-04-21 11:19       ` Vladimir Sementsov-Ogievskiy
2020-04-20 13:32 ` [PATCH v4 5/9] raw-format: " Kevin Wolf
2020-04-20 14:03   ` Alberto Garcia
2020-04-20 15:14   ` Eric Blake
2020-04-20 15:32     ` Kevin Wolf [this message]
2020-04-20 15:53       ` Eric Blake
2020-04-20 13:32 ` [PATCH v4 6/9] file-posix: " Kevin Wolf
2020-04-20 14:05   ` Alberto Garcia
2020-04-21 10:56   ` Vladimir Sementsov-Ogievskiy
2020-04-20 13:32 ` [PATCH v4 7/9] block: truncate: Don't make backing file data visible Kevin Wolf
2020-04-20 14:10   ` Alberto Garcia
2020-04-21 11:19   ` Vladimir Sementsov-Ogievskiy
2020-04-20 13:32 ` [PATCH v4 8/9] iotests: Filter testfiles out in img_info_log() Kevin Wolf
2020-04-21 11:34   ` Vladimir Sementsov-Ogievskiy
2020-04-20 13:32 ` [PATCH v4 9/9] iotests: Test committing to short backing file Kevin Wolf
2020-04-21 11:39   ` Vladimir Sementsov-Ogievskiy
2020-04-20 23:49 ` [PATCH v4 0/9] block: Fix resize (extending) of short overlays no-reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200420153217.GA29316@linux.fritz.box \
    --to=kwolf@redhat.com \
    --cc=berto@igalia.com \
    --cc=eblake@redhat.com \
    --cc=mreitz@redhat.com \
    --cc=qemu-block@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    --cc=vsementsov@virtuozzo.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.