Re: [PATCH 3.13 120/187] ext4: fix ext4_discard_allocated_blocks() if we can't allocate the pa struct

Kamal Mostafa
2014-09-17T16:09:00Z

On Wed, 2014-09-17 at 12:13 +0100, Ben Hutchings wrote:
> On Mon, 2014-09-15 at 15:08 -0700, Kamal Mostafa wrote:
> > 3.13.11.7 -stable review patch. If anyone has any objections, please let me know.
> >
> > ------------------
> >
> > From: Theodore Ts'o <tytso@mit.edu>
> >
> > commit 86f0afd463215fc3e58020493482faa4ac3a4d69 upstream.
> >
> > If there is a failure while allocating the preallocation structure, a
> > number of blocks can end up getting marked in the in-memory buddy
> > bitmap, and then not getting released. This can result in the
> > following corruption getting reported by the kernel:
> >
> > EXT4-fs error (device sda3): ext4_mb_generate_buddy:758: group 1126,
> > 12793 clusters in bitmap, 12729 in gd
> >
> > In that case, we need to release the blocks using mb_free_blocks().
> >
> > Tested: fs smoke test; also demonstrated that with injected errors,
> > the file system is no longer getting corrupted
> >
> > Google-Bug-Id: 16657874
> >
> > Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
> > Signed-off-by: Kamal Mostafa <kamal@canonical.com>
> [...]
>
> You need to apply commit c99d1e6e83b0 ("ext4: fix BUG_ON in
> mb_free_blocks()") along with this.
>
> Ben.
>

Ok, that's now queued up for 3.13.11.7 also. Thanks again, Ben.

-Kamal