Hi Gao, Since the new patch is quite different from the last, I sent it as a new one, instead of up-revving.
On Tue, Dec 3, 2024 at 3:58 PM Gao Xiang <hsiang...@linux.alibaba.com> wrote: > > > > 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 >