diff options
author | Trond Myklebust <Trond.Myklebust@netapp.com> | 2012-01-17 22:57:37 -0500 |
---|---|---|
committer | Trond Myklebust <Trond.Myklebust@netapp.com> | 2012-01-31 19:28:08 -0500 |
commit | 961a828df64979d2a9faeeeee043391670a193b9 (patch) | |
tree | 4b7ddaf1a19c589e3c8ec96b6c732faa507f2899 /fs/nfs/nfs4_fs.h | |
parent | 2aeb98f498ce37742b743080fdc6c8cf64053599 (diff) |
SUNRPC: Fix potential races in xprt_lock_write_next()
We have to ensure that the wake up from the waitqueue and the assignment
of xprt->snd_task are atomic. We can do this by assigning the snd_task
while under the waitqueue spinlock.
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Diffstat (limited to 'fs/nfs/nfs4_fs.h')
-rw-r--r-- | fs/nfs/nfs4_fs.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/fs/nfs/nfs4_fs.h b/fs/nfs/nfs4_fs.h index df3d02c3e8cb..c45c21a5470f 100644 --- a/fs/nfs/nfs4_fs.h +++ b/fs/nfs/nfs4_fs.h | |||
@@ -222,6 +222,7 @@ static inline struct nfs4_session *nfs4_get_session(const struct nfs_server *ser | |||
222 | return server->nfs_client->cl_session; | 222 | return server->nfs_client->cl_session; |
223 | } | 223 | } |
224 | 224 | ||
225 | extern bool nfs4_set_task_privileged(struct rpc_task *task, void *dummy); | ||
225 | extern int nfs4_setup_sequence(const struct nfs_server *server, | 226 | extern int nfs4_setup_sequence(const struct nfs_server *server, |
226 | struct nfs4_sequence_args *args, struct nfs4_sequence_res *res, | 227 | struct nfs4_sequence_args *args, struct nfs4_sequence_res *res, |
227 | struct rpc_task *task); | 228 | struct rpc_task *task); |