Jan Kara
74dae42785
ext4: fix crashes in dioread_nolock mode
...
Competing overwrite DIO in dioread_nolock mode will just overwrite
pointer to io_end in the inode. This may result in data corruption or
extent conversion happening from IO completion interrupt because we
don't properly set buffer_defer_completion() when unlocked DIO races
with locked DIO to unwritten extent.
Since unlocked DIO doesn't need io_end for anything, just avoid
allocating it and corrupting pointer from inode for locked DIO.
A cleaner fix would be to avoid these games with io_end pointer from the
inode but that requires more intrusive changes so we leave that for
later.
Cc: stable@vger.kernel.org
Signed-off-by: Jan Kara <jack@suse.cz>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
2016-02-19 00:33:21 -05:00
..
2016-01-22 18:04:28 -05:00
2016-01-20 17:09:18 -08:00
2016-01-22 18:04:28 -05:00
2016-01-22 18:04:28 -05:00
2015-12-30 13:01:03 -05:00
2016-01-14 16:00:49 -08:00
2016-01-14 16:00:49 -08:00
2016-01-29 15:46:49 -08:00
2016-01-22 18:04:28 -05:00
2016-01-24 12:34:13 -08:00
2016-01-24 12:31:12 -08:00
2016-01-23 12:24:56 -08:00
2016-01-22 18:04:28 -05:00
2016-01-22 18:04:28 -05:00
2016-01-22 18:04:28 -05:00
2016-01-21 17:45:15 -05:00
2016-01-22 18:04:28 -05:00
2016-01-22 18:04:28 -05:00
2016-01-14 16:00:49 -08:00
2016-01-22 18:04:28 -05:00
2016-01-22 18:04:28 -05:00
2016-01-23 12:24:56 -08:00
2016-02-19 00:33:21 -05:00
2016-01-22 18:04:28 -05:00
2016-01-22 18:04:28 -05:00
2016-01-22 18:04:28 -05:00
2016-01-22 18:04:28 -05:00
2016-01-22 18:04:28 -05:00
2016-01-22 18:04:28 -05:00
2016-01-22 18:04:28 -05:00
2016-01-22 18:04:28 -05:00
2016-01-22 18:04:28 -05:00
2016-01-14 16:00:49 -08:00
2016-01-06 13:03:18 -05:00
2016-01-23 12:24:56 -08:00
2016-01-22 18:04:28 -05:00
2016-01-22 18:04:28 -05:00
2016-01-07 10:10:50 -05:00
2016-01-22 18:04:28 -05:00
2016-01-14 16:00:49 -08:00
2016-01-22 18:04:28 -05:00
2016-01-23 12:24:56 -08:00
2016-01-22 18:04:28 -05:00
2016-01-22 18:04:28 -05:00
2016-01-14 16:00:49 -08:00
2016-01-22 18:04:28 -05:00
2016-01-22 18:04:28 -05:00
2016-01-14 16:00:49 -08:00
2016-01-22 18:04:28 -05:00
2016-01-22 18:04:28 -05:00
2016-01-22 18:04:28 -05:00
2016-01-14 16:00:49 -08:00
2016-01-14 16:00:49 -08:00
2016-01-22 18:04:28 -05:00
2016-01-22 18:04:28 -05:00
2016-01-14 16:00:49 -08:00
2016-01-14 16:00:49 -08:00
2016-01-14 16:00:49 -08:00
2016-01-22 18:04:28 -05:00
2016-01-22 18:04:28 -05:00
2016-01-23 12:24:56 -08:00
2016-01-14 16:00:49 -08:00
2016-01-23 12:24:56 -08:00
2016-01-22 18:04:28 -05:00
2016-01-20 00:39:20 +01:00
2016-01-22 18:04:28 -05:00
2016-01-23 12:24:56 -08:00
2016-01-06 13:03:18 -05:00
2016-01-12 17:11:47 -08:00
2016-01-04 10:28:32 -05:00
2016-01-20 17:09:18 -08:00
2016-01-23 12:24:56 -08:00
2016-01-22 18:04:28 -05:00
2016-01-22 18:04:28 -05:00
2016-01-20 17:09:18 -08:00
2016-01-22 18:04:28 -05:00
2016-01-09 02:55:37 -05:00
2016-01-14 16:00:49 -08:00
2016-01-19 12:02:23 -05:00
2016-01-15 17:56:32 -08:00
2016-01-23 12:24:56 -08:00
2016-01-08 21:20:11 -05:00
2016-01-22 18:04:28 -05:00
2016-01-15 17:56:32 -08:00
2016-01-22 18:04:28 -05:00
2016-01-22 18:04:28 -05:00
2016-01-22 18:04:28 -05:00
2016-01-22 18:04:28 -05:00
2016-01-22 18:04:28 -05:00
2016-01-19 19:25:21 -05:00
2016-01-22 20:29:55 -05:00
2016-01-22 18:04:28 -05:00
2016-01-06 08:26:52 -05:00
2016-01-09 02:55:35 -05:00
2016-01-16 11:17:23 -08:00
2016-01-14 17:04:19 -08:00
2016-01-17 11:13:55 +01:00
2016-01-22 18:04:28 -05:00
2016-01-22 18:04:28 -05:00