summaryrefslogtreecommitdiff
path: root/.gitignore
diff options
context:
space:
mode:
authorEric Whitney <enwlinux@gmail.com>2014-03-14 07:34:16 +0400
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2014-04-23 03:49:21 +0400
commit09f052fac4546b1d1c4623a912d60b3a1a40cab5 (patch)
tree44d98d214fba93520f49d06d897e446a82bc6135 /.gitignore
parentee16aadfc3f2835f11fbb3f58512952bbe52721b (diff)
downloadlinux-09f052fac4546b1d1c4623a912d60b3a1a40cab5.tar.xz
ext4: fix partial cluster handling for bigalloc file systems
commit c06344939422bbd032ac967223a7863de57496b5 upstream. Commit 9cb00419fa, which enables hole punching for bigalloc file systems, exposed a bug introduced by commit 6ae06ff51e in an earlier release. When run on a bigalloc file system, xfstests generic/013, 068, 075, 083, 091, 100, 112, 127, 263, 269, and 270 fail with e2fsck errors or cause kernel error messages indicating that previously freed blocks are being freed again. The latter commit optimizes the selection of the starting extent in ext4_ext_rm_leaf() when hole punching by beginning with the extent supplied in the path argument rather than with the last extent in the leaf node (as is still done when truncating). However, the code in rm_leaf that initially sets partial_cluster to track cluster sharing on extent boundaries is only guaranteed to run if rm_leaf starts with the last node in the leaf. Consequently, partial_cluster is not correctly initialized when hole punching, and a cluster on the boundary of a punched region that should be retained may instead be deallocated. Signed-off-by: Eric Whitney <enwlinux@gmail.com> Signed-off-by: "Theodore Ts'o" <tytso@mit.edu> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to '.gitignore')
0 files changed, 0 insertions, 0 deletions