Xin Yin 0b5b5a62b9 ext4: use ext4_ext_remove_space() for fast commit replay delete range
For now ,we use ext4_punch_hole() during fast commit replay delete range
procedure. But it will be affected by inode->i_size, which may not
correct during fast commit replay procedure. The following test will
failed.

-create & write foo (len 1000K)
-falloc FALLOC_FL_ZERO_RANGE foo (range 400K - 600K)
-create & fsync bar
-falloc FALLOC_FL_PUNCH_HOLE foo (range 300K-500K)
-fsync foo
-crash before a full commit

After the fast_commit reply procedure, the range 400K-500K will not be
removed. Because in this case, when calling ext4_punch_hole() the
inode->i_size is 0, and it just retruns with doing nothing.

Change to use ext4_ext_remove_space() instead of ext4_punch_hole()
to remove blocks of inode directly.

Signed-off-by: Xin Yin <yinxin.x@bytedance.com>
Reviewed-by: Harshad Shirwadkar <harshadshirwadkar@gmail.com>
Link: https://lore.kernel.org/r/20211223032337.5198-2-yinxin.x@bytedance.com
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Cc: stable@kernel.org
2022-01-10 13:25:54 -05:00
..
2021-11-10 21:16:56 +00:00
2021-11-10 21:17:09 +00:00
2021-08-19 09:02:55 +09:00
2021-11-26 11:24:32 -08:00
2021-11-09 10:02:51 -08:00
2021-10-25 19:11:50 -07:00
2021-04-12 15:04:29 +02:00
2021-11-13 15:32:30 -08:00
2021-11-01 10:25:27 -07:00
2021-12-02 12:41:10 +01:00
2021-08-26 22:28:02 +02:00
2021-11-03 09:23:25 -07:00
2021-11-29 10:10:26 -08:00
2021-11-27 10:33:55 -08:00
2021-11-09 10:51:12 -08:00
\n
2021-11-06 16:40:48 -07:00
\n
2021-11-06 16:40:48 -07:00
2021-11-09 12:53:58 +01:00
2021-08-19 09:02:55 +09:00
2021-11-17 09:26:09 +01:00
2021-10-18 14:43:22 -06:00
2021-08-31 11:13:35 -07:00
2021-09-09 13:25:49 -07:00
2021-11-17 10:36:35 -05:00
2021-10-19 05:49:54 -06:00
2021-08-31 11:06:32 -07:00
2021-10-19 14:11:39 -04:00
2021-11-01 09:06:53 -07:00
2021-08-10 17:57:22 +02:00