• Bernard Blackham's avatar
    [PATCH] ext2 corruption - regression between 2.6.9 and 2.6.10 · e072c6f2
    Bernard Blackham authored
    Whilst trying to stress test a Promise SX8 card, we stumbled across
    some nasty filesystem corruption in ext2. Our tests involved
    creating an ext2 partition, mounting, running several concurrent
    fsx's over it, umounting, and fsck'ing, all scripted[1]. The fsck
    would always return with errors.
    
    This regression was traced back to a change between 2.6.9 and
    2.6.10, which moves the functionality of ext2_put_inode into
    ext2_clear_inode.  The attached patch reverses this change, and
    eliminated the source of corruption.
    
    Mingming Cao <cmm@us.ibm.com> said:
    
    I think his patch for ext2 is correct.  The corruption on ext3 is not the same
    issue he saw on ext2.  I believe that's the race between discard reservation
    and reservation in-use that we already fixed it in 2.6.12- rc1.
    
    For the problem related to ext2, at the time when we design reservation for
    ext3, we decide we only need to discard the reservation at the last file
    close, so we have ext3_discard_r...
    e072c6f2
ext2.h 5.37 KB