lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Tue, 9 Jun 2020 13:14:18 -0400 (EDT) From: Mikulas Patocka <mpatocka@...hat.com> To: "Theodore Ts'o" <tytso@....edu>, Andreas Dilger <adilger.kernel@...ger.ca>, Jan Kara <jack@...e.com> cc: linux-ext4@...r.kernel.org Subject: [PATCH] ext2: fix missing percpu_counter_inc (fwd) I'm resending this because I didn't get any response. Mikulas ---------- Forwarded message ---------- Date: Mon, 20 Apr 2020 16:02:21 -0400 (EDT) From: Mikulas Patocka <mpatocka@...hat.com> To: Jan Kara <jack@...e.com> Cc: linux-ext4@...r.kernel.org 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@...hat.com> Cc: stable@...r.kernel.org --- 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);
Powered by blists - more mailing lists