aboutsummaryrefslogtreecommitdiffstats
path: root/fs/namespace.c
diff options
context:
space:
mode:
authorAl Viro <viro@zeniv.linux.org.uk>2011-11-24 22:53:09 -0500
committerAl Viro <viro@zeniv.linux.org.uk>2012-01-03 22:57:06 -0500
commit68e8a9feab251f9d3c8fd9e9893c97843bcd4bd0 (patch)
tree22fac61a982587cd53ccf05513fbe4ffe60c860d /fs/namespace.c
parent83adc7532229f1909cf37c429780f02f06fe05ee (diff)
vfs: all counters taken to struct mount
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'fs/namespace.c')
-rw-r--r--fs/namespace.c40
1 files changed, 20 insertions, 20 deletions
diff --git a/fs/namespace.c b/fs/namespace.c
index a13165c871c..3fdd30add4f 100644
--- a/fs/namespace.c
+++ b/fs/namespace.c
@@ -144,10 +144,10 @@ void mnt_release_group_id(struct mount *mnt)
144static inline void mnt_add_count(struct mount *mnt, int n) 144static inline void mnt_add_count(struct mount *mnt, int n)
145{ 145{
146#ifdef CONFIG_SMP 146#ifdef CONFIG_SMP
147 this_cpu_add(mnt->mnt.mnt_pcp->mnt_count, n); 147 this_cpu_add(mnt->mnt_pcp->mnt_count, n);
148#else 148#else
149 preempt_disable(); 149 preempt_disable();
150 mnt->mnt.mnt_count += n; 150 mnt->mnt_count += n;
151 preempt_enable(); 151 preempt_enable();
152#endif 152#endif
153} 153}
@@ -162,12 +162,12 @@ unsigned int mnt_get_count(struct mount *mnt)
162 int cpu; 162 int cpu;
163 163
164 for_each_possible_cpu(cpu) { 164 for_each_possible_cpu(cpu) {
165 count += per_cpu_ptr(mnt->mnt.mnt_pcp, cpu)->mnt_count; 165 count += per_cpu_ptr(mnt->mnt_pcp, cpu)->mnt_count;
166 } 166 }
167 167
168 return count; 168 return count;
169#else 169#else
170 return mnt->mnt.mnt_count; 170 return mnt->mnt_count;
171#endif 171#endif
172} 172}
173 173
@@ -189,14 +189,14 @@ static struct mount *alloc_vfsmnt(const char *name)
189 } 189 }
190 190
191#ifdef CONFIG_SMP 191#ifdef CONFIG_SMP
192 mnt->mnt_pcp = alloc_percpu(struct mnt_pcp); 192 p->mnt_pcp = alloc_percpu(struct mnt_pcp);
193 if (!mnt->mnt_pcp) 193 if (!p->mnt_pcp)
194 goto out_free_devname; 194 goto out_free_devname;
195 195
196 this_cpu_add(mnt->mnt_pcp->mnt_count, 1); 196 this_cpu_add(p->mnt_pcp->mnt_count, 1);
197#else 197#else
198 mnt->mnt_count = 1; 198 p->mnt_count = 1;
199 mnt->mnt_writers = 0; 199 p->mnt_writers = 0;
200#endif 200#endif
201 201
202 INIT_LIST_HEAD(&p->mnt_hash); 202 INIT_LIST_HEAD(&p->mnt_hash);
@@ -256,18 +256,18 @@ EXPORT_SYMBOL_GPL(__mnt_is_readonly);
256static inline void mnt_inc_writers(struct mount *mnt) 256static inline void mnt_inc_writers(struct mount *mnt)
257{ 257{
258#ifdef CONFIG_SMP 258#ifdef CONFIG_SMP
259 this_cpu_inc(mnt->mnt.mnt_pcp->mnt_writers); 259 this_cpu_inc(mnt->mnt_pcp->mnt_writers);
260#else 260#else
261 mnt->mnt.mnt_writers++; 261 mnt->mnt_writers++;
262#endif 262#endif
263} 263}
264 264
265static inline void mnt_dec_writers(struct mount *mnt) 265static inline void mnt_dec_writers(struct mount *mnt)
266{ 266{
267#ifdef CONFIG_SMP 267#ifdef CONFIG_SMP
268 this_cpu_dec(mnt->mnt.mnt_pcp->mnt_writers); 268 this_cpu_dec(mnt->mnt_pcp->mnt_writers);
269#else 269#else
270 mnt->mnt.mnt_writers--; 270 mnt->mnt_writers--;
271#endif 271#endif
272} 272}
273 273
@@ -278,7 +278,7 @@ static unsigned int mnt_get_writers(struct mount *mnt)
278 int cpu; 278 int cpu;
279 279
280 for_each_possible_cpu(cpu) { 280 for_each_possible_cpu(cpu) {
281 count += per_cpu_ptr(mnt->mnt.mnt_pcp, cpu)->mnt_writers; 281 count += per_cpu_ptr(mnt->mnt_pcp, cpu)->mnt_writers;
282 } 282 }
283 283
284 return count; 284 return count;
@@ -454,7 +454,7 @@ static void free_vfsmnt(struct mount *mnt)
454 kfree(mnt->mnt.mnt_devname); 454 kfree(mnt->mnt.mnt_devname);
455 mnt_free_id(mnt); 455 mnt_free_id(mnt);
456#ifdef CONFIG_SMP 456#ifdef CONFIG_SMP
457 free_percpu(mnt->mnt.mnt_pcp); 457 free_percpu(mnt->mnt_pcp);
458#endif 458#endif
459 kmem_cache_free(mnt_cache, mnt); 459 kmem_cache_free(mnt_cache, mnt);
460} 460}
@@ -594,7 +594,7 @@ static void attach_mnt(struct mount *mnt, struct path *path)
594static inline void __mnt_make_longterm(struct mount *mnt) 594static inline void __mnt_make_longterm(struct mount *mnt)
595{ 595{
596#ifdef CONFIG_SMP 596#ifdef CONFIG_SMP
597 atomic_inc(&mnt->mnt.mnt_longterm); 597 atomic_inc(&mnt->mnt_longterm);
598#endif 598#endif
599} 599}
600 600
@@ -602,7 +602,7 @@ static inline void __mnt_make_longterm(struct mount *mnt)
602static inline void __mnt_make_shortterm(struct mount *mnt) 602static inline void __mnt_make_shortterm(struct mount *mnt)
603{ 603{
604#ifdef CONFIG_SMP 604#ifdef CONFIG_SMP
605 atomic_dec(&mnt->mnt.mnt_longterm); 605 atomic_dec(&mnt->mnt_longterm);
606#endif 606#endif
607} 607}
608 608
@@ -769,7 +769,7 @@ static void mntput_no_expire(struct vfsmount *m)
769put_again: 769put_again:
770#ifdef CONFIG_SMP 770#ifdef CONFIG_SMP
771 br_read_lock(vfsmount_lock); 771 br_read_lock(vfsmount_lock);
772 if (likely(atomic_read(&mnt->mnt.mnt_longterm))) { 772 if (likely(atomic_read(&mnt->mnt_longterm))) {
773 mnt_add_count(mnt, -1); 773 mnt_add_count(mnt, -1);
774 br_read_unlock(vfsmount_lock); 774 br_read_unlock(vfsmount_lock);
775 return; 775 return;
@@ -2375,10 +2375,10 @@ void mnt_make_shortterm(struct vfsmount *m)
2375{ 2375{
2376#ifdef CONFIG_SMP 2376#ifdef CONFIG_SMP
2377 struct mount *mnt = real_mount(m); 2377 struct mount *mnt = real_mount(m);
2378 if (atomic_add_unless(&mnt->mnt.mnt_longterm, -1, 1)) 2378 if (atomic_add_unless(&mnt->mnt_longterm, -1, 1))
2379 return; 2379 return;
2380 br_write_lock(vfsmount_lock); 2380 br_write_lock(vfsmount_lock);
2381 atomic_dec(&mnt->mnt.mnt_longterm); 2381 atomic_dec(&mnt->mnt_longterm);
2382 br_write_unlock(vfsmount_lock); 2382 br_write_unlock(vfsmount_lock);
2383#endif 2383#endif
2384} 2384}