[PATCH] erofs-utils: Add missing error code handling.
Gao Xiang
gaoxiang25 at huawei.com
Wed Jul 24 11:34:09 AEST 2019
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>
> ---
> 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