diff options
Diffstat (limited to 'fs/namespace.c')
-rw-r--r-- | fs/namespace.c | 5 |
1 files changed, 1 insertions, 4 deletions
diff --git a/fs/namespace.c b/fs/namespace.c index a72eaabfe8f2..3dbfc072ec70 100644 --- a/fs/namespace.c +++ b/fs/namespace.c | |||
@@ -13,7 +13,6 @@ | |||
13 | #include <linux/sched.h> | 13 | #include <linux/sched.h> |
14 | #include <linux/spinlock.h> | 14 | #include <linux/spinlock.h> |
15 | #include <linux/percpu.h> | 15 | #include <linux/percpu.h> |
16 | #include <linux/smp_lock.h> | ||
17 | #include <linux/init.h> | 16 | #include <linux/init.h> |
18 | #include <linux/kernel.h> | 17 | #include <linux/kernel.h> |
19 | #include <linux/acct.h> | 18 | #include <linux/acct.h> |
@@ -595,7 +594,7 @@ static struct vfsmount *clone_mnt(struct vfsmount *old, struct dentry *root, | |||
595 | goto out_free; | 594 | goto out_free; |
596 | } | 595 | } |
597 | 596 | ||
598 | mnt->mnt_flags = old->mnt_flags; | 597 | mnt->mnt_flags = old->mnt_flags & ~MNT_WRITE_HOLD; |
599 | atomic_inc(&sb->s_active); | 598 | atomic_inc(&sb->s_active); |
600 | mnt->mnt_sb = sb; | 599 | mnt->mnt_sb = sb; |
601 | mnt->mnt_root = dget(root); | 600 | mnt->mnt_root = dget(root); |
@@ -1744,9 +1743,7 @@ static int do_new_mount(struct path *path, char *type, int flags, | |||
1744 | if (!capable(CAP_SYS_ADMIN)) | 1743 | if (!capable(CAP_SYS_ADMIN)) |
1745 | return -EPERM; | 1744 | return -EPERM; |
1746 | 1745 | ||
1747 | lock_kernel(); | ||
1748 | mnt = do_kern_mount(type, flags, name, data); | 1746 | mnt = do_kern_mount(type, flags, name, data); |
1749 | unlock_kernel(); | ||
1750 | if (IS_ERR(mnt)) | 1747 | if (IS_ERR(mnt)) |
1751 | return PTR_ERR(mnt); | 1748 | return PTR_ERR(mnt); |
1752 | 1749 | ||