summaryrefslogtreecommitdiffstats
path: root/fs/mount.h
diff options
context:
space:
mode:
authorAl Viro2011-11-25 04:53:09 +0100
committerAl Viro2012-01-04 04:57:06 +0100
commit68e8a9feab251f9d3c8fd9e9893c97843bcd4bd0 (patch)
tree22fac61a982587cd53ccf05513fbe4ffe60c860d /fs/mount.h
parentvfs: spread struct mount - work with counters (diff)
downloadkernel-qcow2-linux-68e8a9feab251f9d3c8fd9e9893c97843bcd4bd0.tar.gz
kernel-qcow2-linux-68e8a9feab251f9d3c8fd9e9893c97843bcd4bd0.tar.xz
kernel-qcow2-linux-68e8a9feab251f9d3c8fd9e9893c97843bcd4bd0.zip
vfs: all counters taken to struct mount
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'fs/mount.h')
-rw-r--r--fs/mount.h12
1 files changed, 12 insertions, 0 deletions
diff --git a/fs/mount.h b/fs/mount.h
index 853738f5897f..452ae41e0131 100644
--- a/fs/mount.h
+++ b/fs/mount.h
@@ -1,10 +1,22 @@
#include <linux/mount.h>
+struct mnt_pcp {
+ int mnt_count;
+ int mnt_writers;
+};
+
struct mount {
struct list_head mnt_hash;
struct mount *mnt_parent;
struct dentry *mnt_mountpoint;
struct vfsmount mnt;
+#ifdef CONFIG_SMP
+ struct mnt_pcp __percpu *mnt_pcp;
+ atomic_t mnt_longterm; /* how many of the refs are longterm */
+#else
+ int mnt_count;
+ int mnt_writers;
+#endif
};
static inline struct mount *real_mount(struct vfsmount *mnt)