Lines Matching refs:task
90 struct rpc_task *task = &hdr->task; in filelayout_reset_write() local
95 hdr->task.tk_pid, in filelayout_reset_write()
101 task->tk_status = pnfs_write_done_resend_to_mds(hdr); in filelayout_reset_write()
107 struct rpc_task *task = &hdr->task; in filelayout_reset_read() local
112 hdr->task.tk_pid, in filelayout_reset_read()
118 task->tk_status = pnfs_read_done_resend_to_mds(hdr); in filelayout_reset_read()
122 static int filelayout_async_handle_error(struct rpc_task *task, in filelayout_async_handle_error() argument
134 if (task->tk_status >= 0) in filelayout_async_handle_error()
137 switch (task->tk_status) { in filelayout_async_handle_error()
164 "flags 0x%x\n", __func__, task->tk_status, in filelayout_async_handle_error()
166 nfs4_schedule_session_recovery(clp->cl_session, task->tk_status); in filelayout_async_handle_error()
170 rpc_delay(task, FILELAYOUT_POLL_RETRY_MAX); in filelayout_async_handle_error()
182 task->tk_status); in filelayout_async_handle_error()
202 task->tk_status); in filelayout_async_handle_error()
210 task->tk_status); in filelayout_async_handle_error()
214 task->tk_status = 0; in filelayout_async_handle_error()
217 task->tk_status = -EIO; in filelayout_async_handle_error()
220 rpc_sleep_on(&mds_client->cl_rpcwaitq, task, NULL); in filelayout_async_handle_error()
222 rpc_wake_up_queued_task(&mds_client->cl_rpcwaitq, task); in filelayout_async_handle_error()
228 static int filelayout_read_done_cb(struct rpc_task *task, in filelayout_read_done_cb() argument
233 trace_nfs4_pnfs_read(hdr, task->tk_status); in filelayout_read_done_cb()
234 err = filelayout_async_handle_error(task, hdr->args.context->state, in filelayout_read_done_cb()
240 return task->tk_status; in filelayout_read_done_cb()
242 rpc_restart_call_prepare(task); in filelayout_read_done_cb()
288 static void filelayout_read_prepare(struct rpc_task *task, void *data) in filelayout_read_prepare() argument
293 rpc_exit(task, -EIO); in filelayout_read_prepare()
297 dprintk("%s task %u reset io to MDS\n", __func__, task->tk_pid); in filelayout_read_prepare()
299 rpc_exit(task, 0); in filelayout_read_prepare()
307 task)) in filelayout_read_prepare()
311 rpc_exit(task, -EIO); /* lost lock, terminate I/O */ in filelayout_read_prepare()
314 static void filelayout_read_call_done(struct rpc_task *task, void *data) in filelayout_read_call_done() argument
318 dprintk("--> %s task->tk_status %d\n", __func__, task->tk_status); in filelayout_read_call_done()
321 task->tk_status == 0) { in filelayout_read_call_done()
322 nfs41_sequence_done(task, &hdr->res.seq_res); in filelayout_read_call_done()
327 hdr->mds_ops->rpc_call_done(task, data); in filelayout_read_call_done()
330 static void filelayout_read_count_stats(struct rpc_task *task, void *data) in filelayout_read_count_stats() argument
334 rpc_count_iostats(task, NFS_SERVER(hdr->inode)->client->cl_metrics); in filelayout_read_count_stats()
337 static int filelayout_write_done_cb(struct rpc_task *task, in filelayout_write_done_cb() argument
342 trace_nfs4_pnfs_write(hdr, task->tk_status); in filelayout_write_done_cb()
343 err = filelayout_async_handle_error(task, hdr->args.context->state, in filelayout_write_done_cb()
349 return task->tk_status; in filelayout_write_done_cb()
351 rpc_restart_call_prepare(task); in filelayout_write_done_cb()
359 static int filelayout_commit_done_cb(struct rpc_task *task, in filelayout_commit_done_cb() argument
364 trace_nfs4_pnfs_commit_ds(data, task->tk_status); in filelayout_commit_done_cb()
365 err = filelayout_async_handle_error(task, NULL, data->ds_clp, in filelayout_commit_done_cb()
373 rpc_restart_call_prepare(task); in filelayout_commit_done_cb()
383 static void filelayout_write_prepare(struct rpc_task *task, void *data) in filelayout_write_prepare() argument
388 rpc_exit(task, -EIO); in filelayout_write_prepare()
392 dprintk("%s task %u reset io to MDS\n", __func__, task->tk_pid); in filelayout_write_prepare()
394 rpc_exit(task, 0); in filelayout_write_prepare()
400 task)) in filelayout_write_prepare()
404 rpc_exit(task, -EIO); /* lost lock, terminate I/O */ in filelayout_write_prepare()
407 static void filelayout_write_call_done(struct rpc_task *task, void *data) in filelayout_write_call_done() argument
412 task->tk_status == 0) { in filelayout_write_call_done()
413 nfs41_sequence_done(task, &hdr->res.seq_res); in filelayout_write_call_done()
418 hdr->mds_ops->rpc_call_done(task, data); in filelayout_write_call_done()
421 static void filelayout_write_count_stats(struct rpc_task *task, void *data) in filelayout_write_count_stats() argument
425 rpc_count_iostats(task, NFS_SERVER(hdr->inode)->client->cl_metrics); in filelayout_write_count_stats()
428 static void filelayout_commit_prepare(struct rpc_task *task, void *data) in filelayout_commit_prepare() argument
435 task); in filelayout_commit_prepare()
438 static void filelayout_commit_count_stats(struct rpc_task *task, void *data) in filelayout_commit_count_stats() argument
442 rpc_count_iostats(task, NFS_SERVER(cdata->inode)->client->cl_metrics); in filelayout_commit_count_stats()