Michael Halcrow 240e2df5c7 eCryptfs: fix write zeros behavior
This patch fixes the processes involved in wiping regions of the data during
truncate and write events, fixing a kernel hang in 2.6.22-rc4 while assuring
that zero values are written out to the appropriate locations during events in
which the i_size will change.

The range passed to ecryptfs_truncate() from ecryptfs_prepare_write() includes
the page that is the object of ecryptfs_prepare_write().  This leads to a
kernel hang as read_cache_page() is executed on the same page in the
ecryptfs_truncate() execution path.  This patch remedies this by limiting the
range passed to ecryptfs_truncate() so as to exclude the page that is the
object of ecryptfs_prepare_write(); it also adds code to
ecryptfs_prepare_write() to zero out the region of its own page when writing
past the i_size position.  This patch also modifies ecryptfs_truncate() so
that when a file is truncated to a smaller size, eCryptfs will zero out the
contents of the new last page from the new size through to the end of the last
page.

Signed-off-by: Michael Halcrow <mhalcrow@us.ibm.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-06-28 11:34:53 -07:00
..
2007-05-21 09:18:19 -07:00
2007-05-17 05:23:04 -07:00
2007-05-21 09:18:19 -07:00
2007-05-31 07:58:14 -07:00
2007-05-17 05:23:04 -07:00
2007-05-17 05:23:04 -07:00
2007-06-08 14:55:14 +00:00
2007-05-21 09:18:19 -07:00
2007-05-21 09:18:19 -07:00
2007-05-08 11:14:59 -07:00
2007-05-17 05:23:04 -07:00
2007-05-17 05:23:04 -07:00
2007-06-16 13:16:15 -07:00
2007-05-21 09:18:19 -07:00
2007-05-21 09:18:19 -07:00
2007-05-21 09:18:19 -07:00
2007-05-08 11:14:57 -07:00
2007-05-21 09:18:19 -07:00
2007-05-17 05:23:04 -07:00
2007-05-09 08:58:16 +02:00
2007-05-09 08:58:16 +02:00
2007-05-17 05:23:04 -07:00
2007-05-14 19:33:46 -04:00
2007-05-21 09:18:19 -07:00
2007-05-21 09:18:19 -07:00
2007-05-21 09:18:19 -07:00
2007-05-17 05:23:04 -07:00
2007-05-21 21:38:17 -07:00
2007-05-17 05:23:04 -07:00
2007-05-17 05:23:04 -07:00
2007-05-17 05:23:04 -07:00
2007-05-21 09:18:19 -07:00
2007-05-17 05:23:04 -07:00
2007-06-16 13:16:16 -07:00
2007-05-17 05:23:04 -07:00
2007-05-21 09:18:19 -07:00
2007-05-17 05:23:04 -07:00
2007-05-18 13:09:34 -07:00
2007-05-15 08:54:00 -07:00
2007-05-23 20:14:13 -07:00
2007-05-21 09:18:19 -07:00
2007-05-08 11:15:01 -07:00
2007-05-17 05:23:04 -07:00
2007-05-08 11:15:09 -07:00
2007-06-04 13:25:10 -07:00
2007-05-09 08:58:15 +02:00
2007-05-09 06:44:57 +02:00
2007-05-17 05:23:04 -07:00
2007-05-11 08:29:36 -07:00
2007-05-08 20:10:00 -07:00
2007-05-09 07:10:02 +02:00
2007-05-08 11:15:01 -07:00
2007-05-08 11:15:04 -07:00
2007-05-18 13:09:34 -07:00
2007-05-08 11:15:18 -07:00