• Theodore Ts'o's avatar
    ext4: Add fallback for find_group_flex · 05bf9e83
    Theodore Ts'o authored
    This is a workaround for find_group_flex() which badly needs to be
    replaced.  One of its problems (besides ignoring the Orlov algorithm)
    is that it is a bit hyperactive about returning failure under
    suspicious circumstances.  This can lead to spurious ENOSPC failures
    even when there are inodes still available.
    
    Work around this for now by retrying the search using
    find_group_other() if find_group_flex() returns -1.  If
    find_group_other() succeeds when find_group_flex() has failed, log a
    warning message.
    
    A better block/inode allocator that will fix this problem for real has
    been queued up for the next merge window.
    Signed-off-by: default avatar"Theodore Ts'o" <tytso@mit.edu>
    05bf9e83
ialloc.c 31 KB