On Tue, Dec 10, 2013 at 05:22:59PM -0800, Darrick J. Wong wrote: > When bigalloc is enabled, using ext2fs_block_alloc_stats2() to free > any block in a cluster has the effect of freeing the entire cluster. > This is problematic if a caller instructs us to punch, say, blocks > 12-15 of a 16-block cluster, because blocks 0-11 now point to a "free" > cluster. > > The naive way to solve this problem is to see if any of the other > blocks in this logical cluster map to a physical cluster. If so, then > we know that the cluster is still in use and it mustn't be freed. > Otherwise, we are punching the last mapped block in this cluster, so > we can free the cluster. > > The implementation given only does the rigorous checks for the partial > clusters at the beginning and end of the punching range. > > v2: Refactor the block free code into a separate helper function that > should be more efficient. > > Reviewed-by: Zheng Liu <wenqing.lz@xxxxxxxxxx> > Signed-off-by: Darrick J. Wong <darrick.wong@xxxxxxxxxx> Thanks, applied. - 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