linux/fs/udf
Jan Kara 9c2fc0de1a udf: Fix data corruption for files in ICB
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.

CC: <stable@vger.kernel.org> # >= 2.6.24
Reported-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Jan Kara <jack@suse.cz>
2012-09-05 16:06:03 +02: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
Makefile switch udf to simple_fsync() 2009-06-11 21:36:13 -04: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-05 16:06:03 +02:00
ialloc.c udf: Init/maintain file entry checkpoint field 2012-02-29 21:53:46 +01:00
inode.c udf: fix udf_setsize() for file data in ICB 2012-08-15 00:21:58 +02:00
lowlevel.c udf: Neaten udf_debug uses 2011-10-31 23:43:58 +01:00
misc.c udf: Rename udf_error to udf_err 2011-10-10 19:29:01 +02:00
namei.c Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs 2012-07-24 17:40:44 -07: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: fix retun value on error path in udf_load_logicalvol 2012-08-15 14:23:23 +02:00
symlink.c udf: Treat symlink component of type 2 as / 2012-01-09 13:52:08 +01:00
truncate.c udf: Do not decrement i_blocks when freeing indirect extent block 2012-07-09 13:24:21 +02: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: stop using s_dirt 2012-07-09 12:03:11 +02: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