Lines Matching refs:task

673 nfs4_async_handle_exception(struct rpc_task *task, struct nfs_server *server,  in nfs4_async_handle_exception()  argument
679 if ((task->tk_rpc_status == -ENETDOWN || in nfs4_async_handle_exception()
680 task->tk_rpc_status == -ENETUNREACH) && in nfs4_async_handle_exception()
681 task->tk_flags & RPC_TASK_NETUNREACH_FATAL) { in nfs4_async_handle_exception()
695 rpc_delay(task, nfs4_update_delay(&exception->timeout)); in nfs4_async_handle_exception()
701 rpc_sleep_on(&clp->cl_rpcwaitq, task, NULL); in nfs4_async_handle_exception()
703 rpc_wake_up_queued_task(&clp->cl_rpcwaitq, task); in nfs4_async_handle_exception()
717 rpc_task_release_transport(task); in nfs4_async_handle_exception()
723 nfs4_async_handle_error(struct rpc_task *task, struct nfs_server *server, in nfs4_async_handle_error() argument
730 if (task->tk_status >= 0) in nfs4_async_handle_error()
734 task->tk_status = nfs4_async_handle_exception(task, server, in nfs4_async_handle_error()
735 task->tk_status, in nfs4_async_handle_error()
801 static int nfs40_sequence_done(struct rpc_task *task, in nfs40_sequence_done() argument
871 struct rpc_task *task = _nfs41_proc_sequence(client, cred, slot, true); in nfs4_probe_sequence() local
872 if (!IS_ERR(task)) in nfs4_probe_sequence()
873 rpc_put_task_async(task); in nfs4_probe_sequence()
876 static int nfs41_sequence_process(struct rpc_task *task, in nfs41_sequence_process() argument
888 if (!RPC_WAS_SENT(task) || slot->seq_done) in nfs41_sequence_process()
897 if (task->tk_status == -NFS4ERR_DEADSESSION) in nfs41_sequence_process()
961 if (task->tk_msg.rpc_proc != &nfs4_procedures[NFSPROC4_CLNT_SEQUENCE]) { in nfs41_sequence_process()
962 nfs4_probe_sequence(clp, task->tk_msg.rpc_cred, slot); in nfs41_sequence_process()
1001 if (rpc_restart_call_prepare(task)) { in nfs41_sequence_process()
1003 task->tk_status = 0; in nfs41_sequence_process()
1008 if (!rpc_restart_call(task)) in nfs41_sequence_process()
1010 rpc_delay(task, NFS4_POLL_RETRY_MAX); in nfs41_sequence_process()
1014 int nfs41_sequence_done(struct rpc_task *task, struct nfs4_sequence_res *res) in nfs41_sequence_done() argument
1016 if (!nfs41_sequence_process(task, res)) in nfs41_sequence_done()
1025 static int nfs4_sequence_process(struct rpc_task *task, struct nfs4_sequence_res *res) in nfs4_sequence_process() argument
1030 return nfs41_sequence_process(task, res); in nfs4_sequence_process()
1031 return nfs40_sequence_done(task, res); in nfs4_sequence_process()
1044 int nfs4_sequence_done(struct rpc_task *task, struct nfs4_sequence_res *res) in nfs4_sequence_done() argument
1049 return nfs40_sequence_done(task, res); in nfs4_sequence_done()
1050 return nfs41_sequence_done(task, res); in nfs4_sequence_done()
1054 static void nfs41_call_sync_prepare(struct rpc_task *task, void *calldata) in nfs41_call_sync_prepare() argument
1061 data->seq_args, data->seq_res, task); in nfs41_call_sync_prepare()
1064 static void nfs41_call_sync_done(struct rpc_task *task, void *calldata) in nfs41_call_sync_done() argument
1068 nfs41_sequence_done(task, data->seq_res); in nfs41_call_sync_done()
1078 static int nfs4_sequence_process(struct rpc_task *task, struct nfs4_sequence_res *res) in nfs4_sequence_process() argument
1080 return nfs40_sequence_done(task, res); in nfs4_sequence_process()
1089 int nfs4_sequence_done(struct rpc_task *task, in nfs4_sequence_done() argument
1092 return nfs40_sequence_done(task, res); in nfs4_sequence_done()
1121 struct rpc_task *task) in nfs4_setup_sequence() argument
1152 rpc_call_start(task); in nfs4_setup_sequence()
1157 rpc_sleep_on_priority_timeout(&tbl->slot_tbl_waitq, task, in nfs4_setup_sequence()
1160 rpc_sleep_on_timeout(&tbl->slot_tbl_waitq, task, in nfs4_setup_sequence()
1166 rpc_sleep_on_priority(&tbl->slot_tbl_waitq, task, in nfs4_setup_sequence()
1169 rpc_sleep_on(&tbl->slot_tbl_waitq, task, NULL); in nfs4_setup_sequence()
1175 static void nfs40_call_sync_prepare(struct rpc_task *task, void *calldata) in nfs40_call_sync_prepare() argument
1179 data->seq_args, data->seq_res, task); in nfs40_call_sync_prepare()
1182 static void nfs40_call_sync_done(struct rpc_task *task, void *calldata) in nfs40_call_sync_done() argument
1185 nfs4_sequence_done(task, data->seq_res); in nfs40_call_sync_done()
1196 struct rpc_task *task; in nfs4_call_sync_custom() local
1198 task = rpc_run_task(task_setup); in nfs4_call_sync_custom()
1199 if (IS_ERR(task)) in nfs4_call_sync_custom()
1200 return PTR_ERR(task); in nfs4_call_sync_custom()
1202 ret = task->tk_status; in nfs4_call_sync_custom()
1203 rpc_put_task(task); in nfs4_call_sync_custom()
2445 static void nfs4_open_confirm_prepare(struct rpc_task *task, void *calldata) in nfs4_open_confirm_prepare() argument
2450 &data->c_arg.seq_args, &data->c_res.seq_res, task); in nfs4_open_confirm_prepare()
2453 static void nfs4_open_confirm_done(struct rpc_task *task, void *calldata) in nfs4_open_confirm_done() argument
2457 nfs40_sequence_done(task, &data->c_res.seq_res); in nfs4_open_confirm_done()
2459 data->rpc_status = task->tk_status; in nfs4_open_confirm_done()
2498 struct rpc_task *task; in _nfs4_proc_open_confirm() local
2521 task = rpc_run_task(&task_setup_data); in _nfs4_proc_open_confirm()
2522 if (IS_ERR(task)) in _nfs4_proc_open_confirm()
2523 return PTR_ERR(task); in _nfs4_proc_open_confirm()
2524 status = rpc_wait_for_completion_task(task); in _nfs4_proc_open_confirm()
2530 rpc_put_task(task); in _nfs4_proc_open_confirm()
2534 static void nfs4_open_prepare(struct rpc_task *task, void *calldata) in nfs4_open_prepare() argument
2541 if (nfs_wait_on_sequence(data->o_arg.seqid, task) != 0) in nfs4_open_prepare()
2570 task->tk_msg.rpc_proc = &nfs4_procedures[NFSPROC4_CLNT_OPEN_NOATTR]; in nfs4_open_prepare()
2576 task) != 0) in nfs4_open_prepare()
2597 task->tk_action = NULL; in nfs4_open_prepare()
2599 nfs4_sequence_done(task, &data->o_res.seq_res); in nfs4_open_prepare()
2602 static void nfs4_open_done(struct rpc_task *task, void *calldata) in nfs4_open_done() argument
2606 data->rpc_status = task->tk_status; in nfs4_open_done()
2608 if (!nfs4_sequence_process(task, &data->o_res.seq_res)) in nfs4_open_done()
2611 if (task->tk_status == 0) { in nfs4_open_done()
2669 struct rpc_task *task; in nfs4_run_open_task() local
2702 task = rpc_run_task(&task_setup_data); in nfs4_run_open_task()
2703 if (IS_ERR(task)) in nfs4_run_open_task()
2704 return PTR_ERR(task); in nfs4_run_open_task()
2705 status = rpc_wait_for_completion_task(task); in nfs4_run_open_task()
2711 rpc_put_task(task); in nfs4_run_open_task()
3519 nfs4_wait_on_layoutreturn(struct inode *inode, struct rpc_task *task) in nfs4_wait_on_layoutreturn() argument
3524 return pnfs_wait_on_layoutreturn(inode, task); in nfs4_wait_on_layoutreturn()
3655 static void nfs4_close_done(struct rpc_task *task, void *data) in nfs4_close_done() argument
3667 if (!nfs4_sequence_done(task, &calldata->res.seq_res)) in nfs4_close_done()
3669 trace_nfs4_close(state, &calldata->arg, &calldata->res, task->tk_status); in nfs4_close_done()
3672 if (pnfs_roc_done(task, &calldata->arg.lr_args, &calldata->res.lr_res, in nfs4_close_done()
3679 switch (task->tk_status) { in nfs4_close_done()
3703 task->tk_msg.rpc_cred); in nfs4_close_done()
3710 task->tk_status = nfs4_async_handle_exception(task, in nfs4_close_done()
3711 server, task->tk_status, &exception); in nfs4_close_done()
3718 task->tk_status = 0; in nfs4_close_done()
3721 dprintk("%s: ret = %d\n", __func__, task->tk_status); in nfs4_close_done()
3724 task->tk_status = 0; in nfs4_close_done()
3725 rpc_restart_call_prepare(task); in nfs4_close_done()
3729 static void nfs4_close_prepare(struct rpc_task *task, void *data) in nfs4_close_prepare() argument
3739 if (nfs_wait_on_sequence(calldata->arg.seqid, task) != 0) in nfs4_close_prepare()
3742 task->tk_msg.rpc_proc = &nfs4_procedures[NFSPROC4_CLNT_OPEN_DOWNGRADE]; in nfs4_close_prepare()
3773 if (!calldata->lr.roc && nfs4_wait_on_layoutreturn(inode, task)) { in nfs4_close_prepare()
3785 task->tk_msg.rpc_proc = &nfs4_procedures[NFSPROC4_CLNT_CLOSE]; in nfs4_close_prepare()
3809 task) != 0) in nfs4_close_prepare()
3813 task->tk_action = NULL; in nfs4_close_prepare()
3815 nfs4_sequence_done(task, &calldata->res.seq_res); in nfs4_close_prepare()
3841 struct rpc_task *task; in nfs4_do_close() local
3893 task = rpc_run_task(&task_setup_data); in nfs4_do_close()
3894 if (IS_ERR(task)) in nfs4_do_close()
3895 return PTR_ERR(task); in nfs4_do_close()
3898 status = rpc_wait_for_completion_task(task); in nfs4_do_close()
3899 rpc_put_task(task); in nfs4_do_close()
4972 static void nfs4_proc_unlink_rpc_prepare(struct rpc_task *task, struct nfs_unlinkdata *data) in nfs4_proc_unlink_rpc_prepare() argument
4977 task); in nfs4_proc_unlink_rpc_prepare()
4980 static int nfs4_proc_unlink_done(struct rpc_task *task, struct inode *dir) in nfs4_proc_unlink_done() argument
4982 struct nfs_unlinkdata *data = task->tk_calldata; in nfs4_proc_unlink_done()
4985 if (!nfs4_sequence_done(task, &res->seq_res)) in nfs4_proc_unlink_done()
4987 if (nfs4_async_handle_error(task, res->server, NULL, in nfs4_proc_unlink_done()
4990 if (task->tk_status == 0) in nfs4_proc_unlink_done()
5015 static void nfs4_proc_rename_rpc_prepare(struct rpc_task *task, struct nfs_renamedata *data) in nfs4_proc_rename_rpc_prepare() argument
5020 task); in nfs4_proc_rename_rpc_prepare()
5023 static int nfs4_proc_rename_done(struct rpc_task *task, struct inode *old_dir, in nfs4_proc_rename_done() argument
5026 struct nfs_renamedata *data = task->tk_calldata; in nfs4_proc_rename_done()
5029 if (!nfs4_sequence_done(task, &res->seq_res)) in nfs4_proc_rename_done()
5031 if (nfs4_async_handle_error(task, res->server, NULL, &data->timeout) == -EAGAIN) in nfs4_proc_rename_done()
5034 if (task->tk_status == 0) { in nfs4_proc_rename_done()
5583 static int nfs4_read_done_cb(struct rpc_task *task, struct nfs_pgio_header *hdr) in nfs4_read_done_cb() argument
5587 trace_nfs4_read(hdr, task->tk_status); in nfs4_read_done_cb()
5588 if (task->tk_status < 0) { in nfs4_read_done_cb()
5594 task->tk_status = nfs4_async_handle_exception(task, in nfs4_read_done_cb()
5595 server, task->tk_status, &exception); in nfs4_read_done_cb()
5597 rpc_restart_call_prepare(task); in nfs4_read_done_cb()
5602 if (task->tk_status > 0) in nfs4_read_done_cb()
5607 static bool nfs4_read_stateid_changed(struct rpc_task *task, in nfs4_read_stateid_changed() argument
5611 if (!nfs4_error_stateid_expired(task->tk_status) || in nfs4_read_stateid_changed()
5617 rpc_restart_call_prepare(task); in nfs4_read_stateid_changed()
5621 static bool nfs4_read_plus_not_supported(struct rpc_task *task, in nfs4_read_plus_not_supported() argument
5625 struct rpc_message *msg = &task->tk_msg; in nfs4_read_plus_not_supported()
5628 task->tk_status == -ENOTSUPP) { in nfs4_read_plus_not_supported()
5631 rpc_restart_call_prepare(task); in nfs4_read_plus_not_supported()
5637 static int nfs4_read_done(struct rpc_task *task, struct nfs_pgio_header *hdr) in nfs4_read_done() argument
5639 if (!nfs4_sequence_done(task, &hdr->res.seq_res)) in nfs4_read_done()
5641 if (nfs4_read_stateid_changed(task, &hdr->args)) in nfs4_read_done()
5643 if (nfs4_read_plus_not_supported(task, hdr)) in nfs4_read_done()
5645 if (task->tk_status > 0) in nfs4_read_done()
5647 return hdr->pgio_done_cb ? hdr->pgio_done_cb(task, hdr) : in nfs4_read_done()
5648 nfs4_read_done_cb(task, hdr); in nfs4_read_done()
5681 static int nfs4_proc_pgio_rpc_prepare(struct rpc_task *task, in nfs4_proc_pgio_rpc_prepare() argument
5687 task)) in nfs4_proc_pgio_rpc_prepare()
5698 static int nfs4_write_done_cb(struct rpc_task *task, in nfs4_write_done_cb() argument
5703 trace_nfs4_write(hdr, task->tk_status); in nfs4_write_done_cb()
5704 if (task->tk_status < 0) { in nfs4_write_done_cb()
5710 task->tk_status = nfs4_async_handle_exception(task, in nfs4_write_done_cb()
5711 NFS_SERVER(inode), task->tk_status, in nfs4_write_done_cb()
5714 rpc_restart_call_prepare(task); in nfs4_write_done_cb()
5718 if (task->tk_status >= 0) { in nfs4_write_done_cb()
5725 static bool nfs4_write_stateid_changed(struct rpc_task *task, in nfs4_write_stateid_changed() argument
5729 if (!nfs4_error_stateid_expired(task->tk_status) || in nfs4_write_stateid_changed()
5735 rpc_restart_call_prepare(task); in nfs4_write_stateid_changed()
5739 static int nfs4_write_done(struct rpc_task *task, struct nfs_pgio_header *hdr) in nfs4_write_done() argument
5741 if (!nfs4_sequence_done(task, &hdr->res.seq_res)) in nfs4_write_done()
5743 if (nfs4_write_stateid_changed(task, &hdr->args)) in nfs4_write_done()
5745 return hdr->pgio_done_cb ? hdr->pgio_done_cb(task, hdr) : in nfs4_write_done()
5746 nfs4_write_done_cb(task, hdr); in nfs4_write_done()
5822 static void nfs4_proc_commit_rpc_prepare(struct rpc_task *task, struct nfs_commit_data *data) in nfs4_proc_commit_rpc_prepare() argument
5827 task); in nfs4_proc_commit_rpc_prepare()
5830 static int nfs4_commit_done_cb(struct rpc_task *task, struct nfs_commit_data *data) in nfs4_commit_done_cb() argument
5834 trace_nfs4_commit(data, task->tk_status); in nfs4_commit_done_cb()
5835 if (nfs4_async_handle_error(task, NFS_SERVER(inode), in nfs4_commit_done_cb()
5837 rpc_restart_call_prepare(task); in nfs4_commit_done_cb()
5843 static int nfs4_commit_done(struct rpc_task *task, struct nfs_commit_data *data) in nfs4_commit_done() argument
5845 if (!nfs4_sequence_done(task, &data->res.seq_res)) in nfs4_commit_done()
5847 return data->commit_done_cb(task, data); in nfs4_commit_done()
5918 static void nfs4_renew_done(struct rpc_task *task, void *calldata) in nfs4_renew_done() argument
5924 trace_nfs4_renew_async(clp, task->tk_status); in nfs4_renew_done()
5925 switch (task->tk_status) { in nfs4_renew_done()
5935 if (task->tk_status != NFS4ERR_CB_PATH_DOWN) { in nfs4_renew_done()
6604 static void nfs4_setclientid_done(struct rpc_task *task, void *calldata) in nfs4_setclientid_done() argument
6608 if (task->tk_status == 0) in nfs4_setclientid_done()
6609 sc->sc_cred = get_rpccred(task->tk_rqstp->rq_cred); in nfs4_setclientid_done()
6739 static void nfs4_delegreturn_done(struct rpc_task *task, void *calldata) in nfs4_delegreturn_done() argument
6748 if (!nfs4_sequence_done(task, &data->res.seq_res)) in nfs4_delegreturn_done()
6751 trace_nfs4_delegreturn_exit(&data->args, &data->res, task->tk_status); in nfs4_delegreturn_done()
6754 if (pnfs_roc_done(task, &data->args.lr_args, &data->res.lr_res, in nfs4_delegreturn_done()
6758 if (data->args.sattr_args && task->tk_status != 0) { in nfs4_delegreturn_done()
6782 switch (task->tk_status) { in nfs4_delegreturn_done()
6791 task->tk_msg.rpc_cred); in nfs4_delegreturn_done()
6796 task->tk_status = 0; in nfs4_delegreturn_done()
6814 task->tk_status = nfs4_async_handle_exception(task, in nfs4_delegreturn_done()
6815 data->res.server, task->tk_status, in nfs4_delegreturn_done()
6821 data->rpc_status = task->tk_status; in nfs4_delegreturn_done()
6824 task->tk_status = 0; in nfs4_delegreturn_done()
6825 rpc_restart_call_prepare(task); in nfs4_delegreturn_done()
6845 static void nfs4_delegreturn_prepare(struct rpc_task *task, void *data) in nfs4_delegreturn_prepare() argument
6852 if (!d_data->lr.roc && nfs4_wait_on_layoutreturn(d_data->inode, task)) { in nfs4_delegreturn_prepare()
6853 nfs4_sequence_done(task, &d_data->res.seq_res); in nfs4_delegreturn_prepare()
6866 task); in nfs4_delegreturn_prepare()
6882 struct rpc_task *task; in _nfs4_proc_delegreturn() local
6954 task = rpc_run_task(&task_setup_data); in _nfs4_proc_delegreturn()
6955 if (IS_ERR(task)) in _nfs4_proc_delegreturn()
6956 return PTR_ERR(task); in _nfs4_proc_delegreturn()
6959 status = rpc_wait_for_completion_task(task); in _nfs4_proc_delegreturn()
6964 rpc_put_task(task); in _nfs4_proc_delegreturn()
7141 static void nfs4_locku_done(struct rpc_task *task, void *data) in nfs4_locku_done() argument
7149 if (!nfs4_sequence_done(task, &calldata->res.seq_res)) in nfs4_locku_done()
7151 switch (task->tk_status) { in nfs4_locku_done()
7163 task->tk_msg.rpc_cred); in nfs4_locku_done()
7169 rpc_restart_call_prepare(task); in nfs4_locku_done()
7174 rpc_restart_call_prepare(task); in nfs4_locku_done()
7177 task->tk_status = nfs4_async_handle_exception(task, in nfs4_locku_done()
7178 calldata->server, task->tk_status, in nfs4_locku_done()
7181 rpc_restart_call_prepare(task); in nfs4_locku_done()
7186 static void nfs4_locku_prepare(struct rpc_task *task, void *data) in nfs4_locku_prepare() argument
7191 nfs_async_iocounter_wait(task, calldata->l_ctx)) in nfs4_locku_prepare()
7194 if (nfs_wait_on_sequence(calldata->arg.seqid, task) != 0) in nfs4_locku_prepare()
7204 task) != 0) in nfs4_locku_prepare()
7208 task->tk_action = NULL; in nfs4_locku_prepare()
7210 nfs4_sequence_done(task, &calldata->res.seq_res); in nfs4_locku_prepare()
7270 struct rpc_task *task; in nfs4_proc_unlck() local
7301 task = nfs4_do_unlck(request, in nfs4_proc_unlck()
7304 status = PTR_ERR(task); in nfs4_proc_unlck()
7305 if (IS_ERR(task)) in nfs4_proc_unlck()
7307 status = rpc_wait_for_completion_task(task); in nfs4_proc_unlck()
7308 rpc_put_task(task); in nfs4_proc_unlck()
7366 static void nfs4_lock_prepare(struct rpc_task *task, void *calldata) in nfs4_lock_prepare() argument
7371 if (nfs_wait_on_sequence(data->arg.lock_seqid, task) != 0) in nfs4_lock_prepare()
7375 if (nfs_wait_on_sequence(data->arg.open_seqid, task) != 0) { in nfs4_lock_prepare()
7389 task->tk_action = NULL; in nfs4_lock_prepare()
7396 task) == 0) in nfs4_lock_prepare()
7403 nfs4_sequence_done(task, &data->res.seq_res); in nfs4_lock_prepare()
7407 static void nfs4_lock_done(struct rpc_task *task, void *calldata) in nfs4_lock_done() argument
7412 if (!nfs4_sequence_done(task, &data->res.seq_res)) in nfs4_lock_done()
7415 data->rpc_status = task->tk_status; in nfs4_lock_done()
7416 switch (task->tk_status) { in nfs4_lock_done()
7456 rpc_restart_call_prepare(task); in nfs4_lock_done()
7466 struct rpc_task *task; in nfs4_lock_release() local
7467 task = nfs4_do_unlck(&data->fl, data->ctx, data->lsp, in nfs4_lock_release()
7469 if (!IS_ERR(task)) in nfs4_lock_release()
7470 rpc_put_task_async(task); in nfs4_lock_release()
7505 struct rpc_task *task; in _nfs4_do_setlk() local
7539 task = rpc_run_task(&task_setup_data); in _nfs4_do_setlk()
7540 if (IS_ERR(task)) in _nfs4_do_setlk()
7541 return PTR_ERR(task); in _nfs4_do_setlk()
7542 ret = rpc_wait_for_completion_task(task); in _nfs4_do_setlk()
7551 rpc_put_task(task); in _nfs4_do_setlk()
7889 static void nfs4_release_lockowner_prepare(struct rpc_task *task, void *calldata) in nfs4_release_lockowner_prepare() argument
7894 &data->res.seq_res, task); in nfs4_release_lockowner_prepare()
7899 static void nfs4_release_lockowner_done(struct rpc_task *task, void *calldata) in nfs4_release_lockowner_done() argument
7904 nfs40_sequence_done(task, &data->res.seq_res); in nfs4_release_lockowner_done()
7906 switch (task->tk_status) { in nfs4_release_lockowner_done()
7916 if (nfs4_async_handle_error(task, server, in nfs4_release_lockowner_done()
7918 rpc_restart_call_prepare(task); in nfs4_release_lockowner_done()
8702 nfs4_bind_one_conn_to_session_done(struct rpc_task *task, void *calldata) in nfs4_bind_one_conn_to_session_done() argument
8704 struct nfs41_bind_conn_to_session_args *args = task->tk_msg.rpc_argp; in nfs4_bind_one_conn_to_session_done()
8705 struct nfs41_bind_conn_to_session_res *res = task->tk_msg.rpc_resp; in nfs4_bind_one_conn_to_session_done()
8708 switch (task->tk_status) { in nfs4_bind_one_conn_to_session_done()
8712 task->tk_status); in nfs4_bind_one_conn_to_session_done()
8717 rpc_task_close_connection(task); in nfs4_bind_one_conn_to_session_done()
8719 rpc_restart_call(task); in nfs4_bind_one_conn_to_session_done()
8760 struct rpc_task *task; in nfs4_proc_bind_one_conn_to_session() local
8770 task = rpc_run_task(&task_setup_data); in nfs4_proc_bind_one_conn_to_session()
8771 if (!IS_ERR(task)) { in nfs4_proc_bind_one_conn_to_session()
8772 status = task->tk_status; in nfs4_proc_bind_one_conn_to_session()
8773 rpc_put_task(task); in nfs4_proc_bind_one_conn_to_session()
8775 status = PTR_ERR(task); in nfs4_proc_bind_one_conn_to_session()
9080 struct rpc_task *task; in _nfs4_proc_exchange_id() local
9086 task = nfs4_run_exchange_id(clp, cred, sp4_how, NULL); in _nfs4_proc_exchange_id()
9087 if (IS_ERR(task)) in _nfs4_proc_exchange_id()
9088 return PTR_ERR(task); in _nfs4_proc_exchange_id()
9090 argp = task->tk_msg.rpc_argp; in _nfs4_proc_exchange_id()
9091 resp = task->tk_msg.rpc_resp; in _nfs4_proc_exchange_id()
9092 status = task->tk_status; in _nfs4_proc_exchange_id()
9132 rpc_put_task(task); in _nfs4_proc_exchange_id()
9184 struct rpc_task *task; in nfs4_test_session_trunk() local
9196 task = nfs4_run_exchange_id(adata->clp, adata->cred, sp4_how, xprt); in nfs4_test_session_trunk()
9197 if (IS_ERR(task)) in nfs4_test_session_trunk()
9200 status = task->tk_status; in nfs4_test_session_trunk()
9203 task->tk_msg.rpc_resp, xprt); in nfs4_test_session_trunk()
9213 rpc_put_task(task); in nfs4_test_session_trunk()
9291 static void nfs4_get_lease_time_prepare(struct rpc_task *task, in nfs4_get_lease_time_prepare() argument
9302 task); in nfs4_get_lease_time_prepare()
9309 static void nfs4_get_lease_time_done(struct rpc_task *task, void *calldata) in nfs4_get_lease_time_done() argument
9314 if (!nfs4_sequence_done(task, &data->res->lr_seq_res)) in nfs4_get_lease_time_done()
9316 switch (task->tk_status) { in nfs4_get_lease_time_done()
9319 rpc_delay(task, NFS4_POLL_RETRY_MIN); in nfs4_get_lease_time_done()
9320 task->tk_status = 0; in nfs4_get_lease_time_done()
9323 rpc_restart_call_prepare(task); in nfs4_get_lease_time_done()
9617 static int nfs41_sequence_handle_errors(struct rpc_task *task, struct nfs_client *clp) in nfs41_sequence_handle_errors() argument
9619 switch(task->tk_status) { in nfs41_sequence_handle_errors()
9621 rpc_delay(task, NFS4_POLL_RETRY_MAX); in nfs41_sequence_handle_errors()
9629 static void nfs41_sequence_call_done(struct rpc_task *task, void *data) in nfs41_sequence_call_done() argument
9634 if (!nfs41_sequence_done(task, task->tk_msg.rpc_resp)) in nfs41_sequence_call_done()
9637 trace_nfs4_sequence(clp, task->tk_status); in nfs41_sequence_call_done()
9638 if (task->tk_status < 0 && clp->cl_cons_state >= 0) { in nfs41_sequence_call_done()
9639 dprintk("%s ERROR %d\n", __func__, task->tk_status); in nfs41_sequence_call_done()
9643 if (nfs41_sequence_handle_errors(task, clp) == -EAGAIN) { in nfs41_sequence_call_done()
9644 rpc_restart_call_prepare(task); in nfs41_sequence_call_done()
9648 dprintk("%s rpc_cred %p\n", __func__, task->tk_msg.rpc_cred); in nfs41_sequence_call_done()
9651 static void nfs41_sequence_prepare(struct rpc_task *task, void *data) in nfs41_sequence_prepare() argument
9658 args = task->tk_msg.rpc_argp; in nfs41_sequence_prepare()
9659 res = task->tk_msg.rpc_resp; in nfs41_sequence_prepare()
9661 nfs4_setup_sequence(clp, args, res, task); in nfs41_sequence_prepare()
9716 struct rpc_task *task; in nfs41_proc_async_sequence() local
9721 task = _nfs41_proc_sequence(clp, cred, NULL, false); in nfs41_proc_async_sequence()
9722 if (IS_ERR(task)) in nfs41_proc_async_sequence()
9723 ret = PTR_ERR(task); in nfs41_proc_async_sequence()
9725 rpc_put_task_async(task); in nfs41_proc_async_sequence()
9732 struct rpc_task *task; in nfs4_proc_sequence() local
9735 task = _nfs41_proc_sequence(clp, cred, NULL, true); in nfs4_proc_sequence()
9736 if (IS_ERR(task)) { in nfs4_proc_sequence()
9737 ret = PTR_ERR(task); in nfs4_proc_sequence()
9740 ret = rpc_wait_for_completion_task(task); in nfs4_proc_sequence()
9742 ret = task->tk_status; in nfs4_proc_sequence()
9743 rpc_put_task(task); in nfs4_proc_sequence()
9755 static void nfs4_reclaim_complete_prepare(struct rpc_task *task, void *data) in nfs4_reclaim_complete_prepare() argument
9762 task); in nfs4_reclaim_complete_prepare()
9765 static int nfs41_reclaim_complete_handle_errors(struct rpc_task *task, struct nfs_client *clp) in nfs41_reclaim_complete_handle_errors() argument
9767 switch(task->tk_status) { in nfs41_reclaim_complete_handle_errors()
9775 rpc_delay(task, NFS4_POLL_RETRY_MAX); in nfs41_reclaim_complete_handle_errors()
9780 __func__, task->tk_status, clp->cl_hostname); in nfs41_reclaim_complete_handle_errors()
9792 static void nfs4_reclaim_complete_done(struct rpc_task *task, void *data) in nfs4_reclaim_complete_done() argument
9798 if (!nfs41_sequence_done(task, res)) in nfs4_reclaim_complete_done()
9801 trace_nfs4_reclaim_complete(clp, task->tk_status); in nfs4_reclaim_complete_done()
9802 if (nfs41_reclaim_complete_handle_errors(task, clp) == -EAGAIN) { in nfs4_reclaim_complete_done()
9803 rpc_restart_call_prepare(task); in nfs4_reclaim_complete_done()
9857 nfs4_layoutget_prepare(struct rpc_task *task, void *calldata) in nfs4_layoutget_prepare() argument
9863 &lgp->res.seq_res, task); in nfs4_layoutget_prepare()
9866 static void nfs4_layoutget_done(struct rpc_task *task, void *calldata) in nfs4_layoutget_done() argument
9870 nfs41_sequence_process(task, &lgp->res.seq_res); in nfs4_layoutget_done()
9874 nfs4_layoutget_handle_exception(struct rpc_task *task, in nfs4_layoutget_handle_exception() argument
9880 int nfs4err = task->tk_status; in nfs4_layoutget_handle_exception()
9884 dprintk("--> %s tk_status => %d\n", __func__, -task->tk_status); in nfs4_layoutget_handle_exception()
9992 struct rpc_task *task; in nfs4_proc_layoutget() local
10013 task = rpc_run_task(&task_setup_data); in nfs4_proc_layoutget()
10014 if (IS_ERR(task)) in nfs4_proc_layoutget()
10015 return ERR_CAST(task); in nfs4_proc_layoutget()
10017 status = rpc_wait_for_completion_task(task); in nfs4_proc_layoutget()
10021 if (task->tk_status < 0) { in nfs4_proc_layoutget()
10023 status = nfs4_layoutget_handle_exception(task, lgp, exception); in nfs4_proc_layoutget()
10037 rpc_put_task(task); in nfs4_proc_layoutget()
10045 nfs4_layoutreturn_prepare(struct rpc_task *task, void *calldata) in nfs4_layoutreturn_prepare() argument
10052 task); in nfs4_layoutreturn_prepare()
10054 rpc_exit(task, 0); in nfs4_layoutreturn_prepare()
10057 static void nfs4_layoutreturn_done(struct rpc_task *task, void *calldata) in nfs4_layoutreturn_done() argument
10062 if (!nfs41_sequence_process(task, &lrp->res.seq_res)) in nfs4_layoutreturn_done()
10065 if (task->tk_rpc_status == -ETIMEDOUT) { in nfs4_layoutreturn_done()
10074 if (task->tk_rpc_status != 0 && RPC_WAS_SENT(task)) { in nfs4_layoutreturn_done()
10080 switch (task->tk_status) { in nfs4_layoutreturn_done()
10088 task->tk_status = 0; in nfs4_layoutreturn_done()
10097 task->tk_status); in nfs4_layoutreturn_done()
10100 task->tk_status = 0; in nfs4_layoutreturn_done()
10103 if (nfs4_async_handle_error(task, server, NULL, NULL) == in nfs4_layoutreturn_done()
10111 task->tk_status = 0; in nfs4_layoutreturn_done()
10113 rpc_restart_call_prepare(task); in nfs4_layoutreturn_done()
10145 struct rpc_task *task; in nfs4_proc_layoutreturn() local
10181 task = rpc_run_task(&task_setup_data); in nfs4_proc_layoutreturn()
10182 if (IS_ERR(task)) in nfs4_proc_layoutreturn()
10183 return PTR_ERR(task); in nfs4_proc_layoutreturn()
10185 status = task->tk_status; in nfs4_proc_layoutreturn()
10188 rpc_put_task(task); in nfs4_proc_layoutreturn()
10242 static void nfs4_layoutcommit_prepare(struct rpc_task *task, void *calldata) in nfs4_layoutcommit_prepare() argument
10250 task); in nfs4_layoutcommit_prepare()
10254 nfs4_layoutcommit_done(struct rpc_task *task, void *calldata) in nfs4_layoutcommit_done() argument
10259 if (!nfs41_sequence_done(task, &data->res.seq_res)) in nfs4_layoutcommit_done()
10262 switch (task->tk_status) { /* Just ignore these failures */ in nfs4_layoutcommit_done()
10267 task->tk_status = 0; in nfs4_layoutcommit_done()
10272 if (nfs4_async_handle_error(task, server, NULL, NULL) == -EAGAIN) { in nfs4_layoutcommit_done()
10273 rpc_restart_call_prepare(task); in nfs4_layoutcommit_done()
10307 .task = &data->task, in nfs4_proc_layoutcommit()
10314 struct rpc_task *task; in nfs4_proc_layoutcommit() local
10331 task = rpc_run_task(&task_setup_data); in nfs4_proc_layoutcommit()
10332 if (IS_ERR(task)) in nfs4_proc_layoutcommit()
10333 return PTR_ERR(task); in nfs4_proc_layoutcommit()
10335 status = task->tk_status; in nfs4_proc_layoutcommit()
10338 rpc_put_task(task); in nfs4_proc_layoutcommit()
10582 static void nfs41_free_stateid_prepare(struct rpc_task *task, void *calldata) in nfs41_free_stateid_prepare() argument
10588 task); in nfs41_free_stateid_prepare()
10591 static void nfs41_free_stateid_done(struct rpc_task *task, void *calldata) in nfs41_free_stateid_done() argument
10595 nfs41_sequence_done(task, &data->res.seq_res); in nfs41_free_stateid_done()
10597 switch (task->tk_status) { in nfs41_free_stateid_done()
10599 if (nfs4_async_handle_error(task, data->server, NULL, NULL) == -EAGAIN) in nfs41_free_stateid_done()
10600 rpc_restart_call_prepare(task); in nfs41_free_stateid_done()
10645 struct rpc_task *task; in nfs41_free_stateid() local
10666 task = rpc_run_task(&task_setup); in nfs41_free_stateid()
10667 if (IS_ERR(task)) in nfs41_free_stateid()
10668 return PTR_ERR(task); in nfs41_free_stateid()
10669 rpc_put_task(task); in nfs41_free_stateid()