Re: [PATCH 03/13] ext4: correct return value of ext4_convert_meta_bg

From: Theodore Ts'o
Date: Tue Aug 15 2023 - 23:01:52 EST


On Thu, Jun 29, 2023 at 08:00:34PM +0800, Kemeng Shi wrote:
> We return error in "ret", so collect previous error in "ret" instead
> of "err" or previous error will be ignored.
>
> Signed-off-by: Kemeng Shi <shikemeng@xxxxxxxxxxxxxxx>
> ---
> fs/ext4/resize.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/fs/ext4/resize.c b/fs/ext4/resize.c
> index 7cbc695b7005..0b3d8c808de1 100644
> --- a/fs/ext4/resize.c
> +++ b/fs/ext4/resize.c
> @@ -1984,8 +1984,8 @@ static int ext4_convert_meta_bg(struct super_block *sb, struct inode *inode)
>
> errout:
> ret = ext4_journal_stop(handle);
> - if (!err)
> - err = ret;
> + if (!ret)
> + ret = err;
> return ret;

If there is a previous error in "err", I think we would want to
prioritize returning that error, as opposed to the potential error
from ext4_journal_stop(). So how about this instead?

errout:
ret = ext4_journal_stop(handle);
if (!err)
ret = err;
return ret;


- Ted