On Mon, Jul 27, 2020 at 01:44:28PM +0200, Jan Kara wrote: > There's one place that fails to handle error from add_system_zone() call > and thus we can fail to protect superblock and group-descriptor blocks > properly in case of ENOMEM. Fix it. Looks good, thanks. Reviewed-by: Lukas Czerner <lczerner@xxxxxxxxxx> > > Reported-by: Lukas Czerner <lczerner@xxxxxxxxxx> > Signed-off-by: Jan Kara <jack@xxxxxxx> > --- > fs/ext4/block_validity.c | 7 +++++-- > 1 file changed, 5 insertions(+), 2 deletions(-) > > diff --git a/fs/ext4/block_validity.c b/fs/ext4/block_validity.c > index 9c40214f31f9..2d008c1b58f2 100644 > --- a/fs/ext4/block_validity.c > +++ b/fs/ext4/block_validity.c > @@ -235,10 +235,13 @@ int ext4_setup_system_zone(struct super_block *sb) > for (i=0; i < ngroups; i++) { > cond_resched(); > if (ext4_bg_has_super(sb, i) && > - ((i < 5) || ((i % flex_size) == 0))) > - add_system_zone(system_blks, > + ((i < 5) || ((i % flex_size) == 0))) { > + ret = add_system_zone(system_blks, > ext4_group_first_block_no(sb, i), > ext4_bg_num_gdb(sb, i) + 1, 0); > + if (ret) > + goto err; > + } > gdp = ext4_get_group_desc(sb, i, NULL); > ret = add_system_zone(system_blks, > ext4_block_bitmap(sb, gdp), 1, 0); > -- > 2.16.4 >