本文共 1088 字,大约阅读时间需要 3 分钟。
/* * Statistics gathering.. */struct inodes_stat_t inodes_stat;static DEFINE_PER_CPU(unsigned long, nr_inodes); 所有分配使用的inodestatic DEFINE_PER_CPU(unsigned long, nr_unused);未使用的inode
static long get_nr_inodes(void){ int i; long sum = 0; for_each_possible_cpu(i) sum += per_cpu(nr_inodes, i); return sum < 0 ? 0 : sum;}static inline long get_nr_inodes_unused(void){ int i; long sum = 0; for_each_possible_cpu(i) sum += per_cpu(nr_unused, i); return sum < 0 ? 0 : sum;}long get_nr_dirty_inodes(void){ /* not actually dirty inodes, but a wild approximation */ long nr_dirty = get_nr_inodes() - get_nr_inodes_unused(); return nr_dirty > 0 ? nr_dirty : 0;}
struct inodes_stat_t { long nr_inodes; long nr_unused; long dummy[5]; /* padding for sysctl ABI compatibility */};
/* * Handle nr_inode sysctl */#ifdef CONFIG_SYSCTLint proc_nr_inodes(struct 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_doulongvec_minmax(table, write, buffer, lenp, ppos);}#endif
转载地址:http://uwhti.baihongyu.com/