• J
    udf: Discard preallocation before extending file with a hole · 16d05565
    Jan Kara 提交于
    When extending file with a hole, we tried to preserve existing
    preallocation for the file. However that is not very useful and
    complicates code because the previous extent may need to be rounded to
    block boundary as well (which we forgot to do thus causing data
    corruption for sequence like:
    
    xfs_io -f -c "pwrite 0x75e63 11008" -c "truncate 0x7b24b" \
      -c "truncate 0xabaa3" -c "pwrite 0xac70b 22954" \
      -c "pwrite 0x93a43 11358" -c "pwrite 0xb8e65 52211" file
    
    with 512-byte block size. Just discard preallocation before extending
    file to simplify things and also fix this data corruption.
    
    CC: stable@vger.kernel.org
    Signed-off-by: NJan Kara <jack@suse.cz>
    16d05565
inode.c 66.6 KB