• Amir G's avatar
    ext4: Fix block bitmap inconsistencies after a crash when deleting files · 40389687
    Amir G authored
    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: default avatarAmir Goldstein <amir73il@users.sf.net>
    Signed-off-by: default avatar"Theodore Ts'o" <tytso@mit.edu>
    40389687
inode.c 173 KB