linux/fs/udf
Jan Kara d027dffcc6 udf: Fix data corruption for files in ICB
commit 9c2fc0de1a 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>
2012-09-14 10:00:32 -07:00
..
balloc.c udf: Fix handling of i_blocks 2012-02-29 21:53:47 +01:00
dir.c udf: Remove unnecessary bkl usages 2011-01-06 17:03:57 +01:00
directory.c udf: Neaten udf_debug uses 2011-10-31 23:43:58 +01:00
ecma_167.h Remove struct typedefs from fs/udf/ecma_167.h et al. 2009-04-02 12:29:47 +02:00
file.c udf: Fix data corruption for files in ICB 2012-09-14 10:00:32 -07:00
ialloc.c udf: Init/maintain file entry checkpoint field 2012-02-29 21:53:46 +01:00
inode.c udf: Fix file entry logicalBlocksRecorded 2012-02-29 21:53:47 +01:00
Kconfig Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-udf-2.6 2011-01-11 14:45:52 -08:00
lowlevel.c udf: Neaten udf_debug uses 2011-10-31 23:43:58 +01:00
Makefile switch udf to simple_fsync() 2009-06-11 21:36:13 -04:00
misc.c udf: Rename udf_error to udf_err 2011-10-10 19:29:01 +02:00
namei.c vfs: check i_nlink limits in vfs_{mkdir,rename_dir,link} 2012-03-20 21:29:32 -04:00
osta_udf.h Remove struct typedefs from fs/udf/ecma_167.h et al. 2009-04-02 12:29:47 +02:00
partition.c udf: Cleanup metadata flags handling 2011-10-31 23:49:48 +01:00
super.c udf: Improve table length check to avoid possible overflow 2012-08-09 08:31:36 -07:00
symlink.c udf: Treat symlink component of type 2 as / 2012-01-09 13:52:08 +01:00
truncate.c udf: Convert printks to pr_<level> 2011-10-31 23:43:52 +01:00
udf_i.h udf: Init/maintain file entry checkpoint field 2012-02-29 21:53:46 +01:00
udf_sb.h udf: propagate umode_t 2012-01-03 22:55:08 -05:00
udfdecl.h udf: propagate umode_t 2012-01-03 22:55:08 -05:00
udfend.h Remove struct typedefs from fs/udf/ecma_167.h et al. 2009-04-02 12:29:47 +02:00
udftime.c udf: Convert printks to pr_<level> 2011-10-31 23:43:52 +01:00
unicode.c udf: Convert printks to pr_<level> 2011-10-31 23:43:52 +01:00