From: Zheng Liu <gnehzuil.liu@gmail.com>
To: Greg KH <greg@kroah.com>
Cc: Ted Ts'o <tytso@mit.edu>, Tao Ma <tm@tao.ma>,
linux-ext4@vger.kernel.org,
Xiaoyun Mao <xiaoyun.maoxy@aliyun-inc.com>,
Yingbin Wang <yingbin.wangyb@aliyun-inc.com>,
Jia Wan <jia.wanj@aliyun-inc.com>
Subject: [PATCH] ext4: fix BUG_ON() in ext4_ext_insert_extent() for .33 longterm
Date: Fri, 28 Oct 2011 20:36:22 +0800 [thread overview]
Message-ID: <20111028123622.GB26003@gmail.com> (raw)
In-Reply-To: <20111028090759.GA22822@kroah.com>
On Fri, Oct 28, 2011 at 11:07:59AM +0200, Greg KH wrote:
> On Fri, Oct 28, 2011 at 04:46:52PM +0800, Zheng Liu wrote:
> > On Fri, Oct 28, 2011 at 07:24:06AM +0200, Greg KH wrote:
> > > On Fri, Oct 28, 2011 at 10:36:08AM +0800, Zheng Liu wrote:
> > > > On Thu, Oct 27, 2011 at 01:53:22PM +0200, Greg KH wrote:
> > > > > On Thu, Oct 27, 2011 at 05:43:29AM -0400, Ted Ts'o wrote:
> > > > > > On Wed, Sep 28, 2011 at 06:45:03PM +0800, Tao Ma wrote:
> > > > > > > actually this bug does show up in 2.6.39 and I think stable tree still
> > > > > > > needs this fix. After some careful test, my colleague has generated
> > > > > > > the patch. Please considering ack it so that Greg can add it into the
> > > > > > > stable tree.
> > > > > >
> > > > > > Sorry for the delay, but yes. This patch would be good for the stable
> > > > > > tree for 2.6.39 (if Greg is still accepting patches for
> > > > > > 2.6.39-stable). It doesn't apply for upstream ext4 since the code has
> > > > > > been changed/refactored since then, but it's a good fix.
> > > > >
> > > > > No, .39 has not been maintained for quite some time now, sorry.
> > > > Hi Greg,
> > > >
> > > > Thank you for your attention. Actually this bug is between from .32 to
> > > > .39. Please considering to apply this patch to other stable or longterm
> > > > trees.
> > >
> > > Ah, ok, that makes sense, can you provide me a patch that will apply to
> > > the .32 and .33-longterm kernels?
> > Hi Greg,
> >
> > I couldn't download the .32 and .33-longterm kernels from kernel.org
> > because the full sources were not found on that server. Thus this patch
> > is generated from the .32-mainline kernel and can be applied to the .32
> > and .33 kernels.
>
> The .32 and .33 longterm kernels are part of the linux-stable tree on
> git.kernel.org, they are in their own branch. Please redo this against
> those trees, as I'm pretty sure that there will be conflicts, due to all
> of the different changes since the .0 releases.
Hi Greg,
This patch is for .33 longterm kernel. Please apply it.
regards,
Zheng
>From 86c78ef9cd861146a48e8a643601c165b0e80849 Mon Sep 17 00:00:00 2001
From: Zheng Liu <wenqing.lz@taobao.com>
Date: Fri, 28 Oct 2011 19:45:31 +0800
Subject: [PATCH] ext4: fix BUG_ON() in ext4_ext_insert_extent()
We will meet with a BUG_ON() if following script is run.
mkfs.ext4 -b 4096 /dev/sdb1 1000000
mount -t ext4 /dev/sdb1 /mnt/sdb1
fallocate -l 100M /mnt/sdb1/test
sync
for((i=0;i<170;i++))
do
dd if=/dev/zero of=/mnt/sdb1/test conv=notrunc bs=256k count=1
seek=`expr $i \* 2`
done
umount /mnt/sdb1
mount -t ext4 /dev/sdb1 /mnt/sdb1
dd if=/dev/zero of=/mnt/sdb1/test conv=notrunc bs=256k count=1 seek=341
umount /mnt/sdb1
mount /dev/sdb1 /mnt/sdb1
dd if=/dev/zero of=/mnt/sdb1/test conv=notrunc bs=256k count=1 seek=340
sync
The reason is that it forgot to mark dirty when splitting two extents in
ext4_ext_convert_to_initialized(). Althrough ex has been updated in
memory,
it is not dirtied both in ext4_ext_convert_to_initialized() and
ext4_ext_insert_extent(). The disk layout is corrupted. Then it will
meet with
a BUG_ON() when writting at the start of that extent again.
Cc: stable@kernel.org #for 2.6.33
Cc: Greg Kroah-Hartman <greg@kroah.com>
Cc: "Theodore Ts'o" <tytso@mit.edu>
Cc: Xiaoyun Mao <xiaoyun.maoxy@aliyun-inc.com>
Cc: Yingbin Wang <yingbin.wangyb@aliyun-inc.com>
Cc: Jia Wan <jia.wanj@aliyun-inc.com>
Signed-off-by: Zheng Liu <wenqing.lz@taobao.com>
---
fs/ext4/extents.c | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
diff --git a/fs/ext4/extents.c b/fs/ext4/extents.c
index 505a281..6cb1bbd 100644
--- a/fs/ext4/extents.c
+++ b/fs/ext4/extents.c
@@ -2566,6 +2566,7 @@ static int
ext4_ext_convert_to_initialized(handle_t *handle,
ex1 = ex;
ex1->ee_len = cpu_to_le16(iblock - ee_block);
ext4_ext_mark_uninitialized(ex1);
+ ext4_ext_dirty(handle, inode, path + depth);
ex2 = &newex;
}
/*
--
1.7.4.1
> --
> To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
next prev parent reply other threads:[~2011-10-28 12:35 UTC|newest]
Thread overview: 39+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-09-06 7:24 ext4 BUG in dom0 Kernel 2.6.32.36 MaoXiaoyun
2011-09-06 7:24 ` MaoXiaoyun
2011-09-06 11:33 ` MaoXiaoyun
2011-09-06 11:33 ` MaoXiaoyun
2011-09-06 14:53 ` Konrad Rzeszutek Wilk
2011-09-06 15:11 ` MaoXiaoyun
2011-09-06 15:11 ` MaoXiaoyun
2011-09-06 18:55 ` [Xen-devel] " Jeremy Fitzhardinge
2011-09-07 2:35 ` MaoXiaoyun
2011-09-07 2:35 ` MaoXiaoyun
2011-09-16 6:08 ` MaoXiaoyun
2011-09-16 6:08 ` MaoXiaoyun
2011-09-25 8:45 ` [patch 1/1] ext4-fix-dirty-extent-when-origin-leaf-extent-reac.patch MaoXiaoyun
2011-09-25 8:45 ` MaoXiaoyun
2011-09-26 14:28 ` Konrad Rzeszutek Wilk
2011-09-27 2:22 ` MaoXiaoyun
2011-09-27 2:22 ` MaoXiaoyun
2011-09-27 9:09 ` [Xen-devel] " Jan Beulich
2011-09-27 9:09 ` Jan Beulich
2011-09-27 9:54 ` Tao Ma
2011-09-27 19:35 ` Ted Ts'o
2011-09-27 23:41 ` Olivier B.
2011-09-28 12:47 ` Konrad Rzeszutek Wilk
2011-09-28 4:09 ` MaoXiaoyun
2011-09-28 4:09 ` MaoXiaoyun
2011-09-28 10:45 ` [PATCH] ext4: fix BUG_ON() in ext4_ext_insert_extent() Tao Ma
2011-10-27 9:43 ` Ted Ts'o
2011-10-27 11:53 ` Greg KH
2011-10-28 2:36 ` Zheng Liu
2011-10-28 5:24 ` Greg KH
2011-10-28 8:46 ` Zheng Liu
2011-10-28 9:07 ` Greg KH
2011-10-28 12:34 ` [PATCH] ext4: fix BUG_ON() in ext4_ext_insert_extent() for .32 longterm Zheng Liu
2011-11-02 21:00 ` Greg KH
2011-11-03 3:06 ` Zheng Liu
2011-11-03 17:42 ` Greg KH
2011-10-28 12:36 ` Zheng Liu [this message]
2011-09-28 18:41 ` [Xen-devel] Re: [patch 1/1] ext4-fix-dirty-extent-when-origin-leaf-extent-reac.patch Jeremy Fitzhardinge
2011-09-28 19:46 ` Ted Ts'o
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=20111028123622.GB26003@gmail.com \
--to=gnehzuil.liu@gmail.com \
--cc=greg@kroah.com \
--cc=jia.wanj@aliyun-inc.com \
--cc=linux-ext4@vger.kernel.org \
--cc=tm@tao.ma \
--cc=tytso@mit.edu \
--cc=xiaoyun.maoxy@aliyun-inc.com \
--cc=yingbin.wangyb@aliyun-inc.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.