summaryrefslogtreecommitdiffstats
path: root/fs/ext4/namei.c
diff options
context:
space:
mode:
authorJan Kara <jack@suse.cz>2017-05-26 23:45:45 +0200
committerTheodore Ts'o <tytso@mit.edu>2017-05-26 23:45:45 +0200
commita056bdaae7a181f7dcc876cfab2f94538e508709 (patch)
tree3ad9b6fbe6df4e031e1a9db45dbfd65214a9b066 /fs/ext4/namei.c
parentext4: fix data corruption with EXT4_GET_BLOCKS_ZERO (diff)
downloadlinux-a056bdaae7a181f7dcc876cfab2f94538e508709.tar.xz
linux-a056bdaae7a181f7dcc876cfab2f94538e508709.zip
ext4: fix data corruption for mmap writes
mpage_submit_page() can race with another process growing i_size and writing data via mmap to the written-back page. As mpage_submit_page() samples i_size too early, it may happen that ext4_bio_write_page() zeroes out too large tail of the page and thus corrupts user data. Fix the problem by sampling i_size only after the page has been write-protected in page tables by clear_page_dirty_for_io() call. Reported-by: Michael Zimmer <michael@swarm64.com> CC: stable@vger.kernel.org Fixes: cb20d5188366f04d96d2e07b1240cc92170ade40 Signed-off-by: Jan Kara <jack@suse.cz> Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Diffstat (limited to 'fs/ext4/namei.c')
0 files changed, 0 insertions, 0 deletions