[Ocfs2-tools-devel] [PATCH 0/3] Add extent list check for discontig block group.

Tao Ma tao.ma at oracle.com
Wed Jul 21 00:24:45 PDT 2010


Hi all,
	These 3 patches add some basic extent list check for discontig block 
group. So for a corrupted discontig block group, we will check:
1. l_tree_depth must be set to 0.
2. l_count must be set to ocfs2_extent_recs_per_gd.
3. if l_next_free_rec is broken and the extent record list looks
    sane, update l_next_free_rec.
4. if any extent record has an invalid e_cpos, dropt the group.
5. if there is only one rec which has insane e_leaf_clusters(greater 
than the total clusters in the volume), update it according to other 
extent records.
6. if one extent record looks broken while all the others look
    sane and complete, remove it(can we ever meet with it?).

There is still one issue I can't make sure. What about e_leaf_clusters 
looks like sane. See the below example.
e_cpos	e_leaf_clusters	e_blkno
0	12		10000
10	10		20000

Currently I drop the group because that is not easy to tell which record 
needs fix. We may have a very complicated solution(say check the global 
bitmap to see whether the intersection is allocated and read the real 
block to see whether it contains valid data) etc, but it is too much 
complicated and depends on other parts which should be consistent and 
right. I think it doesn't worth. Joel, do you have any idea that we can 
solve this easier and quickly or we can leave it as-is?

Regards,
Tao



More information about the Ocfs2-tools-devel mailing list