diff options
| author | Jan Kara <[email protected]> | 2013-01-29 01:53:28 +0000 |
|---|---|---|
| committer | Theodore Ts'o <[email protected]> | 2013-01-29 01:53:28 +0000 |
| commit | 8a850c3fb8d0f204eabc1a32b502f47d3c16eac4 (patch) | |
| tree | 7178b6117c8d559e4de519bfc17e792f6456bdd8 /fs/jbd2/commit.c | |
| parent | ext4: simplify mpage_add_bh_to_extent() (diff) | |
| download | kernel-8a850c3fb8d0f204eabc1a32b502f47d3c16eac4.tar.gz kernel-8a850c3fb8d0f204eabc1a32b502f47d3c16eac4.zip | |
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 <[email protected]>
Signed-off-by: "Theodore Ts'o" <[email protected]>
Diffstat (limited to 'fs/jbd2/commit.c')
0 files changed, 0 insertions, 0 deletions
