• A
    GFS2: Update i_size properly on fallocate · 1885867b
    Andrew Price 提交于
    This addresses an issue caught by fsx where the inode size was not being
    updated to the expected value after fallocate(2) with mode 0.
    
    The problem was caused by the offset and len parameters being converted
    to multiples of the file system's block size, so i_size would be rounded
    up to the nearest block size multiple instead of the requested size.
    
    This replaces the per-chunk i_size updates with a single i_size_write on
    successful completion of the operation.  With this patch gfs2 gets
    through a complete run of fsx.
    
    For clarity, the check for (error == 0) following the loop is removed as
    all failures before that point jump to out_* labels or return.
    Signed-off-by: NAndrew Price <anprice@redhat.com>
    Signed-off-by: NSteven Whitehouse <swhiteho@redhat.com>
    1885867b
file.c 27.4 KB