diff options
author | Alessio Igor Bogani <abogani@texware.it> | 2009-04-24 09:06:53 +0200 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2009-05-09 16:49:38 +0200 |
commit | 67e55205ec55cc7899f1d783f217961596798419 (patch) | |
tree | 45dd7351f9721a46ecb448f0571fb10db3259147 /fs/nfs | |
parent | Linux 2.6.30-rc5 (diff) | |
download | linux-67e55205ec55cc7899f1d783f217961596798419.tar.xz linux-67e55205ec55cc7899f1d783f217961596798419.zip |
vfs: umount_begin BKL pushdown
Push BKL down into ->umount_begin()
Signed-off-by: Alessio Igor Bogani <abogani@texware.it>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'fs/nfs')
-rw-r--r-- | fs/nfs/super.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/fs/nfs/super.c b/fs/nfs/super.c index 6717200923fe..1679a164c8c9 100644 --- a/fs/nfs/super.c +++ b/fs/nfs/super.c @@ -683,9 +683,12 @@ static int nfs_show_stats(struct seq_file *m, struct vfsmount *mnt) */ static void nfs_umount_begin(struct super_block *sb) { - struct nfs_server *server = NFS_SB(sb); + struct nfs_server *server; struct rpc_clnt *rpc; + lock_kernel(); + + server = NFS_SB(sb); /* -EIO all pending I/O */ rpc = server->client_acl; if (!IS_ERR(rpc)) @@ -693,6 +696,8 @@ static void nfs_umount_begin(struct super_block *sb) rpc = server->client; if (!IS_ERR(rpc)) rpc_killall_tasks(rpc); + + unlock_kernel(); } /* |