On Tue, Apr 01, 2014 at 07:36:46PM -0400, Eric Whitney wrote: > Xfstests generic/311 and shared/298 fail when run on a bigalloc file > system. Kernel error messages produced during the tests report that > blocks to be freed are already on the to-be-freed list. When e2fsck > is run at the end of the tests, it typically reports bad i_blocks and > bad free blocks counts. > > The bug that causes these failures is located in ext4_ext_rm_leaf(). > Code at the end of the function frees a partial cluster if it's not > shared with an extent remaining in the leaf. However, if all the > extents in the leaf have been removed, the code dereferences an > invalid extent pointer (off the front of the leaf) when the check for > sharing is made. This generally has the effect of unconditionally > freeing the partial cluster, which leads to the observed failures > when the partial cluster is shared with the last extent in the next > leaf. > > Fix this by attempting to free the cluster only if extents remain in > the leaf. Any remaining partial cluster will be freed if possible > when the next leaf is processed or when leaf removal is complete. > > Signed-off-by: Eric Whitney <enwlinux@xxxxxxxxx> Thanks, applied. I added a "Cc: stable@xxxxxxxxxxxxxxx" for this patch. Cheers, - Ted -- To unsubscribe from this list: send the line "unsubscribe linux-ext4" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html