• Benjamin Marzinski's avatar
    GFS2: call gfs2_write_alloc_required for each chunk · 58a7d5fb
    Benjamin Marzinski authored
    gfs2_fallocate was calling gfs2_write_alloc_required() once at the start of
    the function. This caused problems since gfs2_write_alloc_required used a
    long unsigned int for the len, but gfs2_fallocate could allocate a much
    larger amount.  This patch will move the call into the loop where the
    chunks are actually allocated and zeroed out. This will keep the allocation
    size under the limit, and also allow gfs2_fallocate to quickly skip over
    sections of the file that are already completely allocated.
    
    fallcate_chunk was also not correctly setting the file size.  It was using the
    len veriable to find the last block written to, but by the time it was setting
    the size, the len variable had already been decremented to 0.
    Signed-off-by: default avatarBenjamin Marzinski <bmarzins@redhat.com>
    Signed-off-by: default avatarSteven Whitehouse <swhiteho@redhat.com>
    58a7d5fb
file.c 25.6 KB