• Home
  • Raw
  • Download

Lines Matching refs:task

620 nfs4_async_handle_exception(struct rpc_task *task, struct nfs_server *server,  in nfs4_async_handle_exception()  argument
628 rpc_delay(task, nfs4_update_delay(&exception->timeout)); in nfs4_async_handle_exception()
634 rpc_sleep_on(&clp->cl_rpcwaitq, task, NULL); in nfs4_async_handle_exception()
636 rpc_wake_up_queued_task(&clp->cl_rpcwaitq, task); in nfs4_async_handle_exception()
650 rpc_task_release_transport(task); in nfs4_async_handle_exception()
656 nfs4_async_handle_error(struct rpc_task *task, struct nfs_server *server, in nfs4_async_handle_error() argument
663 if (task->tk_status >= 0) in nfs4_async_handle_error()
667 task->tk_status = nfs4_async_handle_exception(task, server, in nfs4_async_handle_error()
668 task->tk_status, in nfs4_async_handle_error()
734 static int nfs40_sequence_done(struct rpc_task *task, in nfs40_sequence_done() argument
804 struct rpc_task *task = _nfs41_proc_sequence(client, cred, slot, true); in nfs4_probe_sequence() local
805 if (!IS_ERR(task)) in nfs4_probe_sequence()
806 rpc_put_task_async(task); in nfs4_probe_sequence()
809 static int nfs41_sequence_process(struct rpc_task *task, in nfs41_sequence_process() argument
821 if (!RPC_WAS_SENT(task) || slot->seq_done) in nfs41_sequence_process()
830 if (task->tk_status == -NFS4ERR_DEADSESSION) in nfs41_sequence_process()
894 if (task->tk_msg.rpc_proc != &nfs4_procedures[NFSPROC4_CLNT_SEQUENCE]) { in nfs41_sequence_process()
895 nfs4_probe_sequence(clp, task->tk_msg.rpc_cred, slot); in nfs41_sequence_process()
934 if (rpc_restart_call_prepare(task)) { in nfs41_sequence_process()
936 task->tk_status = 0; in nfs41_sequence_process()
941 if (!rpc_restart_call(task)) in nfs41_sequence_process()
943 rpc_delay(task, NFS4_POLL_RETRY_MAX); in nfs41_sequence_process()
947 int nfs41_sequence_done(struct rpc_task *task, struct nfs4_sequence_res *res) in nfs41_sequence_done() argument
949 if (!nfs41_sequence_process(task, res)) in nfs41_sequence_done()
958 static int nfs4_sequence_process(struct rpc_task *task, struct nfs4_sequence_res *res) in nfs4_sequence_process() argument
963 return nfs41_sequence_process(task, res); in nfs4_sequence_process()
964 return nfs40_sequence_done(task, res); in nfs4_sequence_process()
977 int nfs4_sequence_done(struct rpc_task *task, struct nfs4_sequence_res *res) in nfs4_sequence_done() argument
982 return nfs40_sequence_done(task, res); in nfs4_sequence_done()
983 return nfs41_sequence_done(task, res); in nfs4_sequence_done()
987 static void nfs41_call_sync_prepare(struct rpc_task *task, void *calldata) in nfs41_call_sync_prepare() argument
994 data->seq_args, data->seq_res, task); in nfs41_call_sync_prepare()
997 static void nfs41_call_sync_done(struct rpc_task *task, void *calldata) in nfs41_call_sync_done() argument
1001 nfs41_sequence_done(task, data->seq_res); in nfs41_call_sync_done()
1011 static int nfs4_sequence_process(struct rpc_task *task, struct nfs4_sequence_res *res) in nfs4_sequence_process() argument
1013 return nfs40_sequence_done(task, res); in nfs4_sequence_process()
1022 int nfs4_sequence_done(struct rpc_task *task, in nfs4_sequence_done() argument
1025 return nfs40_sequence_done(task, res); in nfs4_sequence_done()
1054 struct rpc_task *task) in nfs4_setup_sequence() argument
1085 rpc_call_start(task); in nfs4_setup_sequence()
1090 rpc_sleep_on_priority_timeout(&tbl->slot_tbl_waitq, task, in nfs4_setup_sequence()
1093 rpc_sleep_on_timeout(&tbl->slot_tbl_waitq, task, in nfs4_setup_sequence()
1099 rpc_sleep_on_priority(&tbl->slot_tbl_waitq, task, in nfs4_setup_sequence()
1102 rpc_sleep_on(&tbl->slot_tbl_waitq, task, NULL); in nfs4_setup_sequence()
1108 static void nfs40_call_sync_prepare(struct rpc_task *task, void *calldata) in nfs40_call_sync_prepare() argument
1112 data->seq_args, data->seq_res, task); in nfs40_call_sync_prepare()
1115 static void nfs40_call_sync_done(struct rpc_task *task, void *calldata) in nfs40_call_sync_done() argument
1118 nfs4_sequence_done(task, data->seq_res); in nfs40_call_sync_done()
1129 struct rpc_task *task; in nfs4_call_sync_custom() local
1131 task = rpc_run_task(task_setup); in nfs4_call_sync_custom()
1132 if (IS_ERR(task)) in nfs4_call_sync_custom()
1133 return PTR_ERR(task); in nfs4_call_sync_custom()
1135 ret = task->tk_status; in nfs4_call_sync_custom()
1136 rpc_put_task(task); in nfs4_call_sync_custom()
2338 static void nfs4_open_confirm_prepare(struct rpc_task *task, void *calldata) in nfs4_open_confirm_prepare() argument
2343 &data->c_arg.seq_args, &data->c_res.seq_res, task); in nfs4_open_confirm_prepare()
2346 static void nfs4_open_confirm_done(struct rpc_task *task, void *calldata) in nfs4_open_confirm_done() argument
2350 nfs40_sequence_done(task, &data->c_res.seq_res); in nfs4_open_confirm_done()
2352 data->rpc_status = task->tk_status; in nfs4_open_confirm_done()
2391 struct rpc_task *task; in _nfs4_proc_open_confirm() local
2414 task = rpc_run_task(&task_setup_data); in _nfs4_proc_open_confirm()
2415 if (IS_ERR(task)) in _nfs4_proc_open_confirm()
2416 return PTR_ERR(task); in _nfs4_proc_open_confirm()
2417 status = rpc_wait_for_completion_task(task); in _nfs4_proc_open_confirm()
2423 rpc_put_task(task); in _nfs4_proc_open_confirm()
2427 static void nfs4_open_prepare(struct rpc_task *task, void *calldata) in nfs4_open_prepare() argument
2434 if (nfs_wait_on_sequence(data->o_arg.seqid, task) != 0) in nfs4_open_prepare()
2463 task->tk_msg.rpc_proc = &nfs4_procedures[NFSPROC4_CLNT_OPEN_NOATTR]; in nfs4_open_prepare()
2469 task) != 0) in nfs4_open_prepare()
2490 task->tk_action = NULL; in nfs4_open_prepare()
2492 nfs4_sequence_done(task, &data->o_res.seq_res); in nfs4_open_prepare()
2495 static void nfs4_open_done(struct rpc_task *task, void *calldata) in nfs4_open_done() argument
2499 data->rpc_status = task->tk_status; in nfs4_open_done()
2501 if (!nfs4_sequence_process(task, &data->o_res.seq_res)) in nfs4_open_done()
2504 if (task->tk_status == 0) { in nfs4_open_done()
2560 struct rpc_task *task; in nfs4_run_open_task() local
2593 task = rpc_run_task(&task_setup_data); in nfs4_run_open_task()
2594 if (IS_ERR(task)) in nfs4_run_open_task()
2595 return PTR_ERR(task); in nfs4_run_open_task()
2596 status = rpc_wait_for_completion_task(task); in nfs4_run_open_task()
2602 rpc_put_task(task); in nfs4_run_open_task()
3419 nfs4_wait_on_layoutreturn(struct inode *inode, struct rpc_task *task) in nfs4_wait_on_layoutreturn() argument
3424 return pnfs_wait_on_layoutreturn(inode, task); in nfs4_wait_on_layoutreturn()
3555 static void nfs4_close_done(struct rpc_task *task, void *data) in nfs4_close_done() argument
3567 if (!nfs4_sequence_done(task, &calldata->res.seq_res)) in nfs4_close_done()
3569 trace_nfs4_close(state, &calldata->arg, &calldata->res, task->tk_status); in nfs4_close_done()
3572 if (pnfs_roc_done(task, &calldata->arg.lr_args, &calldata->res.lr_res, in nfs4_close_done()
3579 switch (task->tk_status) { in nfs4_close_done()
3603 task->tk_msg.rpc_cred); in nfs4_close_done()
3610 task->tk_status = nfs4_async_handle_exception(task, in nfs4_close_done()
3611 server, task->tk_status, &exception); in nfs4_close_done()
3618 task->tk_status = 0; in nfs4_close_done()
3621 dprintk("%s: ret = %d\n", __func__, task->tk_status); in nfs4_close_done()
3624 task->tk_status = 0; in nfs4_close_done()
3625 rpc_restart_call_prepare(task); in nfs4_close_done()
3629 static void nfs4_close_prepare(struct rpc_task *task, void *data) in nfs4_close_prepare() argument
3639 if (nfs_wait_on_sequence(calldata->arg.seqid, task) != 0) in nfs4_close_prepare()
3642 task->tk_msg.rpc_proc = &nfs4_procedures[NFSPROC4_CLNT_OPEN_DOWNGRADE]; in nfs4_close_prepare()
3673 if (!calldata->lr.roc && nfs4_wait_on_layoutreturn(inode, task)) { in nfs4_close_prepare()
3685 task->tk_msg.rpc_proc = &nfs4_procedures[NFSPROC4_CLNT_CLOSE]; in nfs4_close_prepare()
3710 task) != 0) in nfs4_close_prepare()
3714 task->tk_action = NULL; in nfs4_close_prepare()
3716 nfs4_sequence_done(task, &calldata->res.seq_res); in nfs4_close_prepare()
3742 struct rpc_task *task; in nfs4_do_close() local
3794 task = rpc_run_task(&task_setup_data); in nfs4_do_close()
3795 if (IS_ERR(task)) in nfs4_do_close()
3796 return PTR_ERR(task); in nfs4_do_close()
3799 status = rpc_wait_for_completion_task(task); in nfs4_do_close()
3800 rpc_put_task(task); in nfs4_do_close()
4817 static void nfs4_proc_unlink_rpc_prepare(struct rpc_task *task, struct nfs_unlinkdata *data) in nfs4_proc_unlink_rpc_prepare() argument
4822 task); in nfs4_proc_unlink_rpc_prepare()
4825 static int nfs4_proc_unlink_done(struct rpc_task *task, struct inode *dir) in nfs4_proc_unlink_done() argument
4827 struct nfs_unlinkdata *data = task->tk_calldata; in nfs4_proc_unlink_done()
4830 if (!nfs4_sequence_done(task, &res->seq_res)) in nfs4_proc_unlink_done()
4832 if (nfs4_async_handle_error(task, res->server, NULL, in nfs4_proc_unlink_done()
4835 if (task->tk_status == 0) in nfs4_proc_unlink_done()
4860 static void nfs4_proc_rename_rpc_prepare(struct rpc_task *task, struct nfs_renamedata *data) in nfs4_proc_rename_rpc_prepare() argument
4865 task); in nfs4_proc_rename_rpc_prepare()
4868 static int nfs4_proc_rename_done(struct rpc_task *task, struct inode *old_dir, in nfs4_proc_rename_done() argument
4871 struct nfs_renamedata *data = task->tk_calldata; in nfs4_proc_rename_done()
4874 if (!nfs4_sequence_done(task, &res->seq_res)) in nfs4_proc_rename_done()
4876 if (nfs4_async_handle_error(task, res->server, NULL, &data->timeout) == -EAGAIN) in nfs4_proc_rename_done()
4879 if (task->tk_status == 0) { in nfs4_proc_rename_done()
5399 static int nfs4_read_done_cb(struct rpc_task *task, struct nfs_pgio_header *hdr) in nfs4_read_done_cb() argument
5403 trace_nfs4_read(hdr, task->tk_status); in nfs4_read_done_cb()
5404 if (task->tk_status < 0) { in nfs4_read_done_cb()
5410 task->tk_status = nfs4_async_handle_exception(task, in nfs4_read_done_cb()
5411 server, task->tk_status, &exception); in nfs4_read_done_cb()
5413 rpc_restart_call_prepare(task); in nfs4_read_done_cb()
5418 if (task->tk_status > 0) in nfs4_read_done_cb()
5423 static bool nfs4_read_stateid_changed(struct rpc_task *task, in nfs4_read_stateid_changed() argument
5427 if (!nfs4_error_stateid_expired(task->tk_status) || in nfs4_read_stateid_changed()
5433 rpc_restart_call_prepare(task); in nfs4_read_stateid_changed()
5437 static bool nfs4_read_plus_not_supported(struct rpc_task *task, in nfs4_read_plus_not_supported() argument
5441 struct rpc_message *msg = &task->tk_msg; in nfs4_read_plus_not_supported()
5444 server->caps & NFS_CAP_READ_PLUS && task->tk_status == -ENOTSUPP) { in nfs4_read_plus_not_supported()
5447 rpc_restart_call_prepare(task); in nfs4_read_plus_not_supported()
5453 static int nfs4_read_done(struct rpc_task *task, struct nfs_pgio_header *hdr) in nfs4_read_done() argument
5455 if (!nfs4_sequence_done(task, &hdr->res.seq_res)) in nfs4_read_done()
5457 if (nfs4_read_stateid_changed(task, &hdr->args)) in nfs4_read_done()
5459 if (nfs4_read_plus_not_supported(task, hdr)) in nfs4_read_done()
5461 if (task->tk_status > 0) in nfs4_read_done()
5463 return hdr->pgio_done_cb ? hdr->pgio_done_cb(task, hdr) : in nfs4_read_done()
5464 nfs4_read_done_cb(task, hdr); in nfs4_read_done()
5497 static int nfs4_proc_pgio_rpc_prepare(struct rpc_task *task, in nfs4_proc_pgio_rpc_prepare() argument
5503 task)) in nfs4_proc_pgio_rpc_prepare()
5514 static int nfs4_write_done_cb(struct rpc_task *task, in nfs4_write_done_cb() argument
5519 trace_nfs4_write(hdr, task->tk_status); in nfs4_write_done_cb()
5520 if (task->tk_status < 0) { in nfs4_write_done_cb()
5526 task->tk_status = nfs4_async_handle_exception(task, in nfs4_write_done_cb()
5527 NFS_SERVER(inode), task->tk_status, in nfs4_write_done_cb()
5530 rpc_restart_call_prepare(task); in nfs4_write_done_cb()
5534 if (task->tk_status >= 0) { in nfs4_write_done_cb()
5541 static bool nfs4_write_stateid_changed(struct rpc_task *task, in nfs4_write_stateid_changed() argument
5545 if (!nfs4_error_stateid_expired(task->tk_status) || in nfs4_write_stateid_changed()
5551 rpc_restart_call_prepare(task); in nfs4_write_stateid_changed()
5555 static int nfs4_write_done(struct rpc_task *task, struct nfs_pgio_header *hdr) in nfs4_write_done() argument
5557 if (!nfs4_sequence_done(task, &hdr->res.seq_res)) in nfs4_write_done()
5559 if (nfs4_write_stateid_changed(task, &hdr->args)) in nfs4_write_done()
5561 return hdr->pgio_done_cb ? hdr->pgio_done_cb(task, hdr) : in nfs4_write_done()
5562 nfs4_write_done_cb(task, hdr); in nfs4_write_done()
5636 static void nfs4_proc_commit_rpc_prepare(struct rpc_task *task, struct nfs_commit_data *data) in nfs4_proc_commit_rpc_prepare() argument
5641 task); in nfs4_proc_commit_rpc_prepare()
5644 static int nfs4_commit_done_cb(struct rpc_task *task, struct nfs_commit_data *data) in nfs4_commit_done_cb() argument
5648 trace_nfs4_commit(data, task->tk_status); in nfs4_commit_done_cb()
5649 if (nfs4_async_handle_error(task, NFS_SERVER(inode), in nfs4_commit_done_cb()
5651 rpc_restart_call_prepare(task); in nfs4_commit_done_cb()
5657 static int nfs4_commit_done(struct rpc_task *task, struct nfs_commit_data *data) in nfs4_commit_done() argument
5659 if (!nfs4_sequence_done(task, &data->res.seq_res)) in nfs4_commit_done()
5661 return data->commit_done_cb(task, data); in nfs4_commit_done()
5732 static void nfs4_renew_done(struct rpc_task *task, void *calldata) in nfs4_renew_done() argument
5738 trace_nfs4_renew_async(clp, task->tk_status); in nfs4_renew_done()
5739 switch (task->tk_status) { in nfs4_renew_done()
5749 if (task->tk_status != NFS4ERR_CB_PATH_DOWN) { in nfs4_renew_done()
6412 static void nfs4_setclientid_done(struct rpc_task *task, void *calldata) in nfs4_setclientid_done() argument
6416 if (task->tk_status == 0) in nfs4_setclientid_done()
6417 sc->sc_cred = get_rpccred(task->tk_rqstp->rq_cred); in nfs4_setclientid_done()
6546 static void nfs4_delegreturn_done(struct rpc_task *task, void *calldata) in nfs4_delegreturn_done() argument
6555 if (!nfs4_sequence_done(task, &data->res.seq_res)) in nfs4_delegreturn_done()
6558 trace_nfs4_delegreturn_exit(&data->args, &data->res, task->tk_status); in nfs4_delegreturn_done()
6561 if (pnfs_roc_done(task, &data->args.lr_args, &data->res.lr_res, in nfs4_delegreturn_done()
6565 switch (task->tk_status) { in nfs4_delegreturn_done()
6574 task->tk_msg.rpc_cred); in nfs4_delegreturn_done()
6579 task->tk_status = 0; in nfs4_delegreturn_done()
6597 task->tk_status = nfs4_async_handle_exception(task, in nfs4_delegreturn_done()
6598 data->res.server, task->tk_status, in nfs4_delegreturn_done()
6604 data->rpc_status = task->tk_status; in nfs4_delegreturn_done()
6607 task->tk_status = 0; in nfs4_delegreturn_done()
6608 rpc_restart_call_prepare(task); in nfs4_delegreturn_done()
6628 static void nfs4_delegreturn_prepare(struct rpc_task *task, void *data) in nfs4_delegreturn_prepare() argument
6635 if (!d_data->lr.roc && nfs4_wait_on_layoutreturn(d_data->inode, task)) { in nfs4_delegreturn_prepare()
6636 nfs4_sequence_done(task, &d_data->res.seq_res); in nfs4_delegreturn_prepare()
6649 task); in nfs4_delegreturn_prepare()
6662 struct rpc_task *task; in _nfs4_proc_delegreturn() local
6719 task = rpc_run_task(&task_setup_data); in _nfs4_proc_delegreturn()
6720 if (IS_ERR(task)) in _nfs4_proc_delegreturn()
6721 return PTR_ERR(task); in _nfs4_proc_delegreturn()
6724 status = rpc_wait_for_completion_task(task); in _nfs4_proc_delegreturn()
6729 rpc_put_task(task); in _nfs4_proc_delegreturn()
6896 static void nfs4_locku_done(struct rpc_task *task, void *data) in nfs4_locku_done() argument
6904 if (!nfs4_sequence_done(task, &calldata->res.seq_res)) in nfs4_locku_done()
6906 switch (task->tk_status) { in nfs4_locku_done()
6918 task->tk_msg.rpc_cred); in nfs4_locku_done()
6924 rpc_restart_call_prepare(task); in nfs4_locku_done()
6929 rpc_restart_call_prepare(task); in nfs4_locku_done()
6932 task->tk_status = nfs4_async_handle_exception(task, in nfs4_locku_done()
6933 calldata->server, task->tk_status, in nfs4_locku_done()
6936 rpc_restart_call_prepare(task); in nfs4_locku_done()
6941 static void nfs4_locku_prepare(struct rpc_task *task, void *data) in nfs4_locku_prepare() argument
6946 nfs_async_iocounter_wait(task, calldata->l_ctx)) in nfs4_locku_prepare()
6949 if (nfs_wait_on_sequence(calldata->arg.seqid, task) != 0) in nfs4_locku_prepare()
6959 task) != 0) in nfs4_locku_prepare()
6963 task->tk_action = NULL; in nfs4_locku_prepare()
6965 nfs4_sequence_done(task, &calldata->res.seq_res); in nfs4_locku_prepare()
7025 struct rpc_task *task; in nfs4_proc_unlck() local
7055 task = nfs4_do_unlck(request, nfs_file_open_context(request->fl_file), lsp, seqid); in nfs4_proc_unlck()
7056 status = PTR_ERR(task); in nfs4_proc_unlck()
7057 if (IS_ERR(task)) in nfs4_proc_unlck()
7059 status = rpc_wait_for_completion_task(task); in nfs4_proc_unlck()
7060 rpc_put_task(task); in nfs4_proc_unlck()
7118 static void nfs4_lock_prepare(struct rpc_task *task, void *calldata) in nfs4_lock_prepare() argument
7123 if (nfs_wait_on_sequence(data->arg.lock_seqid, task) != 0) in nfs4_lock_prepare()
7127 if (nfs_wait_on_sequence(data->arg.open_seqid, task) != 0) { in nfs4_lock_prepare()
7141 task->tk_action = NULL; in nfs4_lock_prepare()
7148 task) == 0) in nfs4_lock_prepare()
7155 nfs4_sequence_done(task, &data->res.seq_res); in nfs4_lock_prepare()
7159 static void nfs4_lock_done(struct rpc_task *task, void *calldata) in nfs4_lock_done() argument
7164 if (!nfs4_sequence_done(task, &data->res.seq_res)) in nfs4_lock_done()
7167 data->rpc_status = task->tk_status; in nfs4_lock_done()
7168 switch (task->tk_status) { in nfs4_lock_done()
7208 rpc_restart_call_prepare(task); in nfs4_lock_done()
7218 struct rpc_task *task; in nfs4_lock_release() local
7219 task = nfs4_do_unlck(&data->fl, data->ctx, data->lsp, in nfs4_lock_release()
7221 if (!IS_ERR(task)) in nfs4_lock_release()
7222 rpc_put_task_async(task); in nfs4_lock_release()
7257 struct rpc_task *task; in _nfs4_do_setlk() local
7290 task = rpc_run_task(&task_setup_data); in _nfs4_do_setlk()
7291 if (IS_ERR(task)) in _nfs4_do_setlk()
7292 return PTR_ERR(task); in _nfs4_do_setlk()
7293 ret = rpc_wait_for_completion_task(task); in _nfs4_do_setlk()
7302 rpc_put_task(task); in _nfs4_do_setlk()
7640 static void nfs4_release_lockowner_prepare(struct rpc_task *task, void *calldata) in nfs4_release_lockowner_prepare() argument
7645 &data->res.seq_res, task); in nfs4_release_lockowner_prepare()
7650 static void nfs4_release_lockowner_done(struct rpc_task *task, void *calldata) in nfs4_release_lockowner_done() argument
7655 nfs40_sequence_done(task, &data->res.seq_res); in nfs4_release_lockowner_done()
7657 switch (task->tk_status) { in nfs4_release_lockowner_done()
7667 if (nfs4_async_handle_error(task, server, in nfs4_release_lockowner_done()
7669 rpc_restart_call_prepare(task); in nfs4_release_lockowner_done()
8453 nfs4_bind_one_conn_to_session_done(struct rpc_task *task, void *calldata) in nfs4_bind_one_conn_to_session_done() argument
8455 struct nfs41_bind_conn_to_session_args *args = task->tk_msg.rpc_argp; in nfs4_bind_one_conn_to_session_done()
8456 struct nfs41_bind_conn_to_session_res *res = task->tk_msg.rpc_resp; in nfs4_bind_one_conn_to_session_done()
8459 switch (task->tk_status) { in nfs4_bind_one_conn_to_session_done()
8463 task->tk_status); in nfs4_bind_one_conn_to_session_done()
8468 rpc_task_close_connection(task); in nfs4_bind_one_conn_to_session_done()
8470 rpc_restart_call(task); in nfs4_bind_one_conn_to_session_done()
8511 struct rpc_task *task; in nfs4_proc_bind_one_conn_to_session() local
8521 task = rpc_run_task(&task_setup_data); in nfs4_proc_bind_one_conn_to_session()
8522 if (!IS_ERR(task)) { in nfs4_proc_bind_one_conn_to_session()
8523 status = task->tk_status; in nfs4_proc_bind_one_conn_to_session()
8524 rpc_put_task(task); in nfs4_proc_bind_one_conn_to_session()
8526 status = PTR_ERR(task); in nfs4_proc_bind_one_conn_to_session()
8831 struct rpc_task *task; in _nfs4_proc_exchange_id() local
8837 task = nfs4_run_exchange_id(clp, cred, sp4_how, NULL); in _nfs4_proc_exchange_id()
8838 if (IS_ERR(task)) in _nfs4_proc_exchange_id()
8839 return PTR_ERR(task); in _nfs4_proc_exchange_id()
8841 argp = task->tk_msg.rpc_argp; in _nfs4_proc_exchange_id()
8842 resp = task->tk_msg.rpc_resp; in _nfs4_proc_exchange_id()
8843 status = task->tk_status; in _nfs4_proc_exchange_id()
8883 rpc_put_task(task); in _nfs4_proc_exchange_id()
8935 struct rpc_task *task; in nfs4_test_session_trunk() local
8947 task = nfs4_run_exchange_id(adata->clp, adata->cred, sp4_how, xprt); in nfs4_test_session_trunk()
8948 if (IS_ERR(task)) in nfs4_test_session_trunk()
8951 status = task->tk_status; in nfs4_test_session_trunk()
8954 task->tk_msg.rpc_resp, xprt); in nfs4_test_session_trunk()
8962 rpc_put_task(task); in nfs4_test_session_trunk()
9040 static void nfs4_get_lease_time_prepare(struct rpc_task *task, in nfs4_get_lease_time_prepare() argument
9051 task); in nfs4_get_lease_time_prepare()
9058 static void nfs4_get_lease_time_done(struct rpc_task *task, void *calldata) in nfs4_get_lease_time_done() argument
9063 if (!nfs4_sequence_done(task, &data->res->lr_seq_res)) in nfs4_get_lease_time_done()
9065 switch (task->tk_status) { in nfs4_get_lease_time_done()
9068 rpc_delay(task, NFS4_POLL_RETRY_MIN); in nfs4_get_lease_time_done()
9069 task->tk_status = 0; in nfs4_get_lease_time_done()
9072 rpc_restart_call_prepare(task); in nfs4_get_lease_time_done()
9366 static int nfs41_sequence_handle_errors(struct rpc_task *task, struct nfs_client *clp) in nfs41_sequence_handle_errors() argument
9368 switch(task->tk_status) { in nfs41_sequence_handle_errors()
9370 rpc_delay(task, NFS4_POLL_RETRY_MAX); in nfs41_sequence_handle_errors()
9378 static void nfs41_sequence_call_done(struct rpc_task *task, void *data) in nfs41_sequence_call_done() argument
9383 if (!nfs41_sequence_done(task, task->tk_msg.rpc_resp)) in nfs41_sequence_call_done()
9386 trace_nfs4_sequence(clp, task->tk_status); in nfs41_sequence_call_done()
9387 if (task->tk_status < 0) { in nfs41_sequence_call_done()
9388 dprintk("%s ERROR %d\n", __func__, task->tk_status); in nfs41_sequence_call_done()
9392 if (nfs41_sequence_handle_errors(task, clp) == -EAGAIN) { in nfs41_sequence_call_done()
9393 rpc_restart_call_prepare(task); in nfs41_sequence_call_done()
9397 dprintk("%s rpc_cred %p\n", __func__, task->tk_msg.rpc_cred); in nfs41_sequence_call_done()
9400 static void nfs41_sequence_prepare(struct rpc_task *task, void *data) in nfs41_sequence_prepare() argument
9407 args = task->tk_msg.rpc_argp; in nfs41_sequence_prepare()
9408 res = task->tk_msg.rpc_resp; in nfs41_sequence_prepare()
9410 nfs4_setup_sequence(clp, args, res, task); in nfs41_sequence_prepare()
9465 struct rpc_task *task; in nfs41_proc_async_sequence() local
9470 task = _nfs41_proc_sequence(clp, cred, NULL, false); in nfs41_proc_async_sequence()
9471 if (IS_ERR(task)) in nfs41_proc_async_sequence()
9472 ret = PTR_ERR(task); in nfs41_proc_async_sequence()
9474 rpc_put_task_async(task); in nfs41_proc_async_sequence()
9481 struct rpc_task *task; in nfs4_proc_sequence() local
9484 task = _nfs41_proc_sequence(clp, cred, NULL, true); in nfs4_proc_sequence()
9485 if (IS_ERR(task)) { in nfs4_proc_sequence()
9486 ret = PTR_ERR(task); in nfs4_proc_sequence()
9489 ret = rpc_wait_for_completion_task(task); in nfs4_proc_sequence()
9491 ret = task->tk_status; in nfs4_proc_sequence()
9492 rpc_put_task(task); in nfs4_proc_sequence()
9504 static void nfs4_reclaim_complete_prepare(struct rpc_task *task, void *data) in nfs4_reclaim_complete_prepare() argument
9511 task); in nfs4_reclaim_complete_prepare()
9514 static int nfs41_reclaim_complete_handle_errors(struct rpc_task *task, struct nfs_client *clp) in nfs41_reclaim_complete_handle_errors() argument
9516 switch(task->tk_status) { in nfs41_reclaim_complete_handle_errors()
9524 rpc_delay(task, NFS4_POLL_RETRY_MAX); in nfs41_reclaim_complete_handle_errors()
9529 __func__, task->tk_status, clp->cl_hostname); in nfs41_reclaim_complete_handle_errors()
9541 static void nfs4_reclaim_complete_done(struct rpc_task *task, void *data) in nfs4_reclaim_complete_done() argument
9547 if (!nfs41_sequence_done(task, res)) in nfs4_reclaim_complete_done()
9550 trace_nfs4_reclaim_complete(clp, task->tk_status); in nfs4_reclaim_complete_done()
9551 if (nfs41_reclaim_complete_handle_errors(task, clp) == -EAGAIN) { in nfs4_reclaim_complete_done()
9552 rpc_restart_call_prepare(task); in nfs4_reclaim_complete_done()
9606 nfs4_layoutget_prepare(struct rpc_task *task, void *calldata) in nfs4_layoutget_prepare() argument
9612 &lgp->res.seq_res, task); in nfs4_layoutget_prepare()
9615 static void nfs4_layoutget_done(struct rpc_task *task, void *calldata) in nfs4_layoutget_done() argument
9619 nfs41_sequence_process(task, &lgp->res.seq_res); in nfs4_layoutget_done()
9623 nfs4_layoutget_handle_exception(struct rpc_task *task, in nfs4_layoutget_handle_exception() argument
9629 int nfs4err = task->tk_status; in nfs4_layoutget_handle_exception()
9633 dprintk("--> %s tk_status => %d\n", __func__, -task->tk_status); in nfs4_layoutget_handle_exception()
9737 struct rpc_task *task; in nfs4_proc_layoutget() local
9761 task = rpc_run_task(&task_setup_data); in nfs4_proc_layoutget()
9762 if (IS_ERR(task)) in nfs4_proc_layoutget()
9763 return ERR_CAST(task); in nfs4_proc_layoutget()
9765 status = rpc_wait_for_completion_task(task); in nfs4_proc_layoutget()
9769 if (task->tk_status < 0) { in nfs4_proc_layoutget()
9770 status = nfs4_layoutget_handle_exception(task, lgp, &exception); in nfs4_proc_layoutget()
9784 rpc_put_task(task); in nfs4_proc_layoutget()
9792 nfs4_layoutreturn_prepare(struct rpc_task *task, void *calldata) in nfs4_layoutreturn_prepare() argument
9799 task); in nfs4_layoutreturn_prepare()
9801 rpc_exit(task, 0); in nfs4_layoutreturn_prepare()
9804 static void nfs4_layoutreturn_done(struct rpc_task *task, void *calldata) in nfs4_layoutreturn_done() argument
9809 if (!nfs41_sequence_process(task, &lrp->res.seq_res)) in nfs4_layoutreturn_done()
9816 if (task->tk_rpc_status != 0 && RPC_WAS_SENT(task)) { in nfs4_layoutreturn_done()
9822 switch (task->tk_status) { in nfs4_layoutreturn_done()
9830 task->tk_status = 0; in nfs4_layoutreturn_done()
9835 if (nfs4_async_handle_error(task, server, NULL, NULL) != -EAGAIN) in nfs4_layoutreturn_done()
9841 task->tk_status = 0; in nfs4_layoutreturn_done()
9843 rpc_restart_call_prepare(task); in nfs4_layoutreturn_done()
9870 struct rpc_task *task; in nfs4_proc_layoutreturn() local
9904 task = rpc_run_task(&task_setup_data); in nfs4_proc_layoutreturn()
9905 if (IS_ERR(task)) in nfs4_proc_layoutreturn()
9906 return PTR_ERR(task); in nfs4_proc_layoutreturn()
9908 status = task->tk_status; in nfs4_proc_layoutreturn()
9911 rpc_put_task(task); in nfs4_proc_layoutreturn()
9965 static void nfs4_layoutcommit_prepare(struct rpc_task *task, void *calldata) in nfs4_layoutcommit_prepare() argument
9973 task); in nfs4_layoutcommit_prepare()
9977 nfs4_layoutcommit_done(struct rpc_task *task, void *calldata) in nfs4_layoutcommit_done() argument
9982 if (!nfs41_sequence_done(task, &data->res.seq_res)) in nfs4_layoutcommit_done()
9985 switch (task->tk_status) { /* Just ignore these failures */ in nfs4_layoutcommit_done()
9990 task->tk_status = 0; in nfs4_layoutcommit_done()
9995 if (nfs4_async_handle_error(task, server, NULL, NULL) == -EAGAIN) { in nfs4_layoutcommit_done()
9996 rpc_restart_call_prepare(task); in nfs4_layoutcommit_done()
10030 .task = &data->task, in nfs4_proc_layoutcommit()
10037 struct rpc_task *task; in nfs4_proc_layoutcommit() local
10054 task = rpc_run_task(&task_setup_data); in nfs4_proc_layoutcommit()
10055 if (IS_ERR(task)) in nfs4_proc_layoutcommit()
10056 return PTR_ERR(task); in nfs4_proc_layoutcommit()
10058 status = task->tk_status; in nfs4_proc_layoutcommit()
10061 rpc_put_task(task); in nfs4_proc_layoutcommit()
10306 static void nfs41_free_stateid_prepare(struct rpc_task *task, void *calldata) in nfs41_free_stateid_prepare() argument
10312 task); in nfs41_free_stateid_prepare()
10315 static void nfs41_free_stateid_done(struct rpc_task *task, void *calldata) in nfs41_free_stateid_done() argument
10319 nfs41_sequence_done(task, &data->res.seq_res); in nfs41_free_stateid_done()
10321 switch (task->tk_status) { in nfs41_free_stateid_done()
10323 if (nfs4_async_handle_error(task, data->server, NULL, NULL) == -EAGAIN) in nfs41_free_stateid_done()
10324 rpc_restart_call_prepare(task); in nfs41_free_stateid_done()
10369 struct rpc_task *task; in nfs41_free_stateid() local
10390 task = rpc_run_task(&task_setup); in nfs41_free_stateid()
10391 if (IS_ERR(task)) in nfs41_free_stateid()
10392 return PTR_ERR(task); in nfs41_free_stateid()
10393 rpc_put_task(task); in nfs41_free_stateid()