mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-11-24 00:10:51 +07:00
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). Link: https://lore.kernel.org/r/alpine.LRH.2.02.2004201538300.19436@file01.intranet.prod.int.rdu2.redhat.com Signed-off-by: Mikulas Patocka <mpatocka@redhat.com> Cc: stable@vger.kernel.org Signed-off-by: Jan Kara <jack@suse.cz>
This commit is contained in:
parent
a43850a380
commit
bc2fbaa4d3
@ -80,6 +80,7 @@ static void ext2_release_inode(struct super_block *sb, int group, int dir)
|
||||
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 @@ struct inode *ext2_new_inode(struct inode *dir, umode_t mode,
|
||||
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);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user