On 01/30/2015 12:56 PM, Chris J Arges wrote: > Hi, > > Users of non-extent ext4 filesystems (ext4 ^extents, or ext3 w/ > CONFIG_EXT4_USE_FOR_EXT23=y) can encounter data corruption when using > fallocate with FALLOC_FL_PUNCH_HOLE | FALLOC_FL_KEEP_SIZE flags. This > seems to be a regression in ext4_ind_remove_space introduced in > 4f579ae7, whereas commit 77ea2a4b passes the following test case. > > To reproduce this issue do the following: > 1) Setup ext4 ^extents, or ext3 filesystem with CONFIG_EXT4_USE_FOR_EXT23=y > 2) Create and install a VM using a qcow2 image and store the file on the > filesystem > 3) Snapshot the image with qemu-img > 4) Boot the image and do some disk operations (fio,etc) > 5) Shutdown image and delete snapshot > 6) Repeat 3-5 until VM no longer boots due to image corruption, > generally this takes a few iterations depending on disk operations. > > In addition, I've tested this with a single vCPU and single host CPU and > the problem persists. Running the same test on ext4 w/ extents exhibits > no failures. > > Any ideas for bug hunting here? Commit 4f579ae7 completely re-writes > ext4_ind_remove_space. A revert of that commit from master fixes the > issue, but I'm unsure if that un-fixes other things. Well, after a bit more extensive testing a revert of this patch still has failures. This may just be a novel bug. I'll run longer tests on 77ea2a4b as well. --chris I'm happy to > continue debugging, or run any tests as necessary. > > Thanks, > --chris j arges > -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html