From: Viacheslav Dubeyko <slava@dubeyko.com>
To: "Ernesto A. Fernández" <ernesto.mnd.fernandez@gmail.com>
Cc: linux-fsdevel@vger.kernel.org, Andrew Morton <akpm@linux-foundation.org>
Subject: Re: [PATCH 2/6] hfsplus: fix BUG on bnode parent update
Date: Tue, 23 Oct 2018 18:33:50 -0700 [thread overview]
Message-ID: <1540344830.28908.12.camel@slavad-ubuntu-14.04> (raw)
In-Reply-To: <5ee1db09b60373a15890f6a7c835d00e76bf601d.1535682461.git.ernesto.mnd.fernandez@gmail.com>
On Fri, 2018-08-31 at 00:59 -0300, Ernesto A. Fernández wrote:
> Creating, renaming or deleting a file may hit BUG_ON() if the first
> record of both a leaf node and its parent are changed, and if this
> forces the parent to be split. This bug is triggered by xfstests
> generic/027, somewhat rarely; here is a more reliable reproducer:
>
> truncate -s 50M fs.iso
> mkfs.hfsplus fs.iso
> mount fs.iso /mnt
> i=1000
> while [ $i -le 2400 ]; do
> touch /mnt/$i &>/dev/null
> ((++i))
> done
> i=2400
> while [ $i -ge 1000 ]; do
> mv /mnt/$i /mnt/$(perl -e "print $i x61") &>/dev/null
> ((--i))
> done
>
> The issue is that a newly created bnode is being put twice. Reset
> new_node to NULL in hfs_brec_update_parent() before reaching goto again.
>
> Signed-off-by: Ernesto A. Fernández <ernesto.mnd.fernandez@gmail.com>
> ---
> fs/hfsplus/brec.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/fs/hfsplus/brec.c b/fs/hfsplus/brec.c
> index aa17a392b414..1918544a7871 100644
> --- a/fs/hfsplus/brec.c
> +++ b/fs/hfsplus/brec.c
> @@ -449,6 +449,7 @@ static int hfs_brec_update_parent(struct hfs_find_data *fd)
> /* restore search_key */
> hfs_bnode_read_key(node, fd->search_key, 14);
> }
> + new_node = NULL;
Sorry, I don't follow where the new_node is put twice. Could you explain
in more details? Currently, it looks unclear. I like to assign the NULL
value to the pointer. But are you sure that it's proper place? Maybe it
makes sense to place this assignment in the beginning of the function?
Thanks,
Vyacheslav Dubeyko.
> }
>
> if (!rec && node->parent)
next prev parent reply other threads:[~2018-10-24 11:36 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-08-31 3:58 [PATCH 1/6] hfsplus: prevent btree data loss on root split Ernesto A. Fernández
2018-08-31 3:59 ` [PATCH 2/6] hfsplus: fix BUG on bnode parent update Ernesto A. Fernández
2018-10-24 1:33 ` Viacheslav Dubeyko [this message]
2018-10-24 2:48 ` Ernesto A. Fernández
[not found] ` <20181024143947.4e30cca3ddda937db70237e9@linux-foundation.org>
2018-10-24 22:45 ` Ernesto A. Fernández
2018-08-31 4:00 ` [PATCH 3/6] hfsplus: prevent btree data loss on ENOSPC Ernesto A. Fernández
2018-08-31 4:00 ` [PATCH 4/6] hfs: prevent btree data loss on root split Ernesto A. Fernández
2018-08-31 4:01 ` [PATCH 5/6] hfs: fix BUG on bnode parent update Ernesto A. Fernández
2018-08-31 4:01 ` [PATCH 6/6] hfs: prevent btree data loss on ENOSPC Ernesto A. Fernández
2018-08-31 5:36 ` [PATCH 1/6] hfsplus: prevent btree data loss on root split Christoph Hellwig
2018-08-31 14:55 ` Ernesto A. Fernández
2018-09-01 4:49 ` Dave Chinner
2018-09-02 4:33 ` Ernesto A. Fernández
2018-09-02 23:32 ` Dave Chinner
2018-09-03 0:06 ` Ernesto A. Fernández
2018-09-06 18:28 ` Ernesto A. Fernández
2018-10-24 1:23 ` Viacheslav Dubeyko
2018-10-24 1:32 ` Ernesto A. Fernández
2018-10-25 16:51 ` Viacheslav Dubeyko
2018-10-25 19:42 ` Ernesto A. Fernández
2018-10-26 16:58 ` Viacheslav Dubeyko
2018-10-27 5:15 ` Ernesto A. Fernández
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=1540344830.28908.12.camel@slavad-ubuntu-14.04 \
--to=slava@dubeyko.com \
--cc=akpm@linux-foundation.org \
--cc=ernesto.mnd.fernandez@gmail.com \
--cc=linux-fsdevel@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).