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

Ben Hutchings
2014-09-17T11:13:33Z

[-- Attachment #1: Type: text/plain, Size: 1206 bytes --]

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.

--
Ben Hutchings
Beware of programmers who carry screwdrivers. - Leonard Brandwein

[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 811 bytes --]