All of lore.kernel.org
 help / color / mirror / Atom feed
From: Arne Jansen <sensille@gmx.net>
To: Alexander Block <ablock84@googlemail.com>
Cc: chris.mason@oracle.com, linux-btrfs@vger.kernel.org
Subject: Re: [PATCH 3/3] btrfs: Update comment above ulist_next
Date: Fri, 04 May 2012 21:10:16 +0200	[thread overview]
Message-ID: <4FA42998.6020700@gmx.net> (raw)
In-Reply-To: <1336157665-17328-3-git-send-email-ablock84@googlemail.com>

On 05/04/12 20:54, Alexander Block wrote:
> The comment above ulist_next stated that it's allowed to call ulist_add
> while enumerating. This is actually not allowed as an add may realocate
> the nodes buffer und thus make the prev pointer invalid.
>
> Signed-off-by: Alexander Block<ablock84@googlemail.com>

I'd much prefer to fix the problem in ulist_next, as being able to add
values while enumerating is a key feature of ulist. If it's unfixable,
it should be thrown out completely.

-Arne

> ---
>   fs/btrfs/ulist.c |    4 ++--
>   1 files changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/fs/btrfs/ulist.c b/fs/btrfs/ulist.c
> index 12f5147..07ea3e5 100644
> --- a/fs/btrfs/ulist.c
> +++ b/fs/btrfs/ulist.c
> @@ -198,8 +198,8 @@ EXPORT_SYMBOL(ulist_add);
>    * end is reached. No guarantee is made with respect to the order in which
>    * the elements are returned. They might neither be returned in order of
>    * addition nor in ascending order.
> - * It is allowed to call ulist_add during an enumeration. Newly added items
> - * are guaranteed to show up in the running enumeration.
> + * It is not allowed to call ulist_add during an enumeration as this would
> + * cause undefined behavior.
>    */
>   struct ulist_node *ulist_next(struct ulist *ulist, struct ulist_node *prev)
>   {


      reply	other threads:[~2012-05-04 19:10 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-05-04 18:54 [PATCH 1/3] btrfs: Fix missed backrefs in backref walking code Alexander Block
2012-05-04 18:54 ` [PATCH 2/3] btrfs: Fix ulist related problems " Alexander Block
2012-05-04 18:54 ` [PATCH 3/3] btrfs: Update comment above ulist_next Alexander Block
2012-05-04 19:10   ` Arne Jansen [this message]

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=4FA42998.6020700@gmx.net \
    --to=sensille@gmx.net \
    --cc=ablock84@googlemail.com \
    --cc=chris.mason@oracle.com \
    --cc=linux-btrfs@vger.kernel.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.