diff options
author | Dave Chinner <dchinner@redhat.com> | 2010-10-23 05:03:02 -0400 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2010-10-25 21:26:09 -0400 |
commit | cffbc8aa334f55c9ed42d25202eb3ebf3a97c195 (patch) | |
tree | dab046695754e2cec1a7ab7a64b236e976d94360 /include/linux/fs.h | |
parent | be1a16a0ae29a7c90081a657b64aa51cb1a65a27 (diff) |
fs: Convert nr_inodes and nr_unused to per-cpu counters
The number of inodes allocated does not need to be tied to the
addition or removal of an inode to/from a list. If we are not tied
to a list lock, we could update the counters when inodes are
initialised or destroyed, but to do that we need to convert the
counters to be per-cpu (i.e. independent of a lock). This means that
we have the freedom to change the list/locking implementation
without needing to care about the counters.
Based on a patch originally from Eric Dumazet.
[AV: cleaned up a bit, fixed build breakage on weird configs
Signed-off-by: Dave Chinner <dchinner@redhat.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'include/linux/fs.h')
-rw-r--r-- | include/linux/fs.h | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/include/linux/fs.h b/include/linux/fs.h index 78043da85e1f..a3937a8ee95e 100644 --- a/include/linux/fs.h +++ b/include/linux/fs.h | |||
@@ -2486,7 +2486,8 @@ ssize_t simple_attr_write(struct file *file, const char __user *buf, | |||
2486 | struct ctl_table; | 2486 | struct ctl_table; |
2487 | int proc_nr_files(struct ctl_table *table, int write, | 2487 | int proc_nr_files(struct ctl_table *table, int write, |
2488 | void __user *buffer, size_t *lenp, loff_t *ppos); | 2488 | void __user *buffer, size_t *lenp, loff_t *ppos); |
2489 | 2489 | int proc_nr_inodes(struct ctl_table *table, int write, | |
2490 | void __user *buffer, size_t *lenp, loff_t *ppos); | ||
2490 | int __init get_filesystem_list(char *buf); | 2491 | int __init get_filesystem_list(char *buf); |
2491 | 2492 | ||
2492 | #define ACC_MODE(x) ("\004\002\006\006"[(x)&O_ACCMODE]) | 2493 | #define ACC_MODE(x) ("\004\002\006\006"[(x)&O_ACCMODE]) |