• Andreas Gruenbacher's avatar
    gfs2: Fix filesystem block deallocation for short writes · d031a886
    Andreas Gruenbacher authored
    When a write cannot be carried out in full, gfs2_iomap_end() releases
    blocks that have been allocated for this write but haven't been used.
    
    To compute the end of the allocation, gfs2_iomap_end() incorrectly
    rounded the end of the attempted write down to the next block boundary
    to arrive at the end of the allocation.  It would have to round up, but
    the end of the allocation is also available as iomap->offset +
    iomap->length, so just use that instead.
    
    In addition, use round_up() for computing the start of the unused range.
    
    Fixes: 64bc06bb ("gfs2: iomap buffered write support")
    Signed-off-by: default avatarAndreas Gruenbacher <agruenba@redhat.com>
    d031a886
bmap.c 64.4 KB