• Eric Sandeen's avatar
    ext4: lock block groups when initializing · b5f10eed
    Eric Sandeen authored
    I noticed when filling a 1T filesystem with 4 threads using the
    fs_mark benchmark:
    
    fs_mark -d /mnt/test -D 256 -n 100000 -t 4 -s 20480 -F -S 0
    
    that I occasionally got checksum mismatch errors:
    
    EXT4-fs error (device sdb): ext4_init_inode_bitmap: Checksum bad for group 6935
    
    etc.  I'd reliably get 4-5 of them during the run.
    
    It appears that the problem is likely a race to init the bg's
    when the uninit_bg feature is enabled.
    
    With the patch below, which adds sb_bgl_locking around initialization,
    I was able to complete several runs with no errors or warnings.
    Signed-off-by: default avatarEric Sandeen <sandeen@redhat.com>
    Signed-off-by: default avatarTheodore Ts'o <tytso@mit.edu>
    b5f10eed
balloc.c 63.7 KB