All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Benoît Canet" <benoit.canet@irqsave.net>
To: Jeff Cody <jcody@redhat.com>
Cc: kwolf@redhat.com, benoit.canet@irqsave.net, pkrempa@redhat.com,
	famz@redhat.com, qemu-devel@nongnu.org, stefanha@redhat.com
Subject: Re: [Qemu-devel] [PATCH v6 for 2.1 02/10] block: add helper function to determine if a BDS is in a chain
Date: Mon, 23 Jun 2014 12:24:32 +0200	[thread overview]
Message-ID: <20140623102432.GA24725@irqsave.net> (raw)
In-Reply-To: <c9c0bd924a3467b39b5de6c025be6d7fd2de9dc0.1403041699.git.jcody@redhat.com>

The Tuesday 17 Jun 2014 à 17:53:50 (-0400), Jeff Cody wrote :
> This is a small helper function, to determine if 'base' is in the
> chain of BlockDriverState 'top'.  It returns true if it is in the chain,
> and false otherwise.
> 
> If either argument is NULL, it will also return false.
> 
> Reviewed-by: Benoit Canet <benoit@irqsave.net>
> Reviewed-by: Eric Blake <eblake@redhat.com>
> Signed-off-by: Jeff Cody <jcody@redhat.com>
> ---
>  block.c               | 11 +++++++++++
>  include/block/block.h |  1 +
>  2 files changed, 12 insertions(+)
> 
> diff --git a/block.c b/block.c
> index da32bb0..280a167 100644
> --- a/block.c
> +++ b/block.c
> @@ -3819,6 +3819,17 @@ BlockDriverState *bdrv_lookup_bs(const char *device,
>      return NULL;
>  }
>  
> +/* If 'base' is in the same chain as 'top', return true. Otherwise,
> + * return false.  If either argument is NULL, return false. */
> +bool bdrv_chain_contains(BlockDriverState *top, BlockDriverState *base)
> +{
> +    while (top && top != base) {
> +        top = top->backing_hd;
> +    }
> +
> +    return top != NULL;
> +}
> +
>  BlockDriverState *bdrv_next(BlockDriverState *bs)
>  {
>      if (!bs) {
> diff --git a/include/block/block.h b/include/block/block.h
> index f15b99b..c60bd52 100644
> --- a/include/block/block.h
> +++ b/include/block/block.h
> @@ -403,6 +403,7 @@ BlockDeviceInfoList *bdrv_named_nodes_list(void);
>  BlockDriverState *bdrv_lookup_bs(const char *device,
>                                   const char *node_name,
>                                   Error **errp);
> +bool bdrv_chain_contains(BlockDriverState *top, BlockDriverState *base);
>  BlockDriverState *bdrv_next(BlockDriverState *bs);
>  void bdrv_iterate(void (*it)(void *opaque, BlockDriverState *bs),
>                    void *opaque);
> -- 
> 1.9.3
> 
> 

I know I rev by this patch but it now appears we will probably need to extend
this function to work with multiple children BDS.

Jeff do you prefer to take care of this in this series or should I rework it later
in my quorum maintainance series ?

Best regards

Benoît

  parent reply	other threads:[~2014-06-23 10:24 UTC|newest]

Thread overview: 49+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-06-17 21:53 [Qemu-devel] [PATCH v6 for 2.1 00/10] Modify block jobs to use node-names Jeff Cody
2014-06-17 21:53 ` [Qemu-devel] [PATCH v6 for 2.1 01/10] block: Auto-generate node_names for each BDS entry Jeff Cody
2014-06-18 12:53   ` Benoît Canet
2014-06-18 13:13     ` Jeff Cody
2014-06-18 13:31       ` Benoît Canet
2014-06-19  8:55   ` Stefan Hajnoczi
2014-06-19 12:30     ` Jeff Cody
2014-06-19 17:03       ` Eric Blake
2014-06-20  4:24       ` Stefan Hajnoczi
2014-06-23 12:41       ` Stefan Hajnoczi
2014-06-17 21:53 ` [Qemu-devel] [PATCH v6 for 2.1 02/10] block: add helper function to determine if a BDS is in a chain Jeff Cody
2014-06-19  6:27   ` Stefan Hajnoczi
2014-06-23 10:24   ` Benoît Canet [this message]
2014-06-17 21:53 ` [Qemu-devel] [PATCH v6 for 2.1 03/10] block: simplify bdrv_find_base() and bdrv_find_overlay() Jeff Cody
2014-06-19  6:31   ` Stefan Hajnoczi
2014-06-17 21:53 ` [Qemu-devel] [PATCH v6 for 2.1 04/10] block: make 'top' argument to block-commit optional Jeff Cody
2014-06-17 22:25   ` Eric Blake
2014-06-19 16:56     ` Eric Blake
2014-06-19  6:40   ` Stefan Hajnoczi
2014-06-17 21:53 ` [Qemu-devel] [PATCH v6 for 2.1 05/10] block: Accept node-name arguments for block-commit Jeff Cody
2014-06-18 12:58   ` Benoît Canet
2014-06-17 21:53 ` [Qemu-devel] [PATCH v6 for 2.1 06/10] block: extend block-commit to accept a string for the backing file Jeff Cody
2014-06-19  7:49   ` Stefan Hajnoczi
2014-06-17 21:53 ` [Qemu-devel] [PATCH v6 for 2.1 07/10] block: add ability for block-stream to use node-name Jeff Cody
2014-06-18 13:06   ` Benoît Canet
2014-06-19  8:01   ` Stefan Hajnoczi
2014-06-17 21:53 ` [Qemu-devel] [PATCH v6 for 2.1 08/10] block: add backing-file option to block-stream Jeff Cody
2014-06-19  8:04   ` Stefan Hajnoczi
2014-06-17 21:53 ` [Qemu-devel] [PATCH v6 for 2.1 09/10] block: Add QMP documentation for block-stream Jeff Cody
2014-06-19  8:06   ` Stefan Hajnoczi
2014-06-17 21:53 ` [Qemu-devel] [PATCH v6 for 2.1 10/10] block: add QAPI command to allow live backing file change Jeff Cody
2014-06-18 13:15   ` Benoît Canet
2014-06-19  8:37     ` Stefan Hajnoczi
2014-06-19 19:08       ` Jeff Cody
2014-06-19  8:37   ` Stefan Hajnoczi
2014-06-19  9:17 ` [Qemu-devel] [PATCH v6 for 2.1 00/10] Modify block jobs to use node-names Stefan Hajnoczi
2014-06-19 16:26   ` Jeff Cody
2014-06-19 16:49     ` Eric Blake
2014-06-19 16:54       ` Eric Blake
2014-06-19 18:22       ` [Qemu-devel] Op Blockers on child nodes (was Re: [PATCH v6 for 2.1 00/10] Modify block jobs to use) node-names Jeff Cody
2014-06-24 12:55       ` [Qemu-devel] [PATCH v6 for 2.1 00/10] Modify block jobs to use node-names Kevin Wolf
2014-06-23 13:08     ` Stefan Hajnoczi
2014-06-23 14:17       ` Benoît Canet
2014-06-24  2:48       ` Fam Zheng
2014-06-24 13:32         ` Jeff Cody
2014-06-24 14:08           ` Kevin Wolf
2014-06-24 15:30             ` Benoît Canet
2014-06-19 17:49   ` Benoît Canet
2014-06-24 17:08   ` Jeff Cody

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=20140623102432.GA24725@irqsave.net \
    --to=benoit.canet@irqsave.net \
    --cc=famz@redhat.com \
    --cc=jcody@redhat.com \
    --cc=kwolf@redhat.com \
    --cc=pkrempa@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=stefanha@redhat.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.