aboutsummaryrefslogtreecommitdiffstats
path: root/fs/namespace.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/namespace.c')
-rw-r--r--fs/namespace.c19
1 files changed, 10 insertions, 9 deletions
diff --git a/fs/namespace.c b/fs/namespace.c
index a40685d800a8..06f8e63f6cb1 100644
--- a/fs/namespace.c
+++ b/fs/namespace.c
@@ -614,9 +614,11 @@ static inline void __mntput(struct vfsmount *mnt)
614 */ 614 */
615 for_each_possible_cpu(cpu) { 615 for_each_possible_cpu(cpu) {
616 struct mnt_writer *cpu_writer = &per_cpu(mnt_writers, cpu); 616 struct mnt_writer *cpu_writer = &per_cpu(mnt_writers, cpu);
617 if (cpu_writer->mnt != mnt)
618 continue;
619 spin_lock(&cpu_writer->lock); 617 spin_lock(&cpu_writer->lock);
618 if (cpu_writer->mnt != mnt) {
619 spin_unlock(&cpu_writer->lock);
620 continue;
621 }
620 atomic_add(cpu_writer->count, &mnt->__mnt_writers); 622 atomic_add(cpu_writer->count, &mnt->__mnt_writers);
621 cpu_writer->count = 0; 623 cpu_writer->count = 0;
622 /* 624 /*
@@ -1128,7 +1130,7 @@ static int do_umount(struct vfsmount *mnt, int flags)
1128 * unixes. Our API is identical to OSF/1 to avoid making a mess of AMD 1130 * unixes. Our API is identical to OSF/1 to avoid making a mess of AMD
1129 */ 1131 */
1130 1132
1131asmlinkage long sys_umount(char __user * name, int flags) 1133SYSCALL_DEFINE2(umount, char __user *, name, int, flags)
1132{ 1134{
1133 struct path path; 1135 struct path path;
1134 int retval; 1136 int retval;
@@ -1160,7 +1162,7 @@ out:
1160/* 1162/*
1161 * The 2.0 compatible umount. No flags. 1163 * The 2.0 compatible umount. No flags.
1162 */ 1164 */
1163asmlinkage long sys_oldumount(char __user * name) 1165SYSCALL_DEFINE1(oldumount, char __user *, name)
1164{ 1166{
1165 return sys_umount(name, 0); 1167 return sys_umount(name, 0);
1166} 1168}
@@ -2045,9 +2047,8 @@ struct mnt_namespace *copy_mnt_ns(unsigned long flags, struct mnt_namespace *ns,
2045 return new_ns; 2047 return new_ns;
2046} 2048}
2047 2049
2048asmlinkage long sys_mount(char __user * dev_name, char __user * dir_name, 2050SYSCALL_DEFINE5(mount, char __user *, dev_name, char __user *, dir_name,
2049 char __user * type, unsigned long flags, 2051 char __user *, type, unsigned long, flags, void __user *, data)
2050 void __user * data)
2051{ 2052{
2052 int retval; 2053 int retval;
2053 unsigned long data_page; 2054 unsigned long data_page;
@@ -2172,8 +2173,8 @@ static void chroot_fs_refs(struct path *old_root, struct path *new_root)
2172 * though, so you may need to say mount --bind /nfs/my_root /nfs/my_root 2173 * though, so you may need to say mount --bind /nfs/my_root /nfs/my_root
2173 * first. 2174 * first.
2174 */ 2175 */
2175asmlinkage long sys_pivot_root(const char __user * new_root, 2176SYSCALL_DEFINE2(pivot_root, const char __user *, new_root,
2176 const char __user * put_old) 2177 const char __user *, put_old)
2177{ 2178{
2178 struct vfsmount *tmp; 2179 struct vfsmount *tmp;
2179 struct path new, old, parent_path, root_parent, root; 2180 struct path new, old, parent_path, root_parent, root;