• Lukas Czerner's avatar
    ext4: recalculate journal credits as inode depth changes · 4134f5c8
    Lukas Czerner authored
    Currently in ext4_alloc_file_blocks() the number of credits is
    calculated only once before we enter the allocation loop. However within
    the allocation loop the extent tree depth can change, hence the number
    of credits needed can increase potentially exceeding the number of credits
    reserved in the handle which can cause journal failures.
    
    Fix this by recalculating number of credits when the inode depth
    changes. Note that even though ext4_alloc_file_blocks() is only
    currently used by extent base inodes we will avoid recalculating number
    of credits unnecessarily in the case of indirect based inodes.
    Signed-off-by: default avatarLukas Czerner <lczerner@redhat.com>
    Signed-off-by: default avatarTheodore Ts'o <tytso@mit.edu>
    4134f5c8
extents.c 162 KB