summaryrefslogtreecommitdiffstats
path: root/Documentation/dynamic-debug-howto.txt
diff options
context:
space:
mode:
authorEric Whitney <enwlinux@gmail.com>2014-11-23 06:58:11 +0100
committerTheodore Ts'o <tytso@mit.edu>2014-11-23 06:58:11 +0100
commit5bf43760654fa618fb8bb1612ee2d7ae164f7f94 (patch)
tree6d54071f41a3980e45a2eda128deb1b42f5cb1b4 /Documentation/dynamic-debug-howto.txt
parentext4: fix partial cluster initialization (diff)
downloadlinux-5bf43760654fa618fb8bb1612ee2d7ae164f7f94.tar.xz
linux-5bf43760654fa618fb8bb1612ee2d7ae164f7f94.zip
ext4: fix end of leaf partial cluster handling
The fix in commit ad6599ab3ac9 ("ext4: fix premature freeing of partial clusters split across leaf blocks"), intended to avoid dereferencing an invalid extent pointer when determining whether a partial cluster should be freed, wasn't quite good enough. Assure that at least one extent remains at the start of the leaf once the hole has been punched. Otherwise, the pointer to the extent to the right of the hole will be invalid and a partial cluster will be incorrectly freed. Set partial_cluster to 0 when we can tell we've hit the left edge of the punched region within the leaf. This prevents incorrect freeing of a partial cluster when ext4_ext_rm_leaf is called one last time during extent tree traversal after the punched region has been removed. Adjust comments to reflect code changes and a correction. Remove a bit of dead code. Signed-off-by: Eric Whitney <enwlinux@gmail.com> Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Diffstat (limited to 'Documentation/dynamic-debug-howto.txt')
0 files changed, 0 insertions, 0 deletions