Lines Matching refs:task

470 nfs4_async_handle_exception(struct rpc_task *task, struct nfs_server *server,  in nfs4_async_handle_exception()  argument
478 rpc_delay(task, nfs4_update_delay(&exception->timeout)); in nfs4_async_handle_exception()
482 rpc_sleep_on(&clp->cl_rpcwaitq, task, NULL); in nfs4_async_handle_exception()
484 rpc_wake_up_queued_task(&clp->cl_rpcwaitq, task); in nfs4_async_handle_exception()
497 nfs4_async_handle_error(struct rpc_task *task, struct nfs_server *server, in nfs4_async_handle_error() argument
504 if (task->tk_status >= 0) in nfs4_async_handle_error()
508 task->tk_status = nfs4_async_handle_exception(task, server, in nfs4_async_handle_error()
509 task->tk_status, in nfs4_async_handle_error()
573 struct rpc_task *task) in nfs40_setup_sequence() argument
588 task->tk_timeout = HZ >> 2; in nfs40_setup_sequence()
597 rpc_call_start(task); in nfs40_setup_sequence()
602 rpc_sleep_on_priority(&tbl->slot_tbl_waitq, task, in nfs40_setup_sequence()
605 rpc_sleep_on(&tbl->slot_tbl_waitq, task, NULL); in nfs40_setup_sequence()
611 static int nfs40_sequence_done(struct rpc_task *task, in nfs40_sequence_done() argument
665 int nfs41_sequence_done(struct rpc_task *task, struct nfs4_sequence_res *res) in nfs41_sequence_done() argument
676 if (!RPC_WAS_SENT(task)) in nfs41_sequence_done()
755 if (rpc_restart_call_prepare(task)) { in nfs41_sequence_done()
756 task->tk_status = 0; in nfs41_sequence_done()
761 if (!rpc_restart_call(task)) in nfs41_sequence_done()
763 rpc_delay(task, NFS4_POLL_RETRY_MAX); in nfs41_sequence_done()
768 int nfs4_sequence_done(struct rpc_task *task, struct nfs4_sequence_res *res) in nfs4_sequence_done() argument
773 return nfs40_sequence_done(task, res); in nfs4_sequence_done()
774 return nfs41_sequence_done(task, res); in nfs4_sequence_done()
781 struct rpc_task *task) in nfs41_setup_sequence() argument
793 task->tk_timeout = 0; in nfs41_setup_sequence()
807 task->tk_timeout = HZ >> 2; in nfs41_setup_sequence()
828 rpc_call_start(task); in nfs41_setup_sequence()
833 rpc_sleep_on_priority(&tbl->slot_tbl_waitq, task, in nfs41_setup_sequence()
836 rpc_sleep_on(&tbl->slot_tbl_waitq, task, NULL); in nfs41_setup_sequence()
845 struct rpc_task *task) in nfs4_setup_sequence() argument
852 args, res, task); in nfs4_setup_sequence()
858 ret = nfs41_setup_sequence(session, args, res, task); in nfs4_setup_sequence()
864 static void nfs41_call_sync_prepare(struct rpc_task *task, void *calldata) in nfs41_call_sync_prepare() argument
871 nfs41_setup_sequence(session, data->seq_args, data->seq_res, task); in nfs41_call_sync_prepare()
874 static void nfs41_call_sync_done(struct rpc_task *task, void *calldata) in nfs41_call_sync_done() argument
878 nfs41_sequence_done(task, data->seq_res); in nfs41_call_sync_done()
891 struct rpc_task *task) in nfs4_setup_sequence() argument
894 args, res, task); in nfs4_setup_sequence()
897 int nfs4_sequence_done(struct rpc_task *task, in nfs4_sequence_done() argument
900 return nfs40_sequence_done(task, res); in nfs4_sequence_done()
906 static void nfs40_call_sync_prepare(struct rpc_task *task, void *calldata) in nfs40_call_sync_prepare() argument
910 data->seq_args, data->seq_res, task); in nfs40_call_sync_prepare()
913 static void nfs40_call_sync_done(struct rpc_task *task, void *calldata) in nfs40_call_sync_done() argument
916 nfs4_sequence_done(task, data->seq_res); in nfs40_call_sync_done()
931 struct rpc_task *task; in nfs4_call_sync_sequence() local
945 task = rpc_run_task(&task_setup); in nfs4_call_sync_sequence()
946 if (IS_ERR(task)) in nfs4_call_sync_sequence()
947 ret = PTR_ERR(task); in nfs4_call_sync_sequence()
949 ret = task->tk_status; in nfs4_call_sync_sequence()
950 rpc_put_task(task); in nfs4_call_sync_sequence()
1195 static int nfs4_wait_for_completion_rpc_task(struct rpc_task *task) in nfs4_wait_for_completion_rpc_task() argument
1199 ret = rpc_wait_for_completion_task(task); in nfs4_wait_for_completion_rpc_task()
1873 static void nfs4_open_confirm_prepare(struct rpc_task *task, void *calldata) in nfs4_open_confirm_prepare() argument
1878 &data->c_arg.seq_args, &data->c_res.seq_res, task); in nfs4_open_confirm_prepare()
1881 static void nfs4_open_confirm_done(struct rpc_task *task, void *calldata) in nfs4_open_confirm_done() argument
1885 nfs40_sequence_done(task, &data->c_res.seq_res); in nfs4_open_confirm_done()
1887 data->rpc_status = task->tk_status; in nfs4_open_confirm_done()
1926 struct rpc_task *task; in _nfs4_proc_open_confirm() local
1950 task = rpc_run_task(&task_setup_data); in _nfs4_proc_open_confirm()
1951 if (IS_ERR(task)) in _nfs4_proc_open_confirm()
1952 return PTR_ERR(task); in _nfs4_proc_open_confirm()
1953 status = nfs4_wait_for_completion_rpc_task(task); in _nfs4_proc_open_confirm()
1959 rpc_put_task(task); in _nfs4_proc_open_confirm()
1963 static void nfs4_open_prepare(struct rpc_task *task, void *calldata) in nfs4_open_prepare() argument
1970 if (nfs_wait_on_sequence(data->o_arg.seqid, task) != 0) in nfs4_open_prepare()
1997 task->tk_msg.rpc_proc = &nfs4_procedures[NFSPROC4_CLNT_OPEN_NOATTR]; in nfs4_open_prepare()
2004 task) != 0) in nfs4_open_prepare()
2020 task->tk_action = NULL; in nfs4_open_prepare()
2022 nfs4_sequence_done(task, &data->o_res.seq_res); in nfs4_open_prepare()
2025 static void nfs4_open_done(struct rpc_task *task, void *calldata) in nfs4_open_done() argument
2029 data->rpc_status = task->tk_status; in nfs4_open_done()
2031 if (!nfs4_sequence_done(task, &data->o_res.seq_res)) in nfs4_open_done()
2034 if (task->tk_status == 0) { in nfs4_open_done()
2089 struct rpc_task *task; in nfs4_run_open_task() local
2116 task = rpc_run_task(&task_setup_data); in nfs4_run_open_task()
2117 if (IS_ERR(task)) in nfs4_run_open_task()
2118 return PTR_ERR(task); in nfs4_run_open_task()
2119 status = nfs4_wait_for_completion_rpc_task(task); in nfs4_run_open_task()
2125 rpc_put_task(task); in nfs4_run_open_task()
2746 nfs4_wait_on_layoutreturn(struct inode *inode, struct rpc_task *task) in nfs4_wait_on_layoutreturn() argument
2751 return pnfs_wait_on_layoutreturn(inode, task); in nfs4_wait_on_layoutreturn()
2780 static void nfs4_close_done(struct rpc_task *task, void *data) in nfs4_close_done() argument
2788 if (!nfs4_sequence_done(task, &calldata->res.seq_res)) in nfs4_close_done()
2790 trace_nfs4_close(state, &calldata->arg, &calldata->res, task->tk_status); in nfs4_close_done()
2794 switch (task->tk_status) { in nfs4_close_done()
2809 rpc_restart_call_prepare(task); in nfs4_close_done()
2815 if (nfs4_async_handle_error(task, server, state, NULL) == -EAGAIN) { in nfs4_close_done()
2816 rpc_restart_call_prepare(task); in nfs4_close_done()
2825 dprintk("%s: done, ret = %d!\n", __func__, task->tk_status); in nfs4_close_done()
2828 static void nfs4_close_prepare(struct rpc_task *task, void *data) in nfs4_close_prepare() argument
2837 if (nfs_wait_on_sequence(calldata->arg.seqid, task) != 0) in nfs4_close_prepare()
2840 task->tk_msg.rpc_proc = &nfs4_procedures[NFSPROC4_CLNT_OPEN_DOWNGRADE]; in nfs4_close_prepare()
2872 if (nfs4_wait_on_layoutreturn(inode, task)) { in nfs4_close_prepare()
2878 task->tk_msg.rpc_proc = &nfs4_procedures[NFSPROC4_CLNT_CLOSE]; in nfs4_close_prepare()
2891 task) != 0) in nfs4_close_prepare()
2896 task->tk_action = NULL; in nfs4_close_prepare()
2898 nfs4_sequence_done(task, &calldata->res.seq_res); in nfs4_close_prepare()
2931 struct rpc_task *task; in nfs4_do_close() local
2971 task = rpc_run_task(&task_setup_data); in nfs4_do_close()
2972 if (IS_ERR(task)) in nfs4_do_close()
2973 return PTR_ERR(task); in nfs4_do_close()
2976 status = rpc_wait_for_completion_task(task); in nfs4_do_close()
2977 rpc_put_task(task); in nfs4_do_close()
3772 static void nfs4_proc_unlink_rpc_prepare(struct rpc_task *task, struct nfs_unlinkdata *data) in nfs4_proc_unlink_rpc_prepare() argument
3777 task); in nfs4_proc_unlink_rpc_prepare()
3780 static int nfs4_proc_unlink_done(struct rpc_task *task, struct inode *dir) in nfs4_proc_unlink_done() argument
3782 struct nfs_unlinkdata *data = task->tk_calldata; in nfs4_proc_unlink_done()
3785 if (!nfs4_sequence_done(task, &res->seq_res)) in nfs4_proc_unlink_done()
3787 if (nfs4_async_handle_error(task, res->server, NULL, in nfs4_proc_unlink_done()
3805 static void nfs4_proc_rename_rpc_prepare(struct rpc_task *task, struct nfs_renamedata *data) in nfs4_proc_rename_rpc_prepare() argument
3810 task); in nfs4_proc_rename_rpc_prepare()
3813 static int nfs4_proc_rename_done(struct rpc_task *task, struct inode *old_dir, in nfs4_proc_rename_done() argument
3816 struct nfs_renamedata *data = task->tk_calldata; in nfs4_proc_rename_done()
3819 if (!nfs4_sequence_done(task, &res->seq_res)) in nfs4_proc_rename_done()
3821 if (nfs4_async_handle_error(task, res->server, NULL, &data->timeout) == -EAGAIN) in nfs4_proc_rename_done()
4319 static int nfs4_read_done_cb(struct rpc_task *task, struct nfs_pgio_header *hdr) in nfs4_read_done_cb() argument
4323 trace_nfs4_read(hdr, task->tk_status); in nfs4_read_done_cb()
4324 if (nfs4_async_handle_error(task, server, in nfs4_read_done_cb()
4327 rpc_restart_call_prepare(task); in nfs4_read_done_cb()
4332 if (task->tk_status > 0) in nfs4_read_done_cb()
4337 static bool nfs4_read_stateid_changed(struct rpc_task *task, in nfs4_read_stateid_changed() argument
4341 if (!nfs4_error_stateid_expired(task->tk_status) || in nfs4_read_stateid_changed()
4347 rpc_restart_call_prepare(task); in nfs4_read_stateid_changed()
4351 static int nfs4_read_done(struct rpc_task *task, struct nfs_pgio_header *hdr) in nfs4_read_done() argument
4356 if (!nfs4_sequence_done(task, &hdr->res.seq_res)) in nfs4_read_done()
4358 if (nfs4_read_stateid_changed(task, &hdr->args)) in nfs4_read_done()
4360 return hdr->pgio_done_cb ? hdr->pgio_done_cb(task, hdr) : in nfs4_read_done()
4361 nfs4_read_done_cb(task, hdr); in nfs4_read_done()
4373 static int nfs4_proc_pgio_rpc_prepare(struct rpc_task *task, in nfs4_proc_pgio_rpc_prepare() argument
4379 task)) in nfs4_proc_pgio_rpc_prepare()
4390 static int nfs4_write_done_cb(struct rpc_task *task, in nfs4_write_done_cb() argument
4395 trace_nfs4_write(hdr, task->tk_status); in nfs4_write_done_cb()
4396 if (nfs4_async_handle_error(task, NFS_SERVER(inode), in nfs4_write_done_cb()
4399 rpc_restart_call_prepare(task); in nfs4_write_done_cb()
4402 if (task->tk_status >= 0) { in nfs4_write_done_cb()
4409 static bool nfs4_write_stateid_changed(struct rpc_task *task, in nfs4_write_stateid_changed() argument
4413 if (!nfs4_error_stateid_expired(task->tk_status) || in nfs4_write_stateid_changed()
4419 rpc_restart_call_prepare(task); in nfs4_write_stateid_changed()
4423 static int nfs4_write_done(struct rpc_task *task, struct nfs_pgio_header *hdr) in nfs4_write_done() argument
4425 if (!nfs4_sequence_done(task, &hdr->res.seq_res)) in nfs4_write_done()
4427 if (nfs4_write_stateid_changed(task, &hdr->args)) in nfs4_write_done()
4429 return hdr->pgio_done_cb ? hdr->pgio_done_cb(task, hdr) : in nfs4_write_done()
4430 nfs4_write_done_cb(task, hdr); in nfs4_write_done()
4465 static void nfs4_proc_commit_rpc_prepare(struct rpc_task *task, struct nfs_commit_data *data) in nfs4_proc_commit_rpc_prepare() argument
4470 task); in nfs4_proc_commit_rpc_prepare()
4473 static int nfs4_commit_done_cb(struct rpc_task *task, struct nfs_commit_data *data) in nfs4_commit_done_cb() argument
4477 trace_nfs4_commit(data, task->tk_status); in nfs4_commit_done_cb()
4478 if (nfs4_async_handle_error(task, NFS_SERVER(inode), in nfs4_commit_done_cb()
4480 rpc_restart_call_prepare(task); in nfs4_commit_done_cb()
4486 static int nfs4_commit_done(struct rpc_task *task, struct nfs_commit_data *data) in nfs4_commit_done() argument
4488 if (!nfs4_sequence_done(task, &data->res.seq_res)) in nfs4_commit_done()
4490 return data->commit_done_cb(task, data); in nfs4_commit_done()
4524 static void nfs4_renew_done(struct rpc_task *task, void *calldata) in nfs4_renew_done() argument
4530 trace_nfs4_renew_async(clp, task->tk_status); in nfs4_renew_done()
4531 switch (task->tk_status) { in nfs4_renew_done()
4541 if (task->tk_status != NFS4ERR_CB_PATH_DOWN) { in nfs4_renew_done()
5169 static void nfs4_setclientid_done(struct rpc_task *task, void *calldata) in nfs4_setclientid_done() argument
5173 if (task->tk_status == 0) in nfs4_setclientid_done()
5174 sc->sc_cred = get_rpccred(task->tk_rqstp->rq_cred); in nfs4_setclientid_done()
5207 struct rpc_task *task; in nfs4_proc_setclientid() local
5240 task = rpc_run_task(&task_setup_data); in nfs4_proc_setclientid()
5241 if (IS_ERR(task)) { in nfs4_proc_setclientid()
5242 status = PTR_ERR(task); in nfs4_proc_setclientid()
5245 status = task->tk_status; in nfs4_proc_setclientid()
5250 rpc_put_task(task); in nfs4_proc_setclientid()
5298 static void nfs4_delegreturn_done(struct rpc_task *task, void *calldata) in nfs4_delegreturn_done() argument
5302 if (!nfs4_sequence_done(task, &data->res.seq_res)) in nfs4_delegreturn_done()
5305 trace_nfs4_delegreturn_exit(&data->args, &data->res, task->tk_status); in nfs4_delegreturn_done()
5306 switch (task->tk_status) { in nfs4_delegreturn_done()
5315 task->tk_status = 0; in nfs4_delegreturn_done()
5320 if (nfs4_async_handle_error(task, data->res.server, in nfs4_delegreturn_done()
5322 rpc_restart_call_prepare(task); in nfs4_delegreturn_done()
5326 data->rpc_status = task->tk_status; in nfs4_delegreturn_done()
5342 static void nfs4_delegreturn_prepare(struct rpc_task *task, void *data) in nfs4_delegreturn_prepare() argument
5348 if (nfs4_wait_on_layoutreturn(d_data->inode, task)) in nfs4_delegreturn_prepare()
5357 task); in nfs4_delegreturn_prepare()
5370 struct rpc_task *task; in _nfs4_proc_delegreturn() local
5404 task = rpc_run_task(&task_setup_data); in _nfs4_proc_delegreturn()
5405 if (IS_ERR(task)) in _nfs4_proc_delegreturn()
5406 return PTR_ERR(task); in _nfs4_proc_delegreturn()
5409 status = nfs4_wait_for_completion_rpc_task(task); in _nfs4_proc_delegreturn()
5418 rpc_put_task(task); in _nfs4_proc_delegreturn()
5561 static void nfs4_locku_done(struct rpc_task *task, void *data) in nfs4_locku_done() argument
5565 if (!nfs4_sequence_done(task, &calldata->res.seq_res)) in nfs4_locku_done()
5567 switch (task->tk_status) { in nfs4_locku_done()
5580 rpc_restart_call_prepare(task); in nfs4_locku_done()
5583 if (nfs4_async_handle_error(task, calldata->server, in nfs4_locku_done()
5585 rpc_restart_call_prepare(task); in nfs4_locku_done()
5590 static void nfs4_locku_prepare(struct rpc_task *task, void *data) in nfs4_locku_prepare() argument
5594 if (nfs_wait_on_sequence(calldata->arg.seqid, task) != 0) in nfs4_locku_prepare()
5605 task) != 0) in nfs4_locku_prepare()
5609 task->tk_action = NULL; in nfs4_locku_prepare()
5611 nfs4_sequence_done(task, &calldata->res.seq_res); in nfs4_locku_prepare()
5666 struct rpc_task *task; in nfs4_proc_unlck() local
5696 task = nfs4_do_unlck(request, nfs_file_open_context(request->fl_file), lsp, seqid); in nfs4_proc_unlck()
5697 status = PTR_ERR(task); in nfs4_proc_unlck()
5698 if (IS_ERR(task)) in nfs4_proc_unlck()
5700 status = nfs4_wait_for_completion_rpc_task(task); in nfs4_proc_unlck()
5701 rpc_put_task(task); in nfs4_proc_unlck()
5760 static void nfs4_lock_prepare(struct rpc_task *task, void *calldata) in nfs4_lock_prepare() argument
5766 if (nfs_wait_on_sequence(data->arg.lock_seqid, task) != 0) in nfs4_lock_prepare()
5770 if (nfs_wait_on_sequence(data->arg.open_seqid, task) != 0) { in nfs4_lock_prepare()
5784 task->tk_action = NULL; in nfs4_lock_prepare()
5791 task) == 0) in nfs4_lock_prepare()
5798 nfs4_sequence_done(task, &data->res.seq_res); in nfs4_lock_prepare()
5802 static void nfs4_lock_done(struct rpc_task *task, void *calldata) in nfs4_lock_done() argument
5809 if (!nfs4_sequence_done(task, &data->res.seq_res)) in nfs4_lock_done()
5812 data->rpc_status = task->tk_status; in nfs4_lock_done()
5813 switch (task->tk_status) { in nfs4_lock_done()
5820 rpc_restart_call_prepare(task); in nfs4_lock_done()
5829 rpc_restart_call_prepare(task); in nfs4_lock_done()
5838 rpc_restart_call_prepare(task); in nfs4_lock_done()
5841 rpc_restart_call_prepare(task); in nfs4_lock_done()
5853 struct rpc_task *task; in nfs4_lock_release() local
5854 task = nfs4_do_unlck(&data->fl, data->ctx, data->lsp, in nfs4_lock_release()
5856 if (!IS_ERR(task)) in nfs4_lock_release()
5857 rpc_put_task_async(task); in nfs4_lock_release()
5894 struct rpc_task *task; in _nfs4_do_setlk() local
5926 task = rpc_run_task(&task_setup_data); in _nfs4_do_setlk()
5927 if (IS_ERR(task)) in _nfs4_do_setlk()
5928 return PTR_ERR(task); in _nfs4_do_setlk()
5929 ret = nfs4_wait_for_completion_rpc_task(task); in _nfs4_do_setlk()
5937 rpc_put_task(task); in _nfs4_do_setlk()
6177 static void nfs4_release_lockowner_prepare(struct rpc_task *task, void *calldata) in nfs4_release_lockowner_prepare() argument
6182 &data->args.seq_args, &data->res.seq_res, task); in nfs4_release_lockowner_prepare()
6187 static void nfs4_release_lockowner_done(struct rpc_task *task, void *calldata) in nfs4_release_lockowner_done() argument
6192 nfs40_sequence_done(task, &data->res.seq_res); in nfs4_release_lockowner_done()
6194 switch (task->tk_status) { in nfs4_release_lockowner_done()
6204 if (nfs4_async_handle_error(task, server, in nfs4_release_lockowner_done()
6206 rpc_restart_call_prepare(task); in nfs4_release_lockowner_done()
7199 static void nfs4_get_lease_time_prepare(struct rpc_task *task, in nfs4_get_lease_time_prepare() argument
7211 task); in nfs4_get_lease_time_prepare()
7219 static void nfs4_get_lease_time_done(struct rpc_task *task, void *calldata) in nfs4_get_lease_time_done() argument
7225 if (!nfs41_sequence_done(task, &data->res->lr_seq_res)) in nfs4_get_lease_time_done()
7227 switch (task->tk_status) { in nfs4_get_lease_time_done()
7230 dprintk("%s Retry: tk_status %d\n", __func__, task->tk_status); in nfs4_get_lease_time_done()
7231 rpc_delay(task, NFS4_POLL_RETRY_MIN); in nfs4_get_lease_time_done()
7232 task->tk_status = 0; in nfs4_get_lease_time_done()
7235 rpc_restart_call_prepare(task); in nfs4_get_lease_time_done()
7248 struct rpc_task *task; in nfs4_proc_get_lease_time() local
7275 task = rpc_run_task(&task_setup); in nfs4_proc_get_lease_time()
7277 if (IS_ERR(task)) in nfs4_proc_get_lease_time()
7278 status = PTR_ERR(task); in nfs4_proc_get_lease_time()
7280 status = task->tk_status; in nfs4_proc_get_lease_time()
7281 rpc_put_task(task); in nfs4_proc_get_lease_time()
7524 static int nfs41_sequence_handle_errors(struct rpc_task *task, struct nfs_client *clp) in nfs41_sequence_handle_errors() argument
7526 switch(task->tk_status) { in nfs41_sequence_handle_errors()
7528 rpc_delay(task, NFS4_POLL_RETRY_MAX); in nfs41_sequence_handle_errors()
7536 static void nfs41_sequence_call_done(struct rpc_task *task, void *data) in nfs41_sequence_call_done() argument
7541 if (!nfs41_sequence_done(task, task->tk_msg.rpc_resp)) in nfs41_sequence_call_done()
7544 trace_nfs4_sequence(clp, task->tk_status); in nfs41_sequence_call_done()
7545 if (task->tk_status < 0) { in nfs41_sequence_call_done()
7546 dprintk("%s ERROR %d\n", __func__, task->tk_status); in nfs41_sequence_call_done()
7550 if (nfs41_sequence_handle_errors(task, clp) == -EAGAIN) { in nfs41_sequence_call_done()
7551 rpc_restart_call_prepare(task); in nfs41_sequence_call_done()
7555 dprintk("%s rpc_cred %p\n", __func__, task->tk_msg.rpc_cred); in nfs41_sequence_call_done()
7560 static void nfs41_sequence_prepare(struct rpc_task *task, void *data) in nfs41_sequence_prepare() argument
7567 args = task->tk_msg.rpc_argp; in nfs41_sequence_prepare()
7568 res = task->tk_msg.rpc_resp; in nfs41_sequence_prepare()
7570 nfs41_setup_sequence(clp->cl_session, args, res, task); in nfs41_sequence_prepare()
7615 struct rpc_task *task; in nfs41_proc_async_sequence() local
7620 task = _nfs41_proc_sequence(clp, cred, false); in nfs41_proc_async_sequence()
7621 if (IS_ERR(task)) in nfs41_proc_async_sequence()
7622 ret = PTR_ERR(task); in nfs41_proc_async_sequence()
7624 rpc_put_task_async(task); in nfs41_proc_async_sequence()
7631 struct rpc_task *task; in nfs4_proc_sequence() local
7634 task = _nfs41_proc_sequence(clp, cred, true); in nfs4_proc_sequence()
7635 if (IS_ERR(task)) { in nfs4_proc_sequence()
7636 ret = PTR_ERR(task); in nfs4_proc_sequence()
7639 ret = rpc_wait_for_completion_task(task); in nfs4_proc_sequence()
7641 ret = task->tk_status; in nfs4_proc_sequence()
7642 rpc_put_task(task); in nfs4_proc_sequence()
7654 static void nfs4_reclaim_complete_prepare(struct rpc_task *task, void *data) in nfs4_reclaim_complete_prepare() argument
7661 task); in nfs4_reclaim_complete_prepare()
7664 static int nfs41_reclaim_complete_handle_errors(struct rpc_task *task, struct nfs_client *clp) in nfs41_reclaim_complete_handle_errors() argument
7666 switch(task->tk_status) { in nfs41_reclaim_complete_handle_errors()
7672 rpc_delay(task, NFS4_POLL_RETRY_MAX); in nfs41_reclaim_complete_handle_errors()
7682 static void nfs4_reclaim_complete_done(struct rpc_task *task, void *data) in nfs4_reclaim_complete_done() argument
7689 if (!nfs41_sequence_done(task, res)) in nfs4_reclaim_complete_done()
7692 trace_nfs4_reclaim_complete(clp, task->tk_status); in nfs4_reclaim_complete_done()
7693 if (nfs41_reclaim_complete_handle_errors(task, clp) == -EAGAIN) { in nfs4_reclaim_complete_done()
7694 rpc_restart_call_prepare(task); in nfs4_reclaim_complete_done()
7720 struct rpc_task *task; in nfs41_proc_reclaim_complete() local
7745 task = rpc_run_task(&task_setup_data); in nfs41_proc_reclaim_complete()
7746 if (IS_ERR(task)) { in nfs41_proc_reclaim_complete()
7747 status = PTR_ERR(task); in nfs41_proc_reclaim_complete()
7750 status = nfs4_wait_for_completion_rpc_task(task); in nfs41_proc_reclaim_complete()
7752 status = task->tk_status; in nfs41_proc_reclaim_complete()
7753 rpc_put_task(task); in nfs41_proc_reclaim_complete()
7761 nfs4_layoutget_prepare(struct rpc_task *task, void *calldata) in nfs4_layoutget_prepare() argument
7774 &lgp->res.seq_res, task)) in nfs4_layoutget_prepare()
7780 rpc_exit(task, NFS4_OK); in nfs4_layoutget_prepare()
7784 static void nfs4_layoutget_done(struct rpc_task *task, void *calldata) in nfs4_layoutget_done() argument
7793 dprintk("--> %s tk_status => %d\n", __func__, -task->tk_status); in nfs4_layoutget_done()
7795 if (!nfs41_sequence_done(task, &lgp->res.seq_res)) in nfs4_layoutget_done()
7798 switch (task->tk_status) { in nfs4_layoutget_done()
7820 timeo = rpc_get_timeout(task->tk_client); in nfs4_layoutget_done()
7837 rpc_delay(task, delay); in nfs4_layoutget_done()
7869 if (nfs4_async_handle_error(task, server, state, &lgp->timeout) == -EAGAIN) in nfs4_layoutget_done()
7875 task->tk_status = 0; in nfs4_layoutget_done()
7876 rpc_restart_call_prepare(task); in nfs4_layoutget_done()
7879 task->tk_status = -EOVERFLOW; in nfs4_layoutget_done()
7954 struct rpc_task *task; in nfs4_proc_layoutget() local
7988 task = rpc_run_task(&task_setup_data); in nfs4_proc_layoutget()
7989 if (IS_ERR(task)) in nfs4_proc_layoutget()
7990 return ERR_CAST(task); in nfs4_proc_layoutget()
7991 status = nfs4_wait_for_completion_rpc_task(task); in nfs4_proc_layoutget()
7993 status = task->tk_status; in nfs4_proc_layoutget()
8001 rpc_put_task(task); in nfs4_proc_layoutget()
8009 nfs4_layoutreturn_prepare(struct rpc_task *task, void *calldata) in nfs4_layoutreturn_prepare() argument
8017 task); in nfs4_layoutreturn_prepare()
8020 static void nfs4_layoutreturn_done(struct rpc_task *task, void *calldata) in nfs4_layoutreturn_done() argument
8027 if (!nfs41_sequence_done(task, &lrp->res.seq_res)) in nfs4_layoutreturn_done()
8031 switch (task->tk_status) { in nfs4_layoutreturn_done()
8033 task->tk_status = 0; in nfs4_layoutreturn_done()
8037 if (nfs4_async_handle_error(task, server, NULL, NULL) != -EAGAIN) in nfs4_layoutreturn_done()
8039 rpc_restart_call_prepare(task); in nfs4_layoutreturn_done()
8073 struct rpc_task *task; in nfs4_proc_layoutreturn() local
8098 task = rpc_run_task(&task_setup_data); in nfs4_proc_layoutreturn()
8099 if (IS_ERR(task)) in nfs4_proc_layoutreturn()
8100 return PTR_ERR(task); in nfs4_proc_layoutreturn()
8102 status = task->tk_status; in nfs4_proc_layoutreturn()
8105 rpc_put_task(task); in nfs4_proc_layoutreturn()
8158 static void nfs4_layoutcommit_prepare(struct rpc_task *task, void *calldata) in nfs4_layoutcommit_prepare() argument
8167 task); in nfs4_layoutcommit_prepare()
8171 nfs4_layoutcommit_done(struct rpc_task *task, void *calldata) in nfs4_layoutcommit_done() argument
8176 if (!nfs41_sequence_done(task, &data->res.seq_res)) in nfs4_layoutcommit_done()
8179 switch (task->tk_status) { /* Just ignore these failures */ in nfs4_layoutcommit_done()
8184 task->tk_status = 0; in nfs4_layoutcommit_done()
8188 if (nfs4_async_handle_error(task, server, NULL, NULL) == -EAGAIN) { in nfs4_layoutcommit_done()
8189 rpc_restart_call_prepare(task); in nfs4_layoutcommit_done()
8223 .task = &data->task, in nfs4_proc_layoutcommit()
8229 struct rpc_task *task; in nfs4_proc_layoutcommit() local
8246 task = rpc_run_task(&task_setup_data); in nfs4_proc_layoutcommit()
8247 if (IS_ERR(task)) in nfs4_proc_layoutcommit()
8248 return PTR_ERR(task); in nfs4_proc_layoutcommit()
8250 status = task->tk_status; in nfs4_proc_layoutcommit()
8253 rpc_put_task(task); in nfs4_proc_layoutcommit()
8469 static void nfs41_free_stateid_prepare(struct rpc_task *task, void *calldata) in nfs41_free_stateid_prepare() argument
8475 task); in nfs41_free_stateid_prepare()
8478 static void nfs41_free_stateid_done(struct rpc_task *task, void *calldata) in nfs41_free_stateid_done() argument
8482 nfs41_sequence_done(task, &data->res.seq_res); in nfs41_free_stateid_done()
8484 switch (task->tk_status) { in nfs41_free_stateid_done()
8486 if (nfs4_async_handle_error(task, data->server, NULL, NULL) == -EAGAIN) in nfs41_free_stateid_done()
8487 rpc_restart_call_prepare(task); in nfs41_free_stateid_done()
8554 struct rpc_task *task; in nfs41_free_stateid() local
8557 task = _nfs41_free_stateid(server, stateid, cred, true); in nfs41_free_stateid()
8558 if (IS_ERR(task)) in nfs41_free_stateid()
8559 return PTR_ERR(task); in nfs41_free_stateid()
8560 ret = rpc_wait_for_completion_task(task); in nfs41_free_stateid()
8562 ret = task->tk_status; in nfs41_free_stateid()
8563 rpc_put_task(task); in nfs41_free_stateid()
8570 struct rpc_task *task; in nfs41_free_lock_state() local
8573 task = _nfs41_free_stateid(server, &lsp->ls_stateid, cred, false); in nfs41_free_lock_state()
8575 if (IS_ERR(task)) in nfs41_free_lock_state()
8577 rpc_put_task(task); in nfs41_free_lock_state()