ext4: Fix potential truncate BUG due to i_prealloc_list being non-empty
authorTheodore Ts'o <tytso@mit.edu>
Thu, 14 Aug 2008 01:44:34 +0000 (21:44 -0400)
committerTheodore Ts'o <tytso@mit.edu>
Thu, 14 Aug 2008 01:44:34 +0000 (21:44 -0400)
commitb4df2030858bde986cb6ff2e4b45945f84649e32
tree3f078df884f234383c6708ddc54695700f270417
parentbf068ee266f9dbaa6dacb8433a366bb399e7ae5b
ext4: Fix potential truncate BUG due to i_prealloc_list being non-empty

We need to call ext4_discard_reservation() earlier in ext4_truncate(),
to avoid a BUG() in ext4_mb_return_to_preallocation(), which is called
(ultimately) by ext4_free_blocks().  So we must ditch the blocks on
i_prealloc_list before we start freeing the data blocks.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
fs/ext4/inode.c