lkml.org 
[lkml]   [2009]   [Feb]   [18]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[patch 21/39] ext4: Dont overwrite allocation_context ac_status

    2.6.28-stable review patch. If anyone has any objections, please let us know.

    ------------------
    From: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>

    (cherry picked from commit 032115fcef837a00336ddf7bda584e89789ea498)

    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: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
    Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
    ---
    fs/ext4/mballoc.c | 2 ++
    1 file changed, 2 insertions(+)
    --- a/fs/ext4/mballoc.c
    +++ b/fs/ext4/mballoc.c
    @@ -1326,6 +1326,8 @@ static void ext4_mb_check_limits(struct
    struct ext4_free_extent ex;
    int max;

    + if (ac->ac_status == AC_STATUS_FOUND)
    + return;
    /*
    * We don't want to scan for a whole year
    */


    \
     
     \ /
      Last update: 2009-02-18 22:45    [W:0.352 / U:0.928 seconds]
    ©2003-2014 Jasper Spaans. Advertise on this site