• Younger Liu's avatar
    ocfs2: ac_bits_wanted should be local_alloc_bits when returns -ENOSPC · 7e9b7937
    Younger Liu authored
    There is an issue in reserving and claiming space for localalloc, When
    localalloc space is not enough, it would claim space from global_bitmap.
    And if there is not enough free space in global_bitmap, the size of
    claiming space would set to half of orignal size and retry.
    
    The issue is as follows: osb->local_alloc_bits is set to half of orignal
    size in ocfs2_recalc_la_window(), but ac->ac_bits_wanted is set to
    osb->local_alloc_default_bits which is not changed.  localalloc always
    reserves and claims local_alloc_default_bits space and returns ENOSPC.
    
    So, ac->ac_bits_wanted should be osb->local_alloc_bits which would be
    changed.
    Signed-off-by: default avatarYounger Liu <younger.liu@huawei.com>
    Cc: Joel Becker <jlbec@evilplan.org>
    Cc: Mark Fasheh <mfasheh@suse.com>
    Cc: Jeff Liu <jeff.liu@oracle.com>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    7e9b7937
localalloc.c 33.2 KB