Lines Matching refs:task

503 			 struct rpc_task *task)  in nfs40_setup_sequence()  argument
518 task->tk_timeout = HZ >> 2; in nfs40_setup_sequence()
527 rpc_call_start(task); in nfs40_setup_sequence()
532 rpc_sleep_on_priority(&tbl->slot_tbl_waitq, task, in nfs40_setup_sequence()
535 rpc_sleep_on(&tbl->slot_tbl_waitq, task, NULL); in nfs40_setup_sequence()
541 static int nfs40_sequence_done(struct rpc_task *task, in nfs40_sequence_done() argument
595 int nfs41_sequence_done(struct rpc_task *task, struct nfs4_sequence_res *res) in nfs41_sequence_done() argument
606 if (!RPC_WAS_SENT(task)) in nfs41_sequence_done()
686 if (rpc_restart_call_prepare(task)) { in nfs41_sequence_done()
687 task->tk_status = 0; in nfs41_sequence_done()
692 if (!rpc_restart_call(task)) in nfs41_sequence_done()
694 rpc_delay(task, NFS4_POLL_RETRY_MAX); in nfs41_sequence_done()
699 int nfs4_sequence_done(struct rpc_task *task, struct nfs4_sequence_res *res) in nfs4_sequence_done() argument
704 return nfs40_sequence_done(task, res); in nfs4_sequence_done()
705 return nfs41_sequence_done(task, res); in nfs4_sequence_done()
712 struct rpc_task *task) in nfs41_setup_sequence() argument
724 task->tk_timeout = 0; in nfs41_setup_sequence()
738 task->tk_timeout = HZ >> 2; in nfs41_setup_sequence()
759 rpc_call_start(task); in nfs41_setup_sequence()
764 rpc_sleep_on_priority(&tbl->slot_tbl_waitq, task, in nfs41_setup_sequence()
767 rpc_sleep_on(&tbl->slot_tbl_waitq, task, NULL); in nfs41_setup_sequence()
776 struct rpc_task *task) in nfs4_setup_sequence() argument
783 args, res, task); in nfs4_setup_sequence()
789 ret = nfs41_setup_sequence(session, args, res, task); in nfs4_setup_sequence()
795 static void nfs41_call_sync_prepare(struct rpc_task *task, void *calldata) in nfs41_call_sync_prepare() argument
802 nfs41_setup_sequence(session, data->seq_args, data->seq_res, task); in nfs41_call_sync_prepare()
805 static void nfs41_call_sync_done(struct rpc_task *task, void *calldata) in nfs41_call_sync_done() argument
809 nfs41_sequence_done(task, data->seq_res); in nfs41_call_sync_done()
822 struct rpc_task *task) in nfs4_setup_sequence() argument
825 args, res, task); in nfs4_setup_sequence()
828 int nfs4_sequence_done(struct rpc_task *task, in nfs4_sequence_done() argument
831 return nfs40_sequence_done(task, res); in nfs4_sequence_done()
837 static void nfs40_call_sync_prepare(struct rpc_task *task, void *calldata) in nfs40_call_sync_prepare() argument
841 data->seq_args, data->seq_res, task); in nfs40_call_sync_prepare()
844 static void nfs40_call_sync_done(struct rpc_task *task, void *calldata) in nfs40_call_sync_done() argument
847 nfs4_sequence_done(task, data->seq_res); in nfs40_call_sync_done()
862 struct rpc_task *task; in nfs4_call_sync_sequence() local
876 task = rpc_run_task(&task_setup); in nfs4_call_sync_sequence()
877 if (IS_ERR(task)) in nfs4_call_sync_sequence()
878 ret = PTR_ERR(task); in nfs4_call_sync_sequence()
880 ret = task->tk_status; in nfs4_call_sync_sequence()
881 rpc_put_task(task); in nfs4_call_sync_sequence()
1118 static int nfs4_wait_for_completion_rpc_task(struct rpc_task *task) in nfs4_wait_for_completion_rpc_task() argument
1122 ret = rpc_wait_for_completion_task(task); in nfs4_wait_for_completion_rpc_task()
1756 static void nfs4_open_confirm_prepare(struct rpc_task *task, void *calldata) in nfs4_open_confirm_prepare() argument
1761 &data->c_arg.seq_args, &data->c_res.seq_res, task); in nfs4_open_confirm_prepare()
1764 static void nfs4_open_confirm_done(struct rpc_task *task, void *calldata) in nfs4_open_confirm_done() argument
1768 nfs40_sequence_done(task, &data->c_res.seq_res); in nfs4_open_confirm_done()
1770 data->rpc_status = task->tk_status; in nfs4_open_confirm_done()
1809 struct rpc_task *task; in _nfs4_proc_open_confirm() local
1831 task = rpc_run_task(&task_setup_data); in _nfs4_proc_open_confirm()
1832 if (IS_ERR(task)) in _nfs4_proc_open_confirm()
1833 return PTR_ERR(task); in _nfs4_proc_open_confirm()
1834 status = nfs4_wait_for_completion_rpc_task(task); in _nfs4_proc_open_confirm()
1840 rpc_put_task(task); in _nfs4_proc_open_confirm()
1844 static void nfs4_open_prepare(struct rpc_task *task, void *calldata) in nfs4_open_prepare() argument
1850 if (nfs_wait_on_sequence(data->o_arg.seqid, task) != 0) in nfs4_open_prepare()
1877 task->tk_msg.rpc_proc = &nfs4_procedures[NFSPROC4_CLNT_OPEN_NOATTR]; in nfs4_open_prepare()
1884 task) != 0) in nfs4_open_prepare()
1900 task->tk_action = NULL; in nfs4_open_prepare()
1902 nfs4_sequence_done(task, &data->o_res.seq_res); in nfs4_open_prepare()
1905 static void nfs4_open_done(struct rpc_task *task, void *calldata) in nfs4_open_done() argument
1909 data->rpc_status = task->tk_status; in nfs4_open_done()
1911 if (!nfs4_sequence_done(task, &data->o_res.seq_res)) in nfs4_open_done()
1914 if (task->tk_status == 0) { in nfs4_open_done()
1969 struct rpc_task *task; in nfs4_run_open_task() local
1996 task = rpc_run_task(&task_setup_data); in nfs4_run_open_task()
1997 if (IS_ERR(task)) in nfs4_run_open_task()
1998 return PTR_ERR(task); in nfs4_run_open_task()
1999 status = nfs4_wait_for_completion_rpc_task(task); in nfs4_run_open_task()
2005 rpc_put_task(task); in nfs4_run_open_task()
2641 static void nfs4_close_done(struct rpc_task *task, void *data) in nfs4_close_done() argument
2649 if (!nfs4_sequence_done(task, &calldata->res.seq_res)) in nfs4_close_done()
2651 trace_nfs4_close(state, &calldata->arg, &calldata->res, task->tk_status); in nfs4_close_done()
2655 switch (task->tk_status) { in nfs4_close_done()
2670 rpc_restart_call_prepare(task); in nfs4_close_done()
2676 if (nfs4_async_handle_error(task, server, state, NULL) == -EAGAIN) { in nfs4_close_done()
2677 rpc_restart_call_prepare(task); in nfs4_close_done()
2686 dprintk("%s: done, ret = %d!\n", __func__, task->tk_status); in nfs4_close_done()
2689 static void nfs4_close_prepare(struct rpc_task *task, void *data) in nfs4_close_prepare() argument
2698 if (nfs_wait_on_sequence(calldata->arg.seqid, task) != 0) in nfs4_close_prepare()
2701 task->tk_msg.rpc_proc = &nfs4_procedures[NFSPROC4_CLNT_OPEN_DOWNGRADE]; in nfs4_close_prepare()
2734 task->tk_msg.rpc_proc = &nfs4_procedures[NFSPROC4_CLNT_CLOSE]; in nfs4_close_prepare()
2736 pnfs_roc_drain(inode, &calldata->roc_barrier, task)) { in nfs4_close_prepare()
2750 task) != 0) in nfs4_close_prepare()
2755 task->tk_action = NULL; in nfs4_close_prepare()
2757 nfs4_sequence_done(task, &calldata->res.seq_res); in nfs4_close_prepare()
2790 struct rpc_task *task; in nfs4_do_close() local
2830 task = rpc_run_task(&task_setup_data); in nfs4_do_close()
2831 if (IS_ERR(task)) in nfs4_do_close()
2832 return PTR_ERR(task); in nfs4_do_close()
2835 status = rpc_wait_for_completion_task(task); in nfs4_do_close()
2836 rpc_put_task(task); in nfs4_do_close()
3618 static void nfs4_proc_unlink_rpc_prepare(struct rpc_task *task, struct nfs_unlinkdata *data) in nfs4_proc_unlink_rpc_prepare() argument
3623 task); in nfs4_proc_unlink_rpc_prepare()
3626 static int nfs4_proc_unlink_done(struct rpc_task *task, struct inode *dir) in nfs4_proc_unlink_done() argument
3628 struct nfs_unlinkdata *data = task->tk_calldata; in nfs4_proc_unlink_done()
3631 if (!nfs4_sequence_done(task, &res->seq_res)) in nfs4_proc_unlink_done()
3633 if (nfs4_async_handle_error(task, res->server, NULL, in nfs4_proc_unlink_done()
3651 static void nfs4_proc_rename_rpc_prepare(struct rpc_task *task, struct nfs_renamedata *data) in nfs4_proc_rename_rpc_prepare() argument
3656 task); in nfs4_proc_rename_rpc_prepare()
3659 static int nfs4_proc_rename_done(struct rpc_task *task, struct inode *old_dir, in nfs4_proc_rename_done() argument
3662 struct nfs_renamedata *data = task->tk_calldata; in nfs4_proc_rename_done()
3665 if (!nfs4_sequence_done(task, &res->seq_res)) in nfs4_proc_rename_done()
3667 if (nfs4_async_handle_error(task, res->server, NULL, &data->timeout) == -EAGAIN) in nfs4_proc_rename_done()
4165 static int nfs4_read_done_cb(struct rpc_task *task, struct nfs_pgio_header *hdr) in nfs4_read_done_cb() argument
4169 trace_nfs4_read(hdr, task->tk_status); in nfs4_read_done_cb()
4170 if (nfs4_async_handle_error(task, server, in nfs4_read_done_cb()
4173 rpc_restart_call_prepare(task); in nfs4_read_done_cb()
4178 if (task->tk_status > 0) in nfs4_read_done_cb()
4183 static bool nfs4_read_stateid_changed(struct rpc_task *task, in nfs4_read_stateid_changed() argument
4187 if (!nfs4_error_stateid_expired(task->tk_status) || in nfs4_read_stateid_changed()
4193 rpc_restart_call_prepare(task); in nfs4_read_stateid_changed()
4197 static int nfs4_read_done(struct rpc_task *task, struct nfs_pgio_header *hdr) in nfs4_read_done() argument
4202 if (!nfs4_sequence_done(task, &hdr->res.seq_res)) in nfs4_read_done()
4204 if (nfs4_read_stateid_changed(task, &hdr->args)) in nfs4_read_done()
4206 return hdr->pgio_done_cb ? hdr->pgio_done_cb(task, hdr) : in nfs4_read_done()
4207 nfs4_read_done_cb(task, hdr); in nfs4_read_done()
4219 static int nfs4_proc_pgio_rpc_prepare(struct rpc_task *task, in nfs4_proc_pgio_rpc_prepare() argument
4225 task)) in nfs4_proc_pgio_rpc_prepare()
4236 static int nfs4_write_done_cb(struct rpc_task *task, in nfs4_write_done_cb() argument
4241 trace_nfs4_write(hdr, task->tk_status); in nfs4_write_done_cb()
4242 if (nfs4_async_handle_error(task, NFS_SERVER(inode), in nfs4_write_done_cb()
4245 rpc_restart_call_prepare(task); in nfs4_write_done_cb()
4248 if (task->tk_status >= 0) { in nfs4_write_done_cb()
4255 static bool nfs4_write_stateid_changed(struct rpc_task *task, in nfs4_write_stateid_changed() argument
4259 if (!nfs4_error_stateid_expired(task->tk_status) || in nfs4_write_stateid_changed()
4265 rpc_restart_call_prepare(task); in nfs4_write_stateid_changed()
4269 static int nfs4_write_done(struct rpc_task *task, struct nfs_pgio_header *hdr) in nfs4_write_done() argument
4271 if (!nfs4_sequence_done(task, &hdr->res.seq_res)) in nfs4_write_done()
4273 if (nfs4_write_stateid_changed(task, &hdr->args)) in nfs4_write_done()
4275 return hdr->pgio_done_cb ? hdr->pgio_done_cb(task, hdr) : in nfs4_write_done()
4276 nfs4_write_done_cb(task, hdr); in nfs4_write_done()
4311 static void nfs4_proc_commit_rpc_prepare(struct rpc_task *task, struct nfs_commit_data *data) in nfs4_proc_commit_rpc_prepare() argument
4316 task); in nfs4_proc_commit_rpc_prepare()
4319 static int nfs4_commit_done_cb(struct rpc_task *task, struct nfs_commit_data *data) in nfs4_commit_done_cb() argument
4323 trace_nfs4_commit(data, task->tk_status); in nfs4_commit_done_cb()
4324 if (nfs4_async_handle_error(task, NFS_SERVER(inode), in nfs4_commit_done_cb()
4326 rpc_restart_call_prepare(task); in nfs4_commit_done_cb()
4332 static int nfs4_commit_done(struct rpc_task *task, struct nfs_commit_data *data) in nfs4_commit_done() argument
4334 if (!nfs4_sequence_done(task, &data->res.seq_res)) in nfs4_commit_done()
4336 return data->commit_done_cb(task, data); in nfs4_commit_done()
4370 static void nfs4_renew_done(struct rpc_task *task, void *calldata) in nfs4_renew_done() argument
4376 trace_nfs4_renew_async(clp, task->tk_status); in nfs4_renew_done()
4377 switch (task->tk_status) { in nfs4_renew_done()
4387 if (task->tk_status != NFS4ERR_CB_PATH_DOWN) { in nfs4_renew_done()
4878 nfs4_async_handle_error(struct rpc_task *task, const struct nfs_server *server, in nfs4_async_handle_error() argument
4883 if (task->tk_status >= 0) in nfs4_async_handle_error()
4885 switch(task->tk_status) { in nfs4_async_handle_error()
4920 task->tk_status); in nfs4_async_handle_error()
4921 nfs4_schedule_session_recovery(clp->cl_session, task->tk_status); in nfs4_async_handle_error()
4926 rpc_delay(task, nfs4_update_delay(timeout)); in nfs4_async_handle_error()
4929 rpc_delay(task, NFS4_POLL_RETRY_MAX); in nfs4_async_handle_error()
4934 task->tk_status = nfs4_map_errors(task->tk_status); in nfs4_async_handle_error()
4937 task->tk_status = -EIO; in nfs4_async_handle_error()
4940 rpc_sleep_on(&clp->cl_rpcwaitq, task, NULL); in nfs4_async_handle_error()
4942 rpc_wake_up_queued_task(&clp->cl_rpcwaitq, task); in nfs4_async_handle_error()
4946 task->tk_status = 0; in nfs4_async_handle_error()
5027 static void nfs4_setclientid_done(struct rpc_task *task, void *calldata) in nfs4_setclientid_done() argument
5031 if (task->tk_status == 0) in nfs4_setclientid_done()
5032 sc->sc_cred = get_rpccred(task->tk_rqstp->rq_cred); in nfs4_setclientid_done()
5065 struct rpc_task *task; in nfs4_proc_setclientid() local
5099 task = rpc_run_task(&task_setup_data); in nfs4_proc_setclientid()
5100 if (IS_ERR(task)) { in nfs4_proc_setclientid()
5101 status = PTR_ERR(task); in nfs4_proc_setclientid()
5104 status = task->tk_status; in nfs4_proc_setclientid()
5109 rpc_put_task(task); in nfs4_proc_setclientid()
5157 static void nfs4_delegreturn_done(struct rpc_task *task, void *calldata) in nfs4_delegreturn_done() argument
5161 if (!nfs4_sequence_done(task, &data->res.seq_res)) in nfs4_delegreturn_done()
5164 trace_nfs4_delegreturn_exit(&data->args, &data->res, task->tk_status); in nfs4_delegreturn_done()
5165 switch (task->tk_status) { in nfs4_delegreturn_done()
5174 task->tk_status = 0; in nfs4_delegreturn_done()
5179 if (nfs4_async_handle_error(task, data->res.server, in nfs4_delegreturn_done()
5181 rpc_restart_call_prepare(task); in nfs4_delegreturn_done()
5185 data->rpc_status = task->tk_status; in nfs4_delegreturn_done()
5201 static void nfs4_delegreturn_prepare(struct rpc_task *task, void *data) in nfs4_delegreturn_prepare() argument
5208 pnfs_roc_drain(d_data->inode, &d_data->roc_barrier, task)) in nfs4_delegreturn_prepare()
5214 task); in nfs4_delegreturn_prepare()
5227 struct rpc_task *task; in _nfs4_proc_delegreturn() local
5261 task = rpc_run_task(&task_setup_data); in _nfs4_proc_delegreturn()
5262 if (IS_ERR(task)) in _nfs4_proc_delegreturn()
5263 return PTR_ERR(task); in _nfs4_proc_delegreturn()
5266 status = nfs4_wait_for_completion_rpc_task(task); in _nfs4_proc_delegreturn()
5275 rpc_put_task(task); in _nfs4_proc_delegreturn()
5429 static void nfs4_locku_done(struct rpc_task *task, void *data) in nfs4_locku_done() argument
5433 if (!nfs4_sequence_done(task, &calldata->res.seq_res)) in nfs4_locku_done()
5435 switch (task->tk_status) { in nfs4_locku_done()
5448 rpc_restart_call_prepare(task); in nfs4_locku_done()
5451 if (nfs4_async_handle_error(task, calldata->server, in nfs4_locku_done()
5453 rpc_restart_call_prepare(task); in nfs4_locku_done()
5458 static void nfs4_locku_prepare(struct rpc_task *task, void *data) in nfs4_locku_prepare() argument
5462 if (nfs_wait_on_sequence(calldata->arg.seqid, task) != 0) in nfs4_locku_prepare()
5473 task) != 0) in nfs4_locku_prepare()
5477 task->tk_action = NULL; in nfs4_locku_prepare()
5479 nfs4_sequence_done(task, &calldata->res.seq_res); in nfs4_locku_prepare()
5534 struct rpc_task *task; in nfs4_proc_unlck() local
5564 task = nfs4_do_unlck(request, nfs_file_open_context(request->fl_file), lsp, seqid); in nfs4_proc_unlck()
5565 status = PTR_ERR(task); in nfs4_proc_unlck()
5566 if (IS_ERR(task)) in nfs4_proc_unlck()
5568 status = nfs4_wait_for_completion_rpc_task(task); in nfs4_proc_unlck()
5569 rpc_put_task(task); in nfs4_proc_unlck()
5628 static void nfs4_lock_prepare(struct rpc_task *task, void *calldata) in nfs4_lock_prepare() argument
5634 if (nfs_wait_on_sequence(data->arg.lock_seqid, task) != 0) in nfs4_lock_prepare()
5638 if (nfs_wait_on_sequence(data->arg.open_seqid, task) != 0) { in nfs4_lock_prepare()
5652 task->tk_action = NULL; in nfs4_lock_prepare()
5659 task) == 0) in nfs4_lock_prepare()
5666 nfs4_sequence_done(task, &data->res.seq_res); in nfs4_lock_prepare()
5670 static void nfs4_lock_done(struct rpc_task *task, void *calldata) in nfs4_lock_done() argument
5677 if (!nfs4_sequence_done(task, &data->res.seq_res)) in nfs4_lock_done()
5680 data->rpc_status = task->tk_status; in nfs4_lock_done()
5681 switch (task->tk_status) { in nfs4_lock_done()
5688 rpc_restart_call_prepare(task); in nfs4_lock_done()
5697 rpc_restart_call_prepare(task); in nfs4_lock_done()
5706 rpc_restart_call_prepare(task); in nfs4_lock_done()
5709 rpc_restart_call_prepare(task); in nfs4_lock_done()
5721 struct rpc_task *task; in nfs4_lock_release() local
5722 task = nfs4_do_unlck(&data->fl, data->ctx, data->lsp, in nfs4_lock_release()
5724 if (!IS_ERR(task)) in nfs4_lock_release()
5725 rpc_put_task_async(task); in nfs4_lock_release()
5762 struct rpc_task *task; in _nfs4_do_setlk() local
5794 task = rpc_run_task(&task_setup_data); in _nfs4_do_setlk()
5795 if (IS_ERR(task)) in _nfs4_do_setlk()
5796 return PTR_ERR(task); in _nfs4_do_setlk()
5797 ret = nfs4_wait_for_completion_rpc_task(task); in _nfs4_do_setlk()
5805 rpc_put_task(task); in _nfs4_do_setlk()
6045 static void nfs4_release_lockowner_prepare(struct rpc_task *task, void *calldata) in nfs4_release_lockowner_prepare() argument
6050 &data->args.seq_args, &data->res.seq_res, task); in nfs4_release_lockowner_prepare()
6055 static void nfs4_release_lockowner_done(struct rpc_task *task, void *calldata) in nfs4_release_lockowner_done() argument
6060 nfs40_sequence_done(task, &data->res.seq_res); in nfs4_release_lockowner_done()
6062 switch (task->tk_status) { in nfs4_release_lockowner_done()
6072 if (nfs4_async_handle_error(task, server, in nfs4_release_lockowner_done()
6074 rpc_restart_call_prepare(task); in nfs4_release_lockowner_done()
7056 static void nfs4_get_lease_time_prepare(struct rpc_task *task, in nfs4_get_lease_time_prepare() argument
7068 task); in nfs4_get_lease_time_prepare()
7076 static void nfs4_get_lease_time_done(struct rpc_task *task, void *calldata) in nfs4_get_lease_time_done() argument
7082 if (!nfs41_sequence_done(task, &data->res->lr_seq_res)) in nfs4_get_lease_time_done()
7084 switch (task->tk_status) { in nfs4_get_lease_time_done()
7087 dprintk("%s Retry: tk_status %d\n", __func__, task->tk_status); in nfs4_get_lease_time_done()
7088 rpc_delay(task, NFS4_POLL_RETRY_MIN); in nfs4_get_lease_time_done()
7089 task->tk_status = 0; in nfs4_get_lease_time_done()
7092 rpc_restart_call_prepare(task); in nfs4_get_lease_time_done()
7105 struct rpc_task *task; in nfs4_proc_get_lease_time() local
7132 task = rpc_run_task(&task_setup); in nfs4_proc_get_lease_time()
7134 if (IS_ERR(task)) in nfs4_proc_get_lease_time()
7135 status = PTR_ERR(task); in nfs4_proc_get_lease_time()
7137 status = task->tk_status; in nfs4_proc_get_lease_time()
7138 rpc_put_task(task); in nfs4_proc_get_lease_time()
7381 static int nfs41_sequence_handle_errors(struct rpc_task *task, struct nfs_client *clp) in nfs41_sequence_handle_errors() argument
7383 switch(task->tk_status) { in nfs41_sequence_handle_errors()
7385 rpc_delay(task, NFS4_POLL_RETRY_MAX); in nfs41_sequence_handle_errors()
7393 static void nfs41_sequence_call_done(struct rpc_task *task, void *data) in nfs41_sequence_call_done() argument
7398 if (!nfs41_sequence_done(task, task->tk_msg.rpc_resp)) in nfs41_sequence_call_done()
7401 trace_nfs4_sequence(clp, task->tk_status); in nfs41_sequence_call_done()
7402 if (task->tk_status < 0) { in nfs41_sequence_call_done()
7403 dprintk("%s ERROR %d\n", __func__, task->tk_status); in nfs41_sequence_call_done()
7407 if (nfs41_sequence_handle_errors(task, clp) == -EAGAIN) { in nfs41_sequence_call_done()
7408 rpc_restart_call_prepare(task); in nfs41_sequence_call_done()
7412 dprintk("%s rpc_cred %p\n", __func__, task->tk_msg.rpc_cred); in nfs41_sequence_call_done()
7417 static void nfs41_sequence_prepare(struct rpc_task *task, void *data) in nfs41_sequence_prepare() argument
7424 args = task->tk_msg.rpc_argp; in nfs41_sequence_prepare()
7425 res = task->tk_msg.rpc_resp; in nfs41_sequence_prepare()
7427 nfs41_setup_sequence(clp->cl_session, args, res, task); in nfs41_sequence_prepare()
7472 struct rpc_task *task; in nfs41_proc_async_sequence() local
7477 task = _nfs41_proc_sequence(clp, cred, false); in nfs41_proc_async_sequence()
7478 if (IS_ERR(task)) in nfs41_proc_async_sequence()
7479 ret = PTR_ERR(task); in nfs41_proc_async_sequence()
7481 rpc_put_task_async(task); in nfs41_proc_async_sequence()
7488 struct rpc_task *task; in nfs4_proc_sequence() local
7491 task = _nfs41_proc_sequence(clp, cred, true); in nfs4_proc_sequence()
7492 if (IS_ERR(task)) { in nfs4_proc_sequence()
7493 ret = PTR_ERR(task); in nfs4_proc_sequence()
7496 ret = rpc_wait_for_completion_task(task); in nfs4_proc_sequence()
7498 struct nfs4_sequence_res *res = task->tk_msg.rpc_resp; in nfs4_proc_sequence()
7500 if (task->tk_status == 0) in nfs4_proc_sequence()
7502 ret = task->tk_status; in nfs4_proc_sequence()
7504 rpc_put_task(task); in nfs4_proc_sequence()
7516 static void nfs4_reclaim_complete_prepare(struct rpc_task *task, void *data) in nfs4_reclaim_complete_prepare() argument
7523 task); in nfs4_reclaim_complete_prepare()
7526 static int nfs41_reclaim_complete_handle_errors(struct rpc_task *task, struct nfs_client *clp) in nfs41_reclaim_complete_handle_errors() argument
7528 switch(task->tk_status) { in nfs41_reclaim_complete_handle_errors()
7534 rpc_delay(task, NFS4_POLL_RETRY_MAX); in nfs41_reclaim_complete_handle_errors()
7544 static void nfs4_reclaim_complete_done(struct rpc_task *task, void *data) in nfs4_reclaim_complete_done() argument
7551 if (!nfs41_sequence_done(task, res)) in nfs4_reclaim_complete_done()
7554 trace_nfs4_reclaim_complete(clp, task->tk_status); in nfs4_reclaim_complete_done()
7555 if (nfs41_reclaim_complete_handle_errors(task, clp) == -EAGAIN) { in nfs4_reclaim_complete_done()
7556 rpc_restart_call_prepare(task); in nfs4_reclaim_complete_done()
7582 struct rpc_task *task; in nfs41_proc_reclaim_complete() local
7607 task = rpc_run_task(&task_setup_data); in nfs41_proc_reclaim_complete()
7608 if (IS_ERR(task)) { in nfs41_proc_reclaim_complete()
7609 status = PTR_ERR(task); in nfs41_proc_reclaim_complete()
7612 status = nfs4_wait_for_completion_rpc_task(task); in nfs41_proc_reclaim_complete()
7614 status = task->tk_status; in nfs41_proc_reclaim_complete()
7615 rpc_put_task(task); in nfs41_proc_reclaim_complete()
7623 nfs4_layoutget_prepare(struct rpc_task *task, void *calldata) in nfs4_layoutget_prepare() argument
7636 &lgp->res.seq_res, task)) in nfs4_layoutget_prepare()
7642 rpc_exit(task, NFS4_OK); in nfs4_layoutget_prepare()
7646 static void nfs4_layoutget_done(struct rpc_task *task, void *calldata) in nfs4_layoutget_done() argument
7655 dprintk("--> %s tk_status => %d\n", __func__, -task->tk_status); in nfs4_layoutget_done()
7657 if (!nfs41_sequence_done(task, &lgp->res.seq_res)) in nfs4_layoutget_done()
7660 switch (task->tk_status) { in nfs4_layoutget_done()
7673 timeo = rpc_get_timeout(task->tk_client); in nfs4_layoutget_done()
7690 rpc_delay(task, delay); in nfs4_layoutget_done()
7691 task->tk_status = 0; in nfs4_layoutget_done()
7692 rpc_restart_call_prepare(task); in nfs4_layoutget_done()
7715 task->tk_status = 0; in nfs4_layoutget_done()
7716 rpc_restart_call_prepare(task); in nfs4_layoutget_done()
7719 if (nfs4_async_handle_error(task, server, state, NULL) == -EAGAIN) in nfs4_layoutget_done()
7720 rpc_restart_call_prepare(task); in nfs4_layoutget_done()
7796 struct rpc_task *task; in nfs4_proc_layoutget() local
7830 task = rpc_run_task(&task_setup_data); in nfs4_proc_layoutget()
7831 if (IS_ERR(task)) in nfs4_proc_layoutget()
7832 return ERR_CAST(task); in nfs4_proc_layoutget()
7833 status = nfs4_wait_for_completion_rpc_task(task); in nfs4_proc_layoutget()
7835 status = task->tk_status; in nfs4_proc_layoutget()
7843 rpc_put_task(task); in nfs4_proc_layoutget()
7851 nfs4_layoutreturn_prepare(struct rpc_task *task, void *calldata) in nfs4_layoutreturn_prepare() argument
7859 task); in nfs4_layoutreturn_prepare()
7862 static void nfs4_layoutreturn_done(struct rpc_task *task, void *calldata) in nfs4_layoutreturn_done() argument
7869 if (!nfs41_sequence_done(task, &lrp->res.seq_res)) in nfs4_layoutreturn_done()
7873 switch (task->tk_status) { in nfs4_layoutreturn_done()
7875 task->tk_status = 0; in nfs4_layoutreturn_done()
7879 if (nfs4_async_handle_error(task, server, NULL, NULL) != -EAGAIN) in nfs4_layoutreturn_done()
7881 rpc_restart_call_prepare(task); in nfs4_layoutreturn_done()
7915 struct rpc_task *task; in nfs4_proc_layoutreturn() local
7940 task = rpc_run_task(&task_setup_data); in nfs4_proc_layoutreturn()
7941 if (IS_ERR(task)) in nfs4_proc_layoutreturn()
7942 return PTR_ERR(task); in nfs4_proc_layoutreturn()
7944 status = task->tk_status; in nfs4_proc_layoutreturn()
7947 rpc_put_task(task); in nfs4_proc_layoutreturn()
8000 static void nfs4_layoutcommit_prepare(struct rpc_task *task, void *calldata) in nfs4_layoutcommit_prepare() argument
8009 task); in nfs4_layoutcommit_prepare()
8013 nfs4_layoutcommit_done(struct rpc_task *task, void *calldata) in nfs4_layoutcommit_done() argument
8018 if (!nfs41_sequence_done(task, &data->res.seq_res)) in nfs4_layoutcommit_done()
8021 switch (task->tk_status) { /* Just ignore these failures */ in nfs4_layoutcommit_done()
8026 task->tk_status = 0; in nfs4_layoutcommit_done()
8030 if (nfs4_async_handle_error(task, server, NULL, NULL) == -EAGAIN) { in nfs4_layoutcommit_done()
8031 rpc_restart_call_prepare(task); in nfs4_layoutcommit_done()
8065 .task = &data->task, in nfs4_proc_layoutcommit()
8071 struct rpc_task *task; in nfs4_proc_layoutcommit() local
8076 data->task.tk_pid, sync, in nfs4_proc_layoutcommit()
8089 task = rpc_run_task(&task_setup_data); in nfs4_proc_layoutcommit()
8090 if (IS_ERR(task)) in nfs4_proc_layoutcommit()
8091 return PTR_ERR(task); in nfs4_proc_layoutcommit()
8093 status = task->tk_status; in nfs4_proc_layoutcommit()
8096 rpc_put_task(task); in nfs4_proc_layoutcommit()
8312 static void nfs41_free_stateid_prepare(struct rpc_task *task, void *calldata) in nfs41_free_stateid_prepare() argument
8318 task); in nfs41_free_stateid_prepare()
8321 static void nfs41_free_stateid_done(struct rpc_task *task, void *calldata) in nfs41_free_stateid_done() argument
8325 nfs41_sequence_done(task, &data->res.seq_res); in nfs41_free_stateid_done()
8327 switch (task->tk_status) { in nfs41_free_stateid_done()
8329 if (nfs4_async_handle_error(task, data->server, NULL, NULL) == -EAGAIN) in nfs41_free_stateid_done()
8330 rpc_restart_call_prepare(task); in nfs41_free_stateid_done()
8397 struct rpc_task *task; in nfs41_free_stateid() local
8400 task = _nfs41_free_stateid(server, stateid, cred, true); in nfs41_free_stateid()
8401 if (IS_ERR(task)) in nfs41_free_stateid()
8402 return PTR_ERR(task); in nfs41_free_stateid()
8403 ret = rpc_wait_for_completion_task(task); in nfs41_free_stateid()
8405 ret = task->tk_status; in nfs41_free_stateid()
8406 rpc_put_task(task); in nfs41_free_stateid()
8413 struct rpc_task *task; in nfs41_free_lock_state() local
8416 task = _nfs41_free_stateid(server, &lsp->ls_stateid, cred, false); in nfs41_free_lock_state()
8418 if (IS_ERR(task)) in nfs41_free_lock_state()
8420 rpc_put_task(task); in nfs41_free_lock_state()