]> git.karo-electronics.de Git - mv-sheeva.git/blobdiff - fs/inode.c
vfs: revert per-cpu nr_unused counters for dentry and inodes
[mv-sheeva.git] / fs / inode.c
index ae2727ab0c3ab7695b14f256da0bccdfd3668d81..efc43979709f7570d1acce84a07badd362340b0c 100644 (file)
@@ -103,7 +103,6 @@ static DECLARE_RWSEM(iprune_sem);
 struct inodes_stat_t inodes_stat;
 
 static struct percpu_counter nr_inodes __cacheline_aligned_in_smp;
-static struct percpu_counter nr_inodes_unused __cacheline_aligned_in_smp;
 
 static struct kmem_cache *inode_cachep __read_mostly;
 
@@ -114,7 +113,7 @@ static inline int get_nr_inodes(void)
 
 static inline int get_nr_inodes_unused(void)
 {
-       return percpu_counter_sum_positive(&nr_inodes_unused);
+       return inodes_stat.nr_unused;
 }
 
 int get_nr_dirty_inodes(void)
@@ -132,7 +131,6 @@ int proc_nr_inodes(ctl_table *table, int write,
                   void __user *buffer, size_t *lenp, loff_t *ppos)
 {
        inodes_stat.nr_inodes = get_nr_inodes();
-       inodes_stat.nr_unused = get_nr_inodes_unused();
        return proc_dointvec(table, write, buffer, lenp, ppos);
 }
 #endif
@@ -335,7 +333,7 @@ static void inode_lru_list_add(struct inode *inode)
 {
        if (list_empty(&inode->i_lru)) {
                list_add(&inode->i_lru, &inode_lru);
-               percpu_counter_inc(&nr_inodes_unused);
+               inodes_stat.nr_unused++;
        }
 }
 
@@ -343,7 +341,7 @@ static void inode_lru_list_del(struct inode *inode)
 {
        if (!list_empty(&inode->i_lru)) {
                list_del_init(&inode->i_lru);
-               percpu_counter_dec(&nr_inodes_unused);
+               inodes_stat.nr_unused--;
        }
 }
 
@@ -513,7 +511,7 @@ void evict_inodes(struct super_block *sb)
                list_move(&inode->i_lru, &dispose);
                list_del_init(&inode->i_wb_list);
                if (!(inode->i_state & (I_DIRTY | I_SYNC)))
-                       percpu_counter_dec(&nr_inodes_unused);
+                       inodes_stat.nr_unused--;
        }
        spin_unlock(&inode_lock);
 
@@ -554,7 +552,7 @@ int invalidate_inodes(struct super_block *sb)
                list_move(&inode->i_lru, &dispose);
                list_del_init(&inode->i_wb_list);
                if (!(inode->i_state & (I_DIRTY | I_SYNC)))
-                       percpu_counter_dec(&nr_inodes_unused);
+                       inodes_stat.nr_unused--;
        }
        spin_unlock(&inode_lock);
 
@@ -616,7 +614,7 @@ static void prune_icache(int nr_to_scan)
                if (atomic_read(&inode->i_count) ||
                    (inode->i_state & ~I_REFERENCED)) {
                        list_del_init(&inode->i_lru);
-                       percpu_counter_dec(&nr_inodes_unused);
+                       inodes_stat.nr_unused--;
                        continue;
                }
 
@@ -650,7 +648,7 @@ static void prune_icache(int nr_to_scan)
                 */
                list_move(&inode->i_lru, &freeable);
                list_del_init(&inode->i_wb_list);
-               percpu_counter_dec(&nr_inodes_unused);
+               inodes_stat.nr_unused--;
        }
        if (current_is_kswapd())
                __count_vm_events(KSWAPD_INODESTEAL, reap);
@@ -1649,7 +1647,6 @@ void __init inode_init(void)
                                         init_once);
        register_shrinker(&icache_shrinker);
        percpu_counter_init(&nr_inodes, 0);
-       percpu_counter_init(&nr_inodes_unused, 0);
 
        /* Hash may have been set up in inode_init_early */
        if (!hashdist)