1. 19 Jun, 2012 38 commits
  2. 10 Jun, 2012 2 commits
    • Ben Hutchings's avatar
      Linux 3.2.20 · 7313dd15
      Ben Hutchings authored
      7313dd15
    • Theodore Ts'o's avatar
      ext4: fix the free blocks calculation for ext3 file systems w/ uninit_bg · 76f4fa4b
      Theodore Ts'o authored
      commit b0dd6b70 upstream.
      
      Ext3 filesystems that are converted to use as many ext4 file system
      features as possible will enable uninit_bg to speed up e2fsck times.
      These file systems will have a native ext3 layout of inode tables and
      block allocation bitmaps (as opposed to ext4's flex_bg layout).
      Unfortunately, in these cases, when first allocating a block in an
      uninitialized block group, ext4 would incorrectly calculate the number
      of free blocks in that block group, and then errorneously report that
      the file system was corrupt:
      
      EXT4-fs error (device vdd): ext4_mb_generate_buddy:741: group 30, 32254 clusters in bitmap, 32258 in gd
      
      This problem can be reproduced via:
      
          mke2fs -q -t ext4 -O ^flex_bg /dev/vdd 5g
          mount -t ext4 /dev/vdd /mnt
          fallocate -l 4600m /mnt/test
      
      The problem was caused by a bone headed mistake in the check to see if a
      particular metadata block was part of the block group.
      
      Many thanks to Kees Cook for finding and bisecting the buggy commit
      which introduced this bug (commit fd034a84, present since v3.2).
      Reported-by: default avatarSander Eikelenboom <linux@eikelenboom.it>
      Reported-by: default avatarKees Cook <keescook@chromium.org>
      Signed-off-by: default avatar"Theodore Ts'o" <tytso@mit.edu>
      Tested-by: default avatarKees Cook <keescook@chromium.org>
      Signed-off-by: default avatarBen Hutchings <ben@decadent.org.uk>
      76f4fa4b