diff --git a/fs/inode.c b/fs/inode.c index 1ddaa2e..0b5c3fa 100644 --- a/fs/inode.c +++ b/fs/inode.c @@ -427,6 +427,7 @@ static void inode_lru_list_del(struct inode *inode) if (!list_empty(&inode->i_lru)) { list_del_init(&inode->i_lru); inode->i_sb->s_nr_inodes_unused--; + BUG_ON(sb->s_nr_inodes_unused < 0); this_cpu_dec(nr_unused); } spin_unlock(&inode->i_sb->s_inode_lru_lock); @@ -739,6 +740,7 @@ long prune_icache_sb(struct super_block *sb, unsigned long nr_to_scan) list_del_init(&inode->i_lru); spin_unlock(&inode->i_lock); sb->s_nr_inodes_unused--; + BUG_ON(sb->s_nr_inodes_unused < 0); this_cpu_dec(nr_unused); continue; } @@ -777,6 +779,7 @@ long prune_icache_sb(struct super_block *sb, unsigned long nr_to_scan) list_move(&inode->i_lru, &freeable); sb->s_nr_inodes_unused--; + BUG_ON(sb->s_nr_inodes_unused < 0); this_cpu_dec(nr_unused); freed++; }