Theodore Ts'o
072bd7ea74
ext4: use truncate_setsize() unconditionally
...
In commit c8d46e41 (ext4: Add flag to files with blocks intentionally
past EOF), if the EOFBLOCKS_FL flag is set, we call ext4_truncate()
before calling vmtruncate(). This caused any allocated but unwritten
blocks created by calling fallocate() with the FALLOC_FL_KEEP_SIZE
flag to be dropped. This was done to make to make sure that
EOFBLOCKS_FL would not be cleared while still leaving blocks past
i_size allocated. This was not necessary, since ext4_truncate()
guarantees that blocks past i_size will be dropped, even in the case
where truncate() has increased i_size before calling ext4_truncate().
So fix this by removing the EOFBLOCKS_FL special case treatment in
ext4_setattr(). In addition, use truncate_setsize() followed by a
call to ext4_truncate() instead of using vmtruncate(). This is more
efficient since it skips the call to inode_newsize_ok(), which has
been checked already by inode_change_ok(). This is also in a win in
the case where EOFBLOCKS_FL is set since it avoids calling
ext4_truncate() twice.
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu >
2011-05-23 15:13:02 -04:00
..
2011-03-23 19:47:13 -07:00
2011-03-31 11:26:23 -03:00
2011-03-24 10:16:26 -07:00
2011-03-31 11:26:23 -03:00
2011-03-31 11:26:23 -03:00
2011-03-31 11:26:23 -03:00
2011-03-24 10:16:26 -07:00
2011-04-07 11:14:49 -07:00
2011-03-31 11:26:23 -03:00
2011-04-07 11:14:49 -07:00
2011-03-31 11:26:23 -03:00
2011-03-25 17:45:16 -07:00
2011-03-31 11:26:23 -03:00
2011-01-13 08:03:23 -08:00
2011-02-18 08:07:18 -08:00
2011-03-22 17:44:17 -07:00
2011-03-31 11:26:23 -03:00
2011-03-31 11:26:23 -03:00
2011-03-10 08:52:07 +01:00
2011-03-31 11:26:23 -03:00
2011-03-15 02:21:44 -04:00
2011-03-31 11:26:23 -03:00
2011-04-08 07:35:17 -07:00
2011-05-23 15:13:02 -04:00
2011-03-24 10:16:26 -07:00
2011-03-31 11:26:23 -03:00
2011-01-14 09:23:36 -08:00
2011-03-31 11:26:23 -03:00
2011-03-31 11:26:23 -03:00
2011-03-24 10:16:26 -07:00
2011-03-24 10:16:26 -07:00
2011-01-12 20:03:42 -05:00
2011-03-24 10:16:26 -07:00
2011-01-07 17:50:26 +11:00
2011-03-22 17:44:02 -07:00
2011-03-24 10:16:26 -07:00
2011-03-31 11:26:23 -03:00
2011-05-22 21:45:26 -04:00
2011-03-31 11:26:23 -03:00
2011-03-31 11:26:23 -03:00
2011-01-25 15:24:47 -05:00
2011-03-31 11:26:23 -03:00
2011-03-24 10:16:26 -07:00
2011-03-31 11:26:23 -03:00
2011-04-08 11:47:35 -07:00
2011-03-31 11:26:23 -03:00
2011-04-11 15:45:17 -07:00
2011-04-05 23:51:48 +02:00
2011-04-07 11:14:49 -07:00
2011-03-31 11:26:23 -03:00
2011-03-31 11:26:23 -03:00
2011-03-24 10:16:26 -07:00
2011-01-07 17:50:26 +11:00
2011-03-31 11:26:23 -03:00
2011-03-31 11:26:23 -03:00
2011-03-31 11:26:23 -03:00
2011-03-10 08:52:07 +01:00
2011-04-08 07:35:17 -07:00
2010-10-29 04:16:31 -04:00
2011-03-31 11:26:23 -03:00
2011-01-07 17:50:26 +11:00
2011-03-31 11:26:23 -03:00
2011-01-20 17:02:05 -08:00
2011-03-24 10:16:26 -07:00
2011-04-07 11:31:03 -07:00
2011-03-24 10:16:26 -07:00
2011-04-07 11:14:49 -07:00
2011-04-11 15:48:57 -07:00
2011-03-24 10:16:26 -07:00
2011-01-16 13:47:07 -05:00
2011-03-31 11:26:23 -03:00
2011-01-07 17:50:29 +11:00
2010-10-14 10:57:40 -07:00
2011-03-23 20:51:42 -07:00
2011-03-31 11:26:23 -03:00
2010-10-29 04:16:28 -04:00
2011-03-17 11:11:05 +01:00
2011-03-31 11:26:23 -03:00
2011-03-31 11:26:23 -03:00
2011-03-24 19:01:30 -07:00
2011-01-13 10:45:01 -08:00
2011-01-07 14:39:20 -08:00
2011-03-21 00:16:08 -04:00
2011-03-18 10:51:11 -07:00
2011-03-24 10:16:26 -07:00
2011-03-24 21:16:32 -04:00
2011-02-21 15:07:04 -08:00
2011-03-31 11:26:23 -03:00
2011-03-21 00:16:09 -04:00
2011-03-23 19:47:13 -07:00
2011-03-15 02:21:44 -04:00
2011-03-21 00:16:09 -04:00
2011-03-16 13:26:17 -07:00
2011-01-07 17:50:27 +11:00
2011-01-16 13:47:07 -05:00
2011-03-31 11:26:23 -03:00
2011-03-23 19:47:13 -07:00
2011-04-05 23:51:48 +02:00
2011-03-24 21:17:51 -04:00
2011-03-21 00:16:08 -04:00
2010-11-15 10:23:31 +01:00
2011-03-16 19:01:29 -07:00
2010-10-27 18:03:12 -07:00
2011-01-12 20:03:43 -05:00
2011-03-24 08:20:39 -07:00
2011-03-16 19:01:29 -07:00
2011-03-31 11:26:23 -03:00
2011-03-10 08:52:26 +01:00
2011-03-31 11:26:23 -03:00
2011-03-22 17:44:10 -07:00
2011-03-14 09:15:28 -04:00
2010-10-15 15:53:27 +02:00
2011-03-21 01:10:41 -04:00
2011-01-20 16:21:59 -08:00
2011-01-07 17:50:33 +11:00
2011-01-25 15:24:47 -05:00
2011-01-12 20:06:58 -05:00
2011-03-21 00:16:08 -04:00
2010-10-25 21:26:12 -04:00
2010-10-26 10:13:10 -07:00
2011-01-13 10:45:01 -08:00
2011-03-15 02:21:45 -04:00
2011-03-14 09:15:28 -04:00
2011-03-24 10:16:26 -07:00
2011-03-24 10:16:26 -07:00
2010-10-15 15:53:27 +02:00
2011-03-23 19:47:13 -07:00
2011-03-23 19:47:13 -07:00