• Salman Qazi's avatar
    ext4: remove mb_groups before tearing down the buddy_cache · 95599968
    Salman Qazi authored
    We can't have references held on pages in the s_buddy_cache while we are
    trying to truncate its pages and put the inode.  All the pages must be
    gone before we reach clear_inode.  This can only be gauranteed if we
    can prevent new users from grabbing references to s_buddy_cache's pages.
    
    The original bug can be reproduced and the bug fix can be verified by:
    
    while true; do mount -t ext4 /dev/ram0 /export/hda3/ram0; \
    	umount /export/hda3/ram0; done &
    
    while true; do cat /proc/fs/ext4/ram0/mb_groups; done
    Signed-off-by: default avatarSalman Qazi <sqazi@google.com>
    Signed-off-by: default avatar"Theodore Ts'o" <tytso@mit.edu>
    Cc: stable@kernel.org
    95599968
mballoc.c 138 KB