Bug 194739
Summary: | fallocate --collapse-range causes temporal data corruption on fragmented file | ||
---|---|---|---|
Product: | File System | Reporter: | Ivan Kalvachev (ikalvachev) |
Component: | ext4 | Assignee: | fs_ext4 (fs_ext4) |
Status: | RESOLVED CODE_FIX | ||
Severity: | normal | ||
Priority: | P1 | ||
Hardware: | All | ||
OS: | Linux | ||
Kernel Version: | 4.10.1 | Subsystem: | |
Regression: | No | Bisected commit-id: |
Description
Ivan Kalvachev
2017-03-01 00:00:51 UTC
With kernel-4.10.2 I cannot reproduce the bug anymore. The following commit looks like it might be the one fixing the issue: --- commit 011fe6ade610c2ca5a609c83c509f1fc8e4c8b7f Author: Roman Pen <roman.penyaev@profitbricks.com> Date: Sun Jan 8 21:00:35 2017 -0500 ext4: do not polute the extents cache while shifting extents commit 03e916fa8b5577d85471452a3d0c5738aa658dae upstream. Inside ext4_ext_shift_extents() function ext4_find_extent() is called without EXT4_EX_NOCACHE flag, which should prevent cache population. This leads to oudated offsets in the extents tree and wrong blocks afterwards. Patch fixes the problem providing EXT4_EX_NOCACHE flag for each ext4_find_extents() call inside ext4_ext_shift_extents function. Fixes: 331573febb6a2 --- |