[Ocfs2-tools-devel] [PATCH 1/2 v4] fsck: supporting fixing inode alloc group desc
piaojun
piaojun at huawei.com
Sat Feb 24 00:40:57 PST 2018
Hi Eric,
On 2018/2/23 17:55, Eric Ren wrote:
> Hi,
>
>>>> + /*
>>>> + * Currently we could only fix the situation that there is one gd
>>>> + * in each chain, because we can hardly rebuild the gd far from
>>>> + * chain header. The key problem is that we can not trust gd
>>>> + * anymore as they have been corrupted. So we must relay on
>>>> + * the ocfs2_chain_list struct to restore all gds.
>>>> + */
>>> As talked in v3 as below:
>>>
>>> ===
>>>
>>>> I still think it's not proper to silently assume that there is only one gd in each chain.
>>>> So, could we give warning for user's attention by check how many
>>>> gds the allocator has? If number of gds > the number of chain recs, give some warnings?
>>>> Eric
>>> Agree, we could give user a choice whether fixing this problem if
>>> gds > the number of chain recs.
>>>
>>> ===
>>>
>>> I cannot see where you enforce this?
>> I add some comment in log to notice user so that they can choose
>> whether fixing this problem.
>>
>> "Note that we could only fix the"
>> "situation that there is one gd in each chain",
>
> I saw it, but I mean we should check and warn users if
>
> "if gds > the number of chain recs.".
>From my analysis, we can hardly get the total number of gds, so I
notice user when corrupted gds are found.
thanks,
Jun
>
> Eric
>
>>
>> thanks,
>> Jun
>>> Eric
>>>
>>>> + for (i = 0; i < cl->cl_next_free_rec; i++) {
>>>> + rec = &cl->cl_recs[i];
>>>> + blkno = rec->c_blkno;
>>>> + bits = rec->c_total;
>>>> +
>>>> + ret = ocfs2_read_group_desc(ost->ost_fs, blkno,
>>>> + (char *)&bgs[corrupted_bgs]);
>>>> + if ((ret == OCFS2_ET_BAD_GROUP_DESC_MAGIC) ||
>>>> + (!ret && bgs[corrupted_bgs].bg_generation != ost->ost_fs_generation)) {
>>>> + if (!prompt(ost, PY, PR_GROUP_EXPECTED_DESC,
>>>> + "Block %"PRIu64" should be a group "
>>>> + "descriptor for the bitmap chain allocator "
>>>> + "but it was corrupted. Reinitialize it as "
>>>> + "a group desc and link it into the bitmap "
>>>> + "allocator? Note that we could only fix the "
>>>> + "situation that there is one gd in each chain",
>>>> + blkno))
>>>> + continue;
>>>> +
>
> .
>
More information about the Ocfs2-tools-devel
mailing list