• Jan Kara's avatar
    ext4: Make ext4_bio_writepage() handle unprepared buffers · 8a850c3f
    Jan Kara authored
    So far ext4_bio_writepage() unconditionally cleared dirty bit on all
    buffers underlying the page. That implicitely assumes we can write all
    buffers. So far that is true because callers call into
    ext4_bio_writepage() make sure all buffers in the page are mapped but:
    
    a) it's a data corruption bug waiting to happen
    b) in data=ordered mode when blocksize < pagesize we do need to write
       pages that may have only some of dirty buffers mapped.
    
    So change ext4_bio_writepage() to skip buffers that cannot be written without
    clearing their dirty bit.
    Signed-off-by: default avatarJan Kara <jack@suse.cz>
    Signed-off-by: default avatar"Theodore Ts'o" <tytso@mit.edu>
    8a850c3f
page-io.c 12 KB