All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ari Sundholm <ari@tuxera.com>
To: Max Reitz <mreitz@redhat.com>, qemu-block@nongnu.org
Cc: Kevin Wolf <kwolf@redhat.com>, qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [Qemu-block] [PATCH v9 02/31] block: Use children list in bdrv_refresh_filename
Date: Mon, 23 Jul 2018 15:15:19 +0300	[thread overview]
Message-ID: <39af7f39-db2d-5c86-6ee6-359745f108b8@tuxera.com> (raw)
In-Reply-To: <8e2c8248-908a-7ca0-2236-e8ebe8985b5c@redhat.com>

On 07/22/2018 12:14 AM, Max Reitz wrote:
> On 2018-07-19 14:47, Ari Sundholm wrote:
>> Hi!
>>
>> On 06/28/2018 03:07 AM, Max Reitz wrote:
>>> bdrv_refresh_filename() should invoke itself recursively on all
>>> children, not just on file.
>>>
>>> With that change, we can remove the manual invocations in blkverify,
>>> quorum, commit, and mirror.
>>>
>>> Signed-off-by: Max Reitz <mreitz@redhat.com>
>>> Reviewed-by: Alberto Garcia <berto@igalia.com>
>>> Reviewed-by: Kevin Wolf <kwolf@redhat.com>
>>> ---
>>>    block.c           | 9 +++++----
>>>    block/blkverify.c | 3 ---
>>>    block/commit.c    | 1 -
>>>    block/mirror.c    | 1 -
>>>    block/quorum.c    | 1 -
>>>    5 files changed, 5 insertions(+), 10 deletions(-)
>>>
>>> diff --git a/block.c b/block.c
>>> index e418c97423..52247062d5 100644
>>> --- a/block.c
>>> +++ b/block.c
>>> @@ -5174,16 +5174,17 @@ static bool append_open_options(QDict *d,
>>> BlockDriverState *bs)
>>>    void bdrv_refresh_filename(BlockDriverState *bs)
>>>    {
>>>        BlockDriver *drv = bs->drv;
>>> +    BdrvChild *child;
>>>        QDict *opts;
>>>          if (!drv) {
>>>            return;
>>>        }
>>>    -    /* This BDS's file name will most probably depend on its file's
>>> name, so
>>> -     * refresh that first */
>>> -    if (bs->file) {
>>> -        bdrv_refresh_filename(bs->file->bs);
>>> +    /* This BDS's file name may depend on any of its children's file
>>> names, so
>>> +     * refresh those first */
>>> +    QLIST_FOREACH(child, &bs->children, next) {
>>> +        bdrv_refresh_filename(child->bs);
>>>        }
>>>          if (drv->bdrv_refresh_filename) {
>>> diff --git a/block/blkverify.c b/block/blkverify.c
>>> index da97ee5927..4a18baaf20 100644
>>> --- a/block/blkverify.c
>>> +++ b/block/blkverify.c
>>> @@ -285,9 +285,6 @@ static void
>>> blkverify_refresh_filename(BlockDriverState *bs, QDict *options)
>>>    {
>>>        BDRVBlkverifyState *s = bs->opaque;
>>>    -    /* bs->file->bs has already been refreshed */
>>> -    bdrv_refresh_filename(s->test_file->bs);
>>> -
>>>        if (bs->file->bs->full_open_options
>>>            && s->test_file->bs->full_open_options)
>>>        {
>>> diff --git a/block/commit.c b/block/commit.c
>>> index e1814d9693..26db55d800 100644
>>> --- a/block/commit.c
>>> +++ b/block/commit.c
>>> @@ -234,7 +234,6 @@ static int coroutine_fn
>>> bdrv_commit_top_preadv(BlockDriverState *bs,
>>>      static void bdrv_commit_top_refresh_filename(BlockDriverState *bs,
>>> QDict *opts)
>>>    {
>>> -    bdrv_refresh_filename(bs->backing->bs);
>>>        pstrcpy(bs->exact_filename, sizeof(bs->exact_filename),
>>>                bs->backing->bs->filename);
>>>    }
>>> diff --git a/block/mirror.c b/block/mirror.c
>>> index 61bd9f3cf1..2f5ccae2b1 100644
>>> --- a/block/mirror.c
>>> +++ b/block/mirror.c
>>> @@ -1421,7 +1421,6 @@ static void
>>> bdrv_mirror_top_refresh_filename(BlockDriverState *bs, QDict *opts)
>>>             * bdrv_set_backing_hd */
>>>            return;
>>>        }
>>> -    bdrv_refresh_filename(bs->backing->bs);
>>>        pstrcpy(bs->exact_filename, sizeof(bs->exact_filename),
>>>                bs->backing->bs->filename);
>>>    }
>>> diff --git a/block/quorum.c b/block/quorum.c
>>> index 9152da8c58..03388590f3 100644
>>> --- a/block/quorum.c
>>> +++ b/block/quorum.c
>>> @@ -1080,7 +1080,6 @@ static void
>>> quorum_refresh_filename(BlockDriverState *bs, QDict *options)
>>>        int i;
>>>          for (i = 0; i < s->num_children; i++) {
>>> -        bdrv_refresh_filename(s->children[i]->bs);
>>>            if (!s->children[i]->bs->full_open_options) {
>>>                return;
>>>            }
>>>
>>
>> Should blklogwrites not also receive the same treatment?
> 
> Probably, but how could I have known before blklogwrites was in? :-)
> 

Sorry about that. I realized my mistake soon after sending my message. :)

My excuse is that the threaded view in my Thunderbird showed the series 
among new ones (due to a recent "ping" message in the thread), and I 
didn't immediately notice from the timestamps that the series itself had 
been sent much earlier.

Best regards,
Ari Sundholm
ari@tuxera.com

  reply	other threads:[~2018-07-23 12:15 UTC|newest]

Thread overview: 52+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-06-28  0:07 [Qemu-devel] [PATCH v9 00/31] block: Fix some filename generation issues Max Reitz
2018-06-28  0:07 ` [Qemu-devel] [PATCH v9 01/31] block: Use bdrv_refresh_filename() to pull Max Reitz
2018-06-28 21:48   ` Eric Blake
2018-06-28  0:07 ` [Qemu-devel] [PATCH v9 02/31] block: Use children list in bdrv_refresh_filename Max Reitz
2018-07-19 12:47   ` [Qemu-devel] [Qemu-block] " Ari Sundholm
2018-07-21 21:14     ` Max Reitz
2018-07-23 12:15       ` Ari Sundholm [this message]
2018-06-28  0:07 ` [Qemu-devel] [PATCH v9 03/31] block: Skip implicit nodes for filename info Max Reitz
2018-06-28 21:49   ` Eric Blake
2018-08-07 14:31   ` [Qemu-devel] [Qemu-block] " Alberto Garcia
2018-06-28  0:07 ` [Qemu-devel] [PATCH v9 04/31] block: Add BDS.auto_backing_file Max Reitz
2018-06-28 21:55   ` Eric Blake
2018-06-28  0:07 ` [Qemu-devel] [PATCH v9 05/31] block: Respect backing bs in bdrv_refresh_filename Max Reitz
2018-06-28 21:58   ` Eric Blake
2018-06-28  0:07 ` [Qemu-devel] [PATCH v9 06/31] iotests.py: Add filter_imgfmt() Max Reitz
2018-06-28 21:59   ` Eric Blake
2018-08-07 15:15   ` [Qemu-devel] [Qemu-block] " Alberto Garcia
2018-06-28  0:07 ` [Qemu-devel] [PATCH v9 07/31] iotests.py: Add node_info() Max Reitz
2018-08-07 14:49   ` [Qemu-devel] [Qemu-block] " Alberto Garcia
2018-08-09 17:53     ` Max Reitz
2018-06-28  0:07 ` [Qemu-devel] [PATCH v9 08/31] iotests: Add test for backing file overrides Max Reitz
2018-06-28  0:07 ` [Qemu-devel] [PATCH v9 09/31] block: Make path_combine() return the path Max Reitz
2018-06-28  0:07 ` [Qemu-devel] [PATCH v9 10/31] block: bdrv_get_full_backing_filename_from_...'s ret. val Max Reitz
2018-08-07 15:03   ` [Qemu-devel] [Qemu-block] " Alberto Garcia
2018-06-28  0:07 ` [Qemu-devel] [PATCH v9 11/31] block: bdrv_get_full_backing_filename's " Max Reitz
2018-08-07 15:07   ` [Qemu-devel] [Qemu-block] " Alberto Garcia
2018-06-28  0:07 ` [Qemu-devel] [PATCH v9 12/31] block: Add bdrv_make_absolute_filename() Max Reitz
2018-08-07 15:07   ` [Qemu-devel] [Qemu-block] " Alberto Garcia
2018-06-28  0:07 ` [Qemu-devel] [PATCH v9 13/31] block: Fix bdrv_find_backing_image() Max Reitz
2018-08-07 15:10   ` [Qemu-devel] [Qemu-block] " Alberto Garcia
2018-06-28  0:07 ` [Qemu-devel] [PATCH v9 14/31] block: Add bdrv_dirname() Max Reitz
2018-08-07 15:11   ` [Qemu-devel] [Qemu-block] " Alberto Garcia
2018-06-28  0:07 ` [Qemu-devel] [PATCH v9 15/31] blkverify: Make bdrv_dirname() return NULL Max Reitz
2018-06-28  0:07 ` [Qemu-devel] [PATCH v9 16/31] quorum: " Max Reitz
2018-06-28  0:07 ` [Qemu-devel] [PATCH v9 17/31] block/nbd: " Max Reitz
2018-06-28 22:05   ` Eric Blake
2018-06-28  0:07 ` [Qemu-devel] [PATCH v9 18/31] block/nfs: Implement bdrv_dirname() Max Reitz
2018-06-28  0:07 ` [Qemu-devel] [PATCH v9 19/31] block: Use bdrv_dirname() for relative filenames Max Reitz
2018-06-28  0:07 ` [Qemu-devel] [PATCH v9 20/31] iotests: Add quorum case to test 110 Max Reitz
2018-06-28  0:07 ` [Qemu-devel] [PATCH v9 21/31] block: Add strong_runtime_opts to BlockDriver Max Reitz
2018-06-28  0:07 ` [Qemu-devel] [PATCH v9 22/31] block: Add BlockDriver.bdrv_gather_child_options Max Reitz
2018-06-28  0:07 ` [Qemu-devel] [PATCH v9 23/31] block: Generically refresh runtime options Max Reitz
2018-06-28  0:07 ` [Qemu-devel] [PATCH v9 24/31] block: Purify .bdrv_refresh_filename() Max Reitz
2018-06-28  0:07 ` [Qemu-devel] [PATCH v9 25/31] block: Do not copy exact_filename from format file Max Reitz
2018-06-28  0:07 ` [Qemu-devel] [PATCH v9 26/31] block/nvme: Fix bdrv_refresh_filename() Max Reitz
2018-06-28  0:07 ` [Qemu-devel] [PATCH v9 27/31] block/curl: Harmonize option defaults Max Reitz
2018-06-28  0:07 ` [Qemu-devel] [PATCH v9 28/31] block/curl: Implement bdrv_refresh_filename() Max Reitz
2018-06-28  0:07 ` [Qemu-devel] [PATCH v9 29/31] block/null: Generate filename even with latency-ns Max Reitz
2018-06-28  0:07 ` [Qemu-devel] [PATCH v9 30/31] block: BDS options may lack the "driver" option Max Reitz
2018-06-28  0:07 ` [Qemu-devel] [PATCH v9 31/31] iotests: Test json:{} filenames of internal BDSs Max Reitz
2018-07-13  9:49 ` [Qemu-devel] [PATCH v9 00/31] block: Fix some filename generation issues Max Reitz
2018-07-19 12:53   ` [Qemu-devel] [Qemu-block] " Ari Sundholm

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=39af7f39-db2d-5c86-6ee6-359745f108b8@tuxera.com \
    --to=ari@tuxera.com \
    --cc=kwolf@redhat.com \
    --cc=mreitz@redhat.com \
    --cc=qemu-block@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    /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.