diff options
author | Al Viro <viro@zeniv.linux.org.uk> | 2009-05-08 13:31:17 -0400 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2009-06-11 21:36:08 -0400 |
commit | 6fac98dd218653c6aff8a0f56305c424930cea2a (patch) | |
tree | 0c5bdca0092e5ec3b201bae958071a7e8385409d | |
parent | bbd6851a3213a525128473e978b692ab6ac11aba (diff) |
Push BKL into do_mount()
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
-rw-r--r-- | arch/alpha/kernel/osf_sys.c | 3 | ||||
-rw-r--r-- | fs/compat.c | 2 | ||||
-rw-r--r-- | fs/namespace.c | 4 |
3 files changed, 2 insertions, 7 deletions
diff --git a/arch/alpha/kernel/osf_sys.c b/arch/alpha/kernel/osf_sys.c index 42ee05981e71..9a3334ae282e 100644 --- a/arch/alpha/kernel/osf_sys.c +++ b/arch/alpha/kernel/osf_sys.c | |||
@@ -371,8 +371,6 @@ SYSCALL_DEFINE4(osf_mount, unsigned long, typenr, char __user *, path, | |||
371 | int retval = -EINVAL; | 371 | int retval = -EINVAL; |
372 | char *name; | 372 | char *name; |
373 | 373 | ||
374 | lock_kernel(); | ||
375 | |||
376 | name = getname(path); | 374 | name = getname(path); |
377 | retval = PTR_ERR(name); | 375 | retval = PTR_ERR(name); |
378 | if (IS_ERR(name)) | 376 | if (IS_ERR(name)) |
@@ -392,7 +390,6 @@ SYSCALL_DEFINE4(osf_mount, unsigned long, typenr, char __user *, path, | |||
392 | } | 390 | } |
393 | putname(name); | 391 | putname(name); |
394 | out: | 392 | out: |
395 | unlock_kernel(); | ||
396 | return retval; | 393 | return retval; |
397 | } | 394 | } |
398 | 395 | ||
diff --git a/fs/compat.c b/fs/compat.c index bb2a9b2e8173..6aefb776dfeb 100644 --- a/fs/compat.c +++ b/fs/compat.c | |||
@@ -812,10 +812,8 @@ asmlinkage long compat_sys_mount(char __user * dev_name, char __user * dir_name, | |||
812 | } | 812 | } |
813 | } | 813 | } |
814 | 814 | ||
815 | lock_kernel(); | ||
816 | retval = do_mount((char*)dev_page, dir_page, (char*)type_page, | 815 | retval = do_mount((char*)dev_page, dir_page, (char*)type_page, |
817 | flags, (void*)data_page); | 816 | flags, (void*)data_page); |
818 | unlock_kernel(); | ||
819 | 817 | ||
820 | out4: | 818 | out4: |
821 | free_page(data_page); | 819 | free_page(data_page); |
diff --git a/fs/namespace.c b/fs/namespace.c index 7e537f0393b5..4740f7bdb556 100644 --- a/fs/namespace.c +++ b/fs/namespace.c | |||
@@ -1921,6 +1921,7 @@ long do_mount(char *dev_name, char *dir_name, char *type_page, | |||
1921 | if (retval) | 1921 | if (retval) |
1922 | goto dput_out; | 1922 | goto dput_out; |
1923 | 1923 | ||
1924 | lock_kernel(); | ||
1924 | if (flags & MS_REMOUNT) | 1925 | if (flags & MS_REMOUNT) |
1925 | retval = do_remount(&path, flags & ~MS_REMOUNT, mnt_flags, | 1926 | retval = do_remount(&path, flags & ~MS_REMOUNT, mnt_flags, |
1926 | data_page); | 1927 | data_page); |
@@ -1933,6 +1934,7 @@ long do_mount(char *dev_name, char *dir_name, char *type_page, | |||
1933 | else | 1934 | else |
1934 | retval = do_new_mount(&path, type_page, flags, mnt_flags, | 1935 | retval = do_new_mount(&path, type_page, flags, mnt_flags, |
1935 | dev_name, data_page); | 1936 | dev_name, data_page); |
1937 | unlock_kernel(); | ||
1936 | dput_out: | 1938 | dput_out: |
1937 | path_put(&path); | 1939 | path_put(&path); |
1938 | return retval; | 1940 | return retval; |
@@ -2046,10 +2048,8 @@ SYSCALL_DEFINE5(mount, char __user *, dev_name, char __user *, dir_name, | |||
2046 | if (retval < 0) | 2048 | if (retval < 0) |
2047 | goto out3; | 2049 | goto out3; |
2048 | 2050 | ||
2049 | lock_kernel(); | ||
2050 | retval = do_mount((char *)dev_page, dir_page, (char *)type_page, | 2051 | retval = do_mount((char *)dev_page, dir_page, (char *)type_page, |
2051 | flags, (void *)data_page); | 2052 | flags, (void *)data_page); |
2052 | unlock_kernel(); | ||
2053 | free_page(data_page); | 2053 | free_page(data_page); |
2054 | 2054 | ||
2055 | out3: | 2055 | out3: |