aboutsummaryrefslogtreecommitdiffstats
path: root/fs/nfs/direct.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/nfs/direct.c')
-rw-r--r--fs/nfs/direct.c7
1 files changed, 1 insertions, 6 deletions
diff --git a/fs/nfs/direct.c b/fs/nfs/direct.c
index f8e165c7d5a6..16844f98f50e 100644
--- a/fs/nfs/direct.c
+++ b/fs/nfs/direct.c
@@ -188,17 +188,12 @@ static void nfs_direct_req_release(struct nfs_direct_req *dreq)
188static ssize_t nfs_direct_wait(struct nfs_direct_req *dreq) 188static ssize_t nfs_direct_wait(struct nfs_direct_req *dreq)
189{ 189{
190 ssize_t result = -EIOCBQUEUED; 190 ssize_t result = -EIOCBQUEUED;
191 struct rpc_clnt *clnt;
192 sigset_t oldset;
193 191
194 /* Async requests don't wait here */ 192 /* Async requests don't wait here */
195 if (dreq->iocb) 193 if (dreq->iocb)
196 goto out; 194 goto out;
197 195
198 clnt = NFS_CLIENT(dreq->inode); 196 result = wait_for_completion_killable(&dreq->completion);
199 rpc_clnt_sigmask(clnt, &oldset);
200 result = wait_for_completion_interruptible(&dreq->completion);
201 rpc_clnt_sigunmask(clnt, &oldset);
202 197
203 if (!result) 198 if (!result)
204 result = dreq->error; 199 result = dreq->error;