Skip to content
  • Jan Kara's avatar
    ext4: Avoid data / filesystem corruption when write fails to copy data · b9a4207d
    Jan Kara authored
    
    
    When ext4_write_begin fails after allocating some blocks or
    generic_perform_write fails to copy data to write, we truncate blocks
    already instantiated beyond i_size.  Although these blocks were never
    inside i_size, we have to truncate the pagecache of these blocks so
    that corresponding buffers get unmapped.  Otherwise subsequent
    __block_prepare_write (called because we are retrying the write) will
    find the buffers mapped, not call ->get_block, and thus the page will
    be backed by already freed blocks leading to filesystem and data
    corruption.
    
    Signed-off-by: default avatarJan Kara <jack@suse.cz>
    Signed-off-by: default avatar"Theodore Ts'o" <tytso@mit.edu>
    b9a4207d