[Ocfs2-tools-devel] bz 1324 status?

Goldwyn Rodrigues rgoldwyn at gmail.com
Thu Aug 11 21:02:24 PDT 2011


Hi Tiger,

On Thu, Aug 11, 2011 at 9:19 PM, Tiger Yang <tiger.yang at oracle.com> wrote:
> Hi, Goldwyn,
>
> I see. Now I met a problem when try to fix the hole on directory inode. We
> have to check and fix the indexed-dir tree after we changed the i_size, the
> current code didn't handle this.
>

Thanks for the review. Yes, it does not handle directory indexing.

> Sunil,
> To fix this problem, one way is check and fix the old tree, the other way is
> delete the old tree and rebuild it, which way is better?
>

AFAIK the fsck code does not handle fixing old dx dir tree, it only
rebuilds in case of corruption.
The problem with rebuilding it for the directory in this patchset is
that directory blocks are checked in the next pass (2). The
dirblock_data which accounts for the list of directory inodes to be
indexed is not available in pass 1. So, I see one of the two
possibilities:

1. Make the dirblock_data structure available across the passes,
perhaps keep it in the o2fsck_state

2. Set di->i_dx_root as 0ULL and disable with i_dyn_features in pass
1. In pass 2, If the directory is not inline and di->i_dx_root is
0ULL, rebuild the index tree for the directory.

The second option will assist my other set of patches which avoid the
filesystem turning read-only in case of index directory corruptions
(http://oss.oracle.com/pipermail/ocfs2-devel/2011-August/008312.html).
 Hence, I support the second option :)

I will be happy to assist making the patch, if required.

Regards,

-- 
Goldwyn



More information about the Ocfs2-tools-devel mailing list