[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