2012/12/8 Eric Sandeen <sandeen@xxxxxxxxxx>: > On 12/7/12 6:26 AM, Forrest Liu wrote: >> 2012/12/7 Ashish Sangwan <ashishsangwan2@xxxxxxxxx>: >>> On Thu, Dec 6, 2012 at 9:18 PM, Eric Sandeen <sandeen@xxxxxxxxxx> wrote: >>>> On 12/6/12 9:45 AM, Eric Sandeen wrote: >>>>> On 12/4/12 6:11 AM, Forrest Liu wrote: >>>>>> Extent indexes didn't update correctly in ext4_ext_rm_idx, when depth >>>>>> of extent tree is greater than 1. >>>>> >>>>> This is interesting; we had 2 reports of similar corruption on the >>>>> list, I wonder if the application in question was doing hole punching. >>>>> I didn't expect that they were, so TBH I was pretty much ignoring >>>>> the hole-punch cases for parent index updates. Hm. I'll have >>>>> to look into that. >>>>> Could you turn your testcase into an xfstest regression test? >> >> Hi Eric, >> I will check how to do that. >>>> >>>> Also, please note that I sent an e2fsck patch to try to fix this >>>> problem after the fact; it'd be great if in your testing, you could >>>> also confirm that e2fsck w/ my patch fixes it correctly. >>>> >>> I checked you patch. >>> This was the extent tree situation after removing 1st extent index: >>> debugfs: ex abc >>> Level Entries Logical Physical Length Flags >>> 0/ 2 1/ 1 0 - 8399 32857 8400 >>> 1/ 2 1/ 4 2048 - 4081 4138 2034 >>> 2/ 2 1/339 2048 - 2053 69632 - 69637 6 >>> 2/ 2 2/339 2054 - 2059 69656 - 69661 6 >>> >>> E2fsck's output with your patch=> >>> Linux#> /dtv/usb/sdb1/e2fsck /dev/sda1 -f >>> e2fsck 1.42.6.1 (06-DEC-2012) >>> Pass 1: Checking inodes, blocks, and sizes >>> Interior extent node level 0 of inode 31: >>> Logical start 0 does not match logical start 2048 at next level. Fix<y>? yes >>> Inode 31, i_blocks is 50856, should be 16280. Fix<y>? yes >> >> I got similar result, pb->num_blocks is incorrect if >> ext2fs_extent_fix_parents called. > > Maybe I should ask what it looks like without my patch? I didn't > think my patch would change anything at all about block count > or use. > > -Eric > When i choose not to repair problem of logical start value, there have no message like Inode 31, i_blocks is 50856, should be 16280. Fix<y>? -Forrest -- 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