git.openpandora.org
/
pandora-kernel.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'topic/hdsp' into for-linus
[pandora-kernel.git]
/
fs
/
nfs
/
super.c
diff --git
a/fs/nfs/super.c
b/fs/nfs/super.c
index
6717200
..
d2d6778
100644
(file)
--- 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)
{
*/
static void nfs_umount_begin(struct super_block *sb)
{
- struct nfs_server *server
= NFS_SB(sb)
;
+ struct nfs_server *server;
struct rpc_clnt *rpc;
struct rpc_clnt *rpc;
+ lock_kernel();
+
+ server = NFS_SB(sb);
/* -EIO all pending I/O */
rpc = server->client_acl;
if (!IS_ERR(rpc))
/* -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);
rpc = server->client;
if (!IS_ERR(rpc))
rpc_killall_tasks(rpc);
+
+ unlock_kernel();
}
/*
}
/*
@@
-2106,8
+2111,7
@@
out_err_nosb:
error_splat_root:
dput(mntroot);
error_splat_super:
error_splat_root:
dput(mntroot);
error_splat_super:
- up_write(&s->s_umount);
- deactivate_super(s);
+ deactivate_locked_super(s);
goto out;
}
goto out;
}
@@
-2203,8
+2207,7
@@
out_err_noserver:
return error;
error_splat_super:
return error;
error_splat_super:
- up_write(&s->s_umount);
- deactivate_super(s);
+ deactivate_locked_super(s);
dprintk("<-- nfs_xdev_get_sb() = %d [splat]\n", error);
return error;
}
dprintk("<-- nfs_xdev_get_sb() = %d [splat]\n", error);
return error;
}
@@
-2464,8
+2467,7
@@
out_free:
error_splat_root:
dput(mntroot);
error_splat_super:
error_splat_root:
dput(mntroot);
error_splat_super:
- up_write(&s->s_umount);
- deactivate_super(s);
+ deactivate_locked_super(s);
goto out;
}
goto out;
}
@@
-2559,8
+2561,7
@@
out_err_noserver:
return error;
error_splat_super:
return error;
error_splat_super:
- up_write(&s->s_umount);
- deactivate_super(s);
+ deactivate_locked_super(s);
dprintk("<-- nfs4_xdev_get_sb() = %d [splat]\n", error);
return error;
}
dprintk("<-- nfs4_xdev_get_sb() = %d [splat]\n", error);
return error;
}
@@
-2644,8
+2645,7
@@
out_err_noserver:
return error;
error_splat_super:
return error;
error_splat_super:
- up_write(&s->s_umount);
- deactivate_super(s);
+ deactivate_locked_super(s);
dprintk("<-- nfs4_referral_get_sb() = %d [splat]\n", error);
return error;
}
dprintk("<-- nfs4_referral_get_sb() = %d [splat]\n", error);
return error;
}