[PATCH] erofs-utils: lib: fix compressed packed inodes
Danny Lin
danny at orbstack.dev
Mon Sep 23 14:36:48 AEST 2024
On Sun, Sep 22, 2024 at 9:30 PM Danny Lin <danny at orbstack.dev> wrote:
>
> On Sun, Sep 22, 2024 at 8:03 PM Gao Xiang <hsiangkao at linux.alibaba.com> wrote:
> >
> > Hi Danny,
> >
> > On 2024/9/23 08:08, Gao Xiang wrote:
> > > Hi Danny,
> > >
> > > Thanks for the patch!
> > > Sorry I somewhat missed the previous email..
> > >
> > > On 2024/9/22 13:08, Danny Lin wrote:
> > >> Gentle bump — let me know if anything needs to be changed!
> > >
> > > Does the following change resolve the issue too?
>
> Thanks for the suggestion. I tried your patch and it segfaults instead.
I think the segfault is because it returns ERR_PTR(0) instead of inode
on success. That should be an easy fix but we'd still be skipping
erofs_prepare_inode_buffer and erofs_write_tail_end.
>
> From a quick glance at the surrounding code, it doesn't seem correct
> because the calls to erofs_prepare_inode_buffer and
> erofs_write_tail_end are skipped if ret == 0.
>
> > >
> > > Also I think it
> > > Fixes: 2fdbd28ad4a3 ("erofs-utils: lib: fix uncompressed packed inode")
>
> Ah, nice catch. Do you want me to resubmit or will you fix it when
> applying the patch?
>
> > >
> > > @@ -1927,7 +1926,7 @@ struct erofs_inode *erofs_mkfs_build_special_from_fd(struct erofs_sb_info *sbi,
> > >
> > > DBG_BUGON(!ictx);
> > > ret = erofs_write_compressed_file(ictx);
> > > - if (ret && ret != -ENOSPC)
> > > + if (ret != -ENOSPC)
> > > return ERR_PTR(ret);
> > >
> > > ret = lseek(fd, 0, SEEK_SET);
> >
> > Add some more words, I'm on releasing erofs-utils 1.8.2
> > this week.
> >
> > So if the diff above also fixes the issue, could you
> > submit a patch for this so I could merge in time?
> >
> > Thanks,
> > Gsao Xiang
> >
> > >
> > > Thanks,
> > > Gao Xiang
> > >
> > >>
> > >> Thanks,
> > >> Danny
> >
>
> Thanks,
> Danny
Thanks,
Danny
More information about the Linux-erofs
mailing list