]> git.baikalelectronics.ru Git - kernel.git/commit
ext4: Fix block bitmap inconsistencies after a crash when deleting files
authorAmir G <amir73il@users.sourceforge.net>
Tue, 27 Jul 2010 15:56:05 +0000 (11:56 -0400)
committerTheodore Ts'o <tytso@mit.edu>
Tue, 27 Jul 2010 15:56:05 +0000 (11:56 -0400)
commitd28a6747675c61bd38e3625e7fa1e97f0d4d93ec
treed2a49d494754e7fa28d33c2389f78a5b5da0db4f
parenta51836537c2950b42221d07e56c3b02640f85490
ext4: Fix block bitmap inconsistencies after a crash when deleting files

We have experienced bitmap inconsistencies after crash during file
delete under heavy load.  The crash is not file system related and I
the following patch in ext4_free_branches() fixes the recovery
problem.

If the transaction is restarted and there is a crash before the new
transaction is committed, then after recovery, the blocks that this
indirect block points to have been freed, but the indirect block
itself has not been freed and may still point to some of the free
blocks (because of the ext4_forget()).

So ext4_forget() should be called inside ext4_free_blocks() to avoid
this problem.

Signed-off-by: Amir Goldstein <amir73il@users.sf.net>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
fs/ext4/inode.c