On 2024/12/3 14:37, Jooyung Han wrote:
(I forgot to reply all)

Yeah, I received that.


On Tue, Dec 3, 2024 at 11:36 AM Gao Xiang <hsiang...@linux.alibaba.com> wrote:



On 2024/12/3 10:20, Jooyung Han wrote:
Hi Gao,

I found that in the loop erofs_iget_from_srcpath() is called in
different order due to readdir and erofs_iget_from_srcpath() calls
erofs_new_inode() which fills i_ino[0] for newly created inode. I
think this i_ino[0] having different values caused the difference in
the output.

Oh, okay, that makes sense, I think we'd better move

inode->i_ino[0] = sbi->inos++;  /* inode serial number */

to erofs_mkfs_dump_tree()  (since we'd better to leave
i_ino[0] stable even without dumping from localdir later.)
and even clean up a bit.

If you don't have more time to clean up this, let's just
commit a patch to fix this directly.

Sounds good to me ;-)
To be honest, I don't know the stuff well enough for this cleanup.

Ok, anyway if you could submit a patch that moves
inode->i_ino[0] = sbi->inos++;
from erofs_new_inode() to erofs_prepare_inode_buffer()

I will apply directly.

Also I'd like to update it as
inode->i_ino[0] = ++sbi->inos;

Since `i_ino == 0` is invalid...

Thanks,
Gao Xiang



Thanks,
Gao Xiang

Thanks,
Jooyung

Reply via email to