[PATCH] erofs-utils: Add missing error code handling.

Gao Xiang gaoxiang25 at huawei.com
Wed Jul 24 12:13:59 AEST 2019



On 2019/7/24 10:11, Pratik Shinde wrote:
> This is stranger. Even this mail of yours is not showing up in mail archives. Let me resend the patch

My personal email hsiangkao at aol.com didn't receive the patch as well...
(Friendly reminder, take a look at the following comment in the code...)

Thanks,
Gao Xiang

> 
> 
> -Pratik
> 
> On Wed, 24 Jul, 2019, 7:04 AM Gao Xiang, <gaoxiang25 at huawei.com <mailto:gaoxiang25 at huawei.com>> wrote:
> 
>     Hi Pratik,
> 
>     This patch isn't in erofs mailing list. I don't know what is wrong...
>     Could you resend the patch? It'd be better in the mailing list....
> 
>     On 2019/7/24 4:04, Pratik Shinde wrote:
>     > Handling error conditions that are missing in few scenarios.
>     >
>     > Signed-off-by: Pratik Shinde <pratikshinde320 at gmail.com <mailto:pratikshinde320 at gmail.com>>
>     > ---
>     >  lib/inode.c | 10 ++++++++--
>     >  mkfs/main.c | 10 ++++++++--
>     >  2 files changed, 16 insertions(+), 4 deletions(-)
>     >
>     > diff --git a/lib/inode.c b/lib/inode.c
>     > index 179aa26..08d38c0 100644
>     > --- a/lib/inode.c
>     > +++ b/lib/inode.c
>     > @@ -752,8 +752,14 @@ struct erofs_inode *erofs_mkfs_build_tree(struct erofs_inode *dir)
>     >       }
>     >       closedir(_dir);
>>     > -     erofs_prepare_dir_file(dir);
>     > -     erofs_prepare_inode_buffer(dir);
>     > +     ret = erofs_prepare_dir_file(dir);
>     > +     if(!ret)
>     > +             goto err_closedir;
>     > +
>     > +     ret = erofs_prepare_inode_buffer(dir);
>     > +     if(!ret)
>     > +             goto err_closedir;
>     > +
>     >       if (IS_ROOT(dir))
>     >               erofs_fixup_meta_blkaddr(dir);
>>     > diff --git a/mkfs/main.c b/mkfs/main.c
>     > index 1348587..9c9530d 100644
>     > --- a/mkfs/main.c
>     > +++ b/mkfs/main.c
>     > @@ -200,18 +200,24 @@ int main(int argc, char **argv)
>     >       if (err) {
>     >               if (err == -EINVAL)
>     >                       usage();
>     > -             return 1;
>     > +             return err;
> 
>     current erofs-utils will return 1; when failure...
>     If you suggest to return the real error code, could you fix the following as well?
>     and it should be return -err; since a positive error code is perfered? I have no idea....
> 
>     253 exit:
>     254         z_erofs_compress_exit();
>     255         dev_close();
>     256         erofs_exit_configure();
>     257
>     258         if (err) {
>     259                 erofs_err("\tCould not format the device : %s\n",
>     260                           erofs_strerror(err));
>     261                 return 1;
>     262         }
>     263         return err;
> 
>     Thanks,
>     Gao Xiang
> 
>     >       }
>>     >       err = dev_open(cfg.c_img_path);
>     >       if (err) {
>     >               usage();
>     > -             return 1;
>     > +             return err;
>     >       }
>>     >       erofs_show_config();
>>     >       sb_bh = erofs_buffer_init();
>     > +     if(IS_ERR(sb_bh)) {
>     > +             err = PTR_ERR(sb_bh);
>     > +             erofs_err("Failed to initialize super block buffer head : %s",
>     > +                       erofs_strerror(err));
>     > +             goto exit;
>     > +     }
>     >       err = erofs_bh_balloon(sb_bh, EROFS_SUPER_END);
>     >       if (err < 0) {
>     >               erofs_err("Failed to balloon erofs_super_block: %s",
>     >
> 


More information about the Linux-erofs mailing list