summaryrefslogtreecommitdiff
path: root/fs/libfs.c
diff options
context:
space:
mode:
authorJan Kara <jack@suse.cz>2012-09-05 15:48:23 +0200
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2012-09-14 10:00:32 -0700
commitd027dffcc66f749ee34c74edbd77efaaea573e4d (patch)
tree68f4a5b6be19f40bd11b1cbe43efd623f4e775a5 /fs/libfs.c
parentd3ed1731ba6bca32ac0ac96377cae8fd735e16e6 (diff)
downloadlinux-3.10-d027dffcc66f749ee34c74edbd77efaaea573e4d.tar.gz
linux-3.10-d027dffcc66f749ee34c74edbd77efaaea573e4d.tar.bz2
linux-3.10-d027dffcc66f749ee34c74edbd77efaaea573e4d.zip
udf: Fix data corruption for files in ICB
commit 9c2fc0de1a6e638fe58c354a463f544f42a90a09 upstream. When a file is stored in ICB (inode), we overwrite part of the file, and the page containing file's data is not in page cache, we end up corrupting file's data by overwriting them with zeros. The problem is we use simple_write_begin() which simply zeroes parts of the page which are not written to. The problem has been introduced by be021ee4 (udf: convert to new aops). Fix the problem by providing a ->write_begin function which makes the page properly uptodate. Reported-by: Ian Abbott <abbotti@mev.co.uk> Signed-off-by: Jan Kara <jack@suse.cz> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'fs/libfs.c')
0 files changed, 0 insertions, 0 deletions