diff options
author | Jan Kara <jack@suse.cz> | 2013-01-29 01:53:28 (GMT) |
---|---|---|
committer | Theodore Ts'o <tytso@mit.edu> | 2013-01-29 01:53:28 (GMT) |
commit | 8a850c3fb8d0f204eabc1a32b502f47d3c16eac4 (patch) | |
tree | 7178b6117c8d559e4de519bfc17e792f6456bdd8 /fs/ext4/inode.c | |
parent | b6a8e62f8b0aec7607c947ba0d37d30fef65440f (diff) | |
download | linux-fsl-qoriq-8a850c3fb8d0f204eabc1a32b502f47d3c16eac4.tar.xz |
ext4: Make ext4_bio_writepage() handle unprepared buffers
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: Jan Kara <jack@suse.cz>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
Diffstat (limited to 'fs/ext4/inode.c')
0 files changed, 0 insertions, 0 deletions