• Aneesh Kumar K.V's avatar
    ext4: Don't overwrite allocation_context ac_status · 032115fc
    Aneesh Kumar K.V authored
    We can call ext4_mb_check_limits even after successfully allocating
    the requested blocks.  In that case, make sure we don't overwrite
    ac_status if it already has the status AC_STATUS_FOUND.  This fixes
    the lockdep warning:
    
    =============================================
    [ INFO: possible recursive locking detected ]
    2.6.28-rc6-autokern1 #1
    ---------------------------------------------
    fsstress/11948 is trying to acquire lock:
     (&meta_group_info[i]->alloc_sem){----}, at: [<c04d9a49>] ext4_mb_load_buddy+0x9f/0x278
    .....
    
    stack backtrace:
    .....
     [<c04db974>] ext4_mb_regular_allocator+0xbb5/0xd44
    .....
    
    but task is already holding lock:
     (&meta_group_info[i]->alloc_sem){----}, at: [<c04d9a49>] ext4_mb_load_buddy+0x9f/0x278
    Signed-off-by: default avatarAneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
    Signed-off-by: default avatar"Theodore Ts'o" <tytso@mit.edu>
    Cc: stable@kernel.org
    032115fc
mballoc.c 126 KB