Lines Matching refs:task
89 struct rpc_task *task = &hdr->task; in filelayout_reset_write() local
94 hdr->task.tk_pid, in filelayout_reset_write()
100 task->tk_status = pnfs_write_done_resend_to_mds(hdr); in filelayout_reset_write()
106 struct rpc_task *task = &hdr->task; in filelayout_reset_read() local
111 hdr->task.tk_pid, in filelayout_reset_read()
117 task->tk_status = pnfs_read_done_resend_to_mds(hdr); in filelayout_reset_read()
121 static int filelayout_async_handle_error(struct rpc_task *task, in filelayout_async_handle_error() argument
133 if (task->tk_status >= 0) in filelayout_async_handle_error()
136 switch (task->tk_status) { in filelayout_async_handle_error()
163 "flags 0x%x\n", __func__, task->tk_status, in filelayout_async_handle_error()
165 nfs4_schedule_session_recovery(clp->cl_session, task->tk_status); in filelayout_async_handle_error()
169 rpc_delay(task, FILELAYOUT_POLL_RETRY_MAX); in filelayout_async_handle_error()
181 task->tk_status); in filelayout_async_handle_error()
201 task->tk_status); in filelayout_async_handle_error()
209 task->tk_status); in filelayout_async_handle_error()
213 task->tk_status = 0; in filelayout_async_handle_error()
216 task->tk_status = -EIO; in filelayout_async_handle_error()
219 rpc_sleep_on(&mds_client->cl_rpcwaitq, task, NULL); in filelayout_async_handle_error()
221 rpc_wake_up_queued_task(&mds_client->cl_rpcwaitq, task); in filelayout_async_handle_error()
227 static int filelayout_read_done_cb(struct rpc_task *task, in filelayout_read_done_cb() argument
232 trace_nfs4_pnfs_read(hdr, task->tk_status); in filelayout_read_done_cb()
233 err = filelayout_async_handle_error(task, hdr->args.context->state, in filelayout_read_done_cb()
239 return task->tk_status; in filelayout_read_done_cb()
241 rpc_restart_call_prepare(task); in filelayout_read_done_cb()
287 static void filelayout_read_prepare(struct rpc_task *task, void *data) in filelayout_read_prepare() argument
292 rpc_exit(task, -EIO); in filelayout_read_prepare()
296 dprintk("%s task %u reset io to MDS\n", __func__, task->tk_pid); in filelayout_read_prepare()
298 rpc_exit(task, 0); in filelayout_read_prepare()
306 task)) in filelayout_read_prepare()
310 rpc_exit(task, -EIO); /* lost lock, terminate I/O */ in filelayout_read_prepare()
313 static void filelayout_read_call_done(struct rpc_task *task, void *data) in filelayout_read_call_done() argument
317 dprintk("--> %s task->tk_status %d\n", __func__, task->tk_status); in filelayout_read_call_done()
320 task->tk_status == 0) { in filelayout_read_call_done()
321 nfs41_sequence_done(task, &hdr->res.seq_res); in filelayout_read_call_done()
326 hdr->mds_ops->rpc_call_done(task, data); in filelayout_read_call_done()
329 static void filelayout_read_count_stats(struct rpc_task *task, void *data) in filelayout_read_count_stats() argument
333 rpc_count_iostats(task, NFS_SERVER(hdr->inode)->client->cl_metrics); in filelayout_read_count_stats()
336 static int filelayout_write_done_cb(struct rpc_task *task, in filelayout_write_done_cb() argument
341 trace_nfs4_pnfs_write(hdr, task->tk_status); in filelayout_write_done_cb()
342 err = filelayout_async_handle_error(task, hdr->args.context->state, in filelayout_write_done_cb()
348 return task->tk_status; in filelayout_write_done_cb()
350 rpc_restart_call_prepare(task); in filelayout_write_done_cb()
358 static int filelayout_commit_done_cb(struct rpc_task *task, in filelayout_commit_done_cb() argument
363 trace_nfs4_pnfs_commit_ds(data, task->tk_status); in filelayout_commit_done_cb()
364 err = filelayout_async_handle_error(task, NULL, data->ds_clp, in filelayout_commit_done_cb()
372 rpc_restart_call_prepare(task); in filelayout_commit_done_cb()
382 static void filelayout_write_prepare(struct rpc_task *task, void *data) in filelayout_write_prepare() argument
387 rpc_exit(task, -EIO); in filelayout_write_prepare()
391 dprintk("%s task %u reset io to MDS\n", __func__, task->tk_pid); in filelayout_write_prepare()
393 rpc_exit(task, 0); in filelayout_write_prepare()
399 task)) in filelayout_write_prepare()
403 rpc_exit(task, -EIO); /* lost lock, terminate I/O */ in filelayout_write_prepare()
406 static void filelayout_write_call_done(struct rpc_task *task, void *data) in filelayout_write_call_done() argument
411 task->tk_status == 0) { in filelayout_write_call_done()
412 nfs41_sequence_done(task, &hdr->res.seq_res); in filelayout_write_call_done()
417 hdr->mds_ops->rpc_call_done(task, data); in filelayout_write_call_done()
420 static void filelayout_write_count_stats(struct rpc_task *task, void *data) in filelayout_write_count_stats() argument
424 rpc_count_iostats(task, NFS_SERVER(hdr->inode)->client->cl_metrics); in filelayout_write_count_stats()
427 static void filelayout_commit_prepare(struct rpc_task *task, void *data) in filelayout_commit_prepare() argument
434 task); in filelayout_commit_prepare()
437 static void filelayout_commit_count_stats(struct rpc_task *task, void *data) in filelayout_commit_count_stats() argument
441 rpc_count_iostats(task, NFS_SERVER(cdata->inode)->client->cl_metrics); in filelayout_commit_count_stats()