On Tue 09-06-20 13:14:18, Mikulas Patocka wrote: > I'm resending this because I didn't get any response. I'm sorry far that. The patch got buried in my inbox... I've queued it up now. Thanks! Honza > ---------- Forwarded message ---------- > Date: Mon, 20 Apr 2020 16:02:21 -0400 (EDT) > From: Mikulas Patocka <mpatocka@xxxxxxxxxx> > To: Jan Kara <jack@xxxxxxxx> > Cc: linux-ext4@xxxxxxxxxxxxxxx > Subject: [PATCH] ext2: fix missing percpu_counter_inc > > sbi->s_freeinodes_counter is only decreased by the ext2 code, it is never > increased. This patch fixes it. > > Note that sbi->s_freeinodes_counter is only used in the algorithm that > tries to find the group for new allocations, so this bug is not easily > visible (the only visibility is that the group finding algorithm selects > inoptinal result). > > Signed-off-by: Mikulas Patocka <mpatocka@xxxxxxxxxx> > Cc: stable@xxxxxxxxxxxxxxx > > --- > fs/ext2/ialloc.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > Index: linux-2.6/fs/ext2/ialloc.c > =================================================================== > --- linux-2.6.orig/fs/ext2/ialloc.c 2019-09-20 14:39:07.951999000 +0200 > +++ linux-2.6/fs/ext2/ialloc.c 2020-04-20 21:33:26.389999000 +0200 > @@ -80,6 +80,7 @@ static void ext2_release_inode(struct su > if (dir) > le16_add_cpu(&desc->bg_used_dirs_count, -1); > spin_unlock(sb_bgl_lock(EXT2_SB(sb), group)); > + percpu_counter_inc(&EXT2_SB(sb)->s_freeinodes_counter); > if (dir) > percpu_counter_dec(&EXT2_SB(sb)->s_dirs_counter); > mark_buffer_dirty(bh); > @@ -528,7 +529,7 @@ got: > goto fail; > } > > - percpu_counter_add(&sbi->s_freeinodes_counter, -1); > + percpu_counter_dec(&sbi->s_freeinodes_counter); > if (S_ISDIR(mode)) > percpu_counter_inc(&sbi->s_dirs_counter); > > -- Jan Kara <jack@xxxxxxxx> SUSE Labs, CR