• Home
  • Raw
  • Download

Lines Matching refs:task

597 nfs4_async_handle_exception(struct rpc_task *task, struct nfs_server *server,  in nfs4_async_handle_exception()  argument
605 rpc_delay(task, nfs4_update_delay(&exception->timeout)); in nfs4_async_handle_exception()
609 rpc_sleep_on(&clp->cl_rpcwaitq, task, NULL); in nfs4_async_handle_exception()
611 rpc_wake_up_queued_task(&clp->cl_rpcwaitq, task); in nfs4_async_handle_exception()
625 rpc_task_release_transport(task); in nfs4_async_handle_exception()
631 nfs4_async_handle_error(struct rpc_task *task, struct nfs_server *server, in nfs4_async_handle_error() argument
638 if (task->tk_status >= 0) in nfs4_async_handle_error()
642 task->tk_status = nfs4_async_handle_exception(task, server, in nfs4_async_handle_error()
643 task->tk_status, in nfs4_async_handle_error()
709 static int nfs40_sequence_done(struct rpc_task *task, in nfs40_sequence_done() argument
777 static int nfs41_sequence_process(struct rpc_task *task, in nfs41_sequence_process() argument
789 if (!RPC_WAS_SENT(task) || slot->seq_done) in nfs41_sequence_process()
797 if (task->tk_status == -NFS4ERR_DEADSESSION) in nfs41_sequence_process()
894 if (rpc_restart_call_prepare(task)) { in nfs41_sequence_process()
896 task->tk_status = 0; in nfs41_sequence_process()
901 if (!rpc_restart_call(task)) in nfs41_sequence_process()
903 rpc_delay(task, NFS4_POLL_RETRY_MAX); in nfs41_sequence_process()
907 int nfs41_sequence_done(struct rpc_task *task, struct nfs4_sequence_res *res) in nfs41_sequence_done() argument
909 if (!nfs41_sequence_process(task, res)) in nfs41_sequence_done()
918 static int nfs4_sequence_process(struct rpc_task *task, struct nfs4_sequence_res *res) in nfs4_sequence_process() argument
923 return nfs41_sequence_process(task, res); in nfs4_sequence_process()
924 return nfs40_sequence_done(task, res); in nfs4_sequence_process()
937 int nfs4_sequence_done(struct rpc_task *task, struct nfs4_sequence_res *res) in nfs4_sequence_done() argument
942 return nfs40_sequence_done(task, res); in nfs4_sequence_done()
943 return nfs41_sequence_done(task, res); in nfs4_sequence_done()
947 static void nfs41_call_sync_prepare(struct rpc_task *task, void *calldata) in nfs41_call_sync_prepare() argument
954 data->seq_args, data->seq_res, task); in nfs41_call_sync_prepare()
957 static void nfs41_call_sync_done(struct rpc_task *task, void *calldata) in nfs41_call_sync_done() argument
961 nfs41_sequence_done(task, data->seq_res); in nfs41_call_sync_done()
971 static int nfs4_sequence_process(struct rpc_task *task, struct nfs4_sequence_res *res) in nfs4_sequence_process() argument
973 return nfs40_sequence_done(task, res); in nfs4_sequence_process()
982 int nfs4_sequence_done(struct rpc_task *task, in nfs4_sequence_done() argument
985 return nfs40_sequence_done(task, res); in nfs4_sequence_done()
1014 struct rpc_task *task) in nfs4_setup_sequence() argument
1045 rpc_call_start(task); in nfs4_setup_sequence()
1050 rpc_sleep_on_priority_timeout(&tbl->slot_tbl_waitq, task, in nfs4_setup_sequence()
1053 rpc_sleep_on_timeout(&tbl->slot_tbl_waitq, task, in nfs4_setup_sequence()
1059 rpc_sleep_on_priority(&tbl->slot_tbl_waitq, task, in nfs4_setup_sequence()
1062 rpc_sleep_on(&tbl->slot_tbl_waitq, task, NULL); in nfs4_setup_sequence()
1068 static void nfs40_call_sync_prepare(struct rpc_task *task, void *calldata) in nfs40_call_sync_prepare() argument
1072 data->seq_args, data->seq_res, task); in nfs40_call_sync_prepare()
1075 static void nfs40_call_sync_done(struct rpc_task *task, void *calldata) in nfs40_call_sync_done() argument
1078 nfs4_sequence_done(task, data->seq_res); in nfs40_call_sync_done()
1089 struct rpc_task *task; in nfs4_call_sync_custom() local
1091 task = rpc_run_task(task_setup); in nfs4_call_sync_custom()
1092 if (IS_ERR(task)) in nfs4_call_sync_custom()
1093 return PTR_ERR(task); in nfs4_call_sync_custom()
1095 ret = task->tk_status; in nfs4_call_sync_custom()
1096 rpc_put_task(task); in nfs4_call_sync_custom()
2271 static void nfs4_open_confirm_prepare(struct rpc_task *task, void *calldata) in nfs4_open_confirm_prepare() argument
2276 &data->c_arg.seq_args, &data->c_res.seq_res, task); in nfs4_open_confirm_prepare()
2279 static void nfs4_open_confirm_done(struct rpc_task *task, void *calldata) in nfs4_open_confirm_done() argument
2283 nfs40_sequence_done(task, &data->c_res.seq_res); in nfs4_open_confirm_done()
2285 data->rpc_status = task->tk_status; in nfs4_open_confirm_done()
2324 struct rpc_task *task; in _nfs4_proc_open_confirm() local
2347 task = rpc_run_task(&task_setup_data); in _nfs4_proc_open_confirm()
2348 if (IS_ERR(task)) in _nfs4_proc_open_confirm()
2349 return PTR_ERR(task); in _nfs4_proc_open_confirm()
2350 status = rpc_wait_for_completion_task(task); in _nfs4_proc_open_confirm()
2356 rpc_put_task(task); in _nfs4_proc_open_confirm()
2360 static void nfs4_open_prepare(struct rpc_task *task, void *calldata) in nfs4_open_prepare() argument
2367 if (nfs_wait_on_sequence(data->o_arg.seqid, task) != 0) in nfs4_open_prepare()
2396 task->tk_msg.rpc_proc = &nfs4_procedures[NFSPROC4_CLNT_OPEN_NOATTR]; in nfs4_open_prepare()
2402 task) != 0) in nfs4_open_prepare()
2419 task->tk_action = NULL; in nfs4_open_prepare()
2421 nfs4_sequence_done(task, &data->o_res.seq_res); in nfs4_open_prepare()
2424 static void nfs4_open_done(struct rpc_task *task, void *calldata) in nfs4_open_done() argument
2428 data->rpc_status = task->tk_status; in nfs4_open_done()
2430 if (!nfs4_sequence_process(task, &data->o_res.seq_res)) in nfs4_open_done()
2433 if (task->tk_status == 0) { in nfs4_open_done()
2489 struct rpc_task *task; in nfs4_run_open_task() local
2519 task = rpc_run_task(&task_setup_data); in nfs4_run_open_task()
2520 if (IS_ERR(task)) in nfs4_run_open_task()
2521 return PTR_ERR(task); in nfs4_run_open_task()
2522 status = rpc_wait_for_completion_task(task); in nfs4_run_open_task()
2528 rpc_put_task(task); in nfs4_run_open_task()
3314 nfs4_wait_on_layoutreturn(struct inode *inode, struct rpc_task *task) in nfs4_wait_on_layoutreturn() argument
3319 return pnfs_wait_on_layoutreturn(inode, task); in nfs4_wait_on_layoutreturn()
3423 static void nfs4_close_done(struct rpc_task *task, void *data) in nfs4_close_done() argument
3436 if (!nfs4_sequence_done(task, &calldata->res.seq_res)) in nfs4_close_done()
3438 trace_nfs4_close(state, &calldata->arg, &calldata->res, task->tk_status); in nfs4_close_done()
3441 if (pnfs_roc_done(task, calldata->inode, in nfs4_close_done()
3450 switch (task->tk_status) { in nfs4_close_done()
3474 task->tk_msg.rpc_cred); in nfs4_close_done()
3481 task->tk_status = nfs4_async_handle_exception(task, in nfs4_close_done()
3482 server, task->tk_status, &exception); in nfs4_close_done()
3489 task->tk_status = 0; in nfs4_close_done()
3492 dprintk("%s: done, ret = %d!\n", __func__, task->tk_status); in nfs4_close_done()
3495 task->tk_status = 0; in nfs4_close_done()
3496 rpc_restart_call_prepare(task); in nfs4_close_done()
3500 static void nfs4_close_prepare(struct rpc_task *task, void *data) in nfs4_close_prepare() argument
3510 if (nfs_wait_on_sequence(calldata->arg.seqid, task) != 0) in nfs4_close_prepare()
3513 task->tk_msg.rpc_proc = &nfs4_procedures[NFSPROC4_CLNT_OPEN_DOWNGRADE]; in nfs4_close_prepare()
3544 if (!calldata->lr.roc && nfs4_wait_on_layoutreturn(inode, task)) { in nfs4_close_prepare()
3556 task->tk_msg.rpc_proc = &nfs4_procedures[NFSPROC4_CLNT_CLOSE]; in nfs4_close_prepare()
3578 task) != 0) in nfs4_close_prepare()
3583 task->tk_action = NULL; in nfs4_close_prepare()
3585 nfs4_sequence_done(task, &calldata->res.seq_res); in nfs4_close_prepare()
3611 struct rpc_task *task; in nfs4_do_close() local
3660 task = rpc_run_task(&task_setup_data); in nfs4_do_close()
3661 if (IS_ERR(task)) in nfs4_do_close()
3662 return PTR_ERR(task); in nfs4_do_close()
3665 status = rpc_wait_for_completion_task(task); in nfs4_do_close()
3666 rpc_put_task(task); in nfs4_do_close()
4547 static void nfs4_proc_unlink_rpc_prepare(struct rpc_task *task, struct nfs_unlinkdata *data) in nfs4_proc_unlink_rpc_prepare() argument
4552 task); in nfs4_proc_unlink_rpc_prepare()
4555 static int nfs4_proc_unlink_done(struct rpc_task *task, struct inode *dir) in nfs4_proc_unlink_done() argument
4557 struct nfs_unlinkdata *data = task->tk_calldata; in nfs4_proc_unlink_done()
4560 if (!nfs4_sequence_done(task, &res->seq_res)) in nfs4_proc_unlink_done()
4562 if (nfs4_async_handle_error(task, res->server, NULL, in nfs4_proc_unlink_done()
4565 if (task->tk_status == 0) in nfs4_proc_unlink_done()
4589 static void nfs4_proc_rename_rpc_prepare(struct rpc_task *task, struct nfs_renamedata *data) in nfs4_proc_rename_rpc_prepare() argument
4594 task); in nfs4_proc_rename_rpc_prepare()
4597 static int nfs4_proc_rename_done(struct rpc_task *task, struct inode *old_dir, in nfs4_proc_rename_done() argument
4600 struct nfs_renamedata *data = task->tk_calldata; in nfs4_proc_rename_done()
4603 if (!nfs4_sequence_done(task, &res->seq_res)) in nfs4_proc_rename_done()
4605 if (nfs4_async_handle_error(task, res->server, NULL, &data->timeout) == -EAGAIN) in nfs4_proc_rename_done()
4608 if (task->tk_status == 0) { in nfs4_proc_rename_done()
5133 static int nfs4_read_done_cb(struct rpc_task *task, struct nfs_pgio_header *hdr) in nfs4_read_done_cb() argument
5137 trace_nfs4_read(hdr, task->tk_status); in nfs4_read_done_cb()
5138 if (task->tk_status < 0) { in nfs4_read_done_cb()
5144 task->tk_status = nfs4_async_handle_exception(task, in nfs4_read_done_cb()
5145 server, task->tk_status, &exception); in nfs4_read_done_cb()
5147 rpc_restart_call_prepare(task); in nfs4_read_done_cb()
5152 if (task->tk_status > 0) in nfs4_read_done_cb()
5157 static bool nfs4_read_stateid_changed(struct rpc_task *task, in nfs4_read_stateid_changed() argument
5161 if (!nfs4_error_stateid_expired(task->tk_status) || in nfs4_read_stateid_changed()
5167 rpc_restart_call_prepare(task); in nfs4_read_stateid_changed()
5171 static int nfs4_read_done(struct rpc_task *task, struct nfs_pgio_header *hdr) in nfs4_read_done() argument
5176 if (!nfs4_sequence_done(task, &hdr->res.seq_res)) in nfs4_read_done()
5178 if (nfs4_read_stateid_changed(task, &hdr->args)) in nfs4_read_done()
5180 if (task->tk_status > 0) in nfs4_read_done()
5182 return hdr->pgio_done_cb ? hdr->pgio_done_cb(task, hdr) : in nfs4_read_done()
5183 nfs4_read_done_cb(task, hdr); in nfs4_read_done()
5196 static int nfs4_proc_pgio_rpc_prepare(struct rpc_task *task, in nfs4_proc_pgio_rpc_prepare() argument
5202 task)) in nfs4_proc_pgio_rpc_prepare()
5213 static int nfs4_write_done_cb(struct rpc_task *task, in nfs4_write_done_cb() argument
5218 trace_nfs4_write(hdr, task->tk_status); in nfs4_write_done_cb()
5219 if (task->tk_status < 0) { in nfs4_write_done_cb()
5225 task->tk_status = nfs4_async_handle_exception(task, in nfs4_write_done_cb()
5226 NFS_SERVER(inode), task->tk_status, in nfs4_write_done_cb()
5229 rpc_restart_call_prepare(task); in nfs4_write_done_cb()
5233 if (task->tk_status >= 0) { in nfs4_write_done_cb()
5240 static bool nfs4_write_stateid_changed(struct rpc_task *task, in nfs4_write_stateid_changed() argument
5244 if (!nfs4_error_stateid_expired(task->tk_status) || in nfs4_write_stateid_changed()
5250 rpc_restart_call_prepare(task); in nfs4_write_stateid_changed()
5254 static int nfs4_write_done(struct rpc_task *task, struct nfs_pgio_header *hdr) in nfs4_write_done() argument
5256 if (!nfs4_sequence_done(task, &hdr->res.seq_res)) in nfs4_write_done()
5258 if (nfs4_write_stateid_changed(task, &hdr->args)) in nfs4_write_done()
5260 return hdr->pgio_done_cb ? hdr->pgio_done_cb(task, hdr) : in nfs4_write_done()
5261 nfs4_write_done_cb(task, hdr); in nfs4_write_done()
5298 static void nfs4_proc_commit_rpc_prepare(struct rpc_task *task, struct nfs_commit_data *data) in nfs4_proc_commit_rpc_prepare() argument
5303 task); in nfs4_proc_commit_rpc_prepare()
5306 static int nfs4_commit_done_cb(struct rpc_task *task, struct nfs_commit_data *data) in nfs4_commit_done_cb() argument
5310 trace_nfs4_commit(data, task->tk_status); in nfs4_commit_done_cb()
5311 if (nfs4_async_handle_error(task, NFS_SERVER(inode), in nfs4_commit_done_cb()
5313 rpc_restart_call_prepare(task); in nfs4_commit_done_cb()
5319 static int nfs4_commit_done(struct rpc_task *task, struct nfs_commit_data *data) in nfs4_commit_done() argument
5321 if (!nfs4_sequence_done(task, &data->res.seq_res)) in nfs4_commit_done()
5323 return data->commit_done_cb(task, data); in nfs4_commit_done()
5393 static void nfs4_renew_done(struct rpc_task *task, void *calldata) in nfs4_renew_done() argument
5399 trace_nfs4_renew_async(clp, task->tk_status); in nfs4_renew_done()
5400 switch (task->tk_status) { in nfs4_renew_done()
5410 if (task->tk_status != NFS4ERR_CB_PATH_DOWN) { in nfs4_renew_done()
6042 static void nfs4_setclientid_done(struct rpc_task *task, void *calldata) in nfs4_setclientid_done() argument
6046 if (task->tk_status == 0) in nfs4_setclientid_done()
6047 sc->sc_cred = get_rpccred(task->tk_rqstp->rq_cred); in nfs4_setclientid_done()
6172 static void nfs4_delegreturn_done(struct rpc_task *task, void *calldata) in nfs4_delegreturn_done() argument
6180 if (!nfs4_sequence_done(task, &data->res.seq_res)) in nfs4_delegreturn_done()
6183 trace_nfs4_delegreturn_exit(&data->args, &data->res, task->tk_status); in nfs4_delegreturn_done()
6186 if (pnfs_roc_done(task, data->inode, in nfs4_delegreturn_done()
6192 switch (task->tk_status) { in nfs4_delegreturn_done()
6201 task->tk_msg.rpc_cred); in nfs4_delegreturn_done()
6205 task->tk_status = 0; in nfs4_delegreturn_done()
6210 task->tk_status = 0; in nfs4_delegreturn_done()
6220 task->tk_status = nfs4_async_handle_exception(task, in nfs4_delegreturn_done()
6221 data->res.server, task->tk_status, in nfs4_delegreturn_done()
6226 data->rpc_status = task->tk_status; in nfs4_delegreturn_done()
6229 task->tk_status = 0; in nfs4_delegreturn_done()
6230 rpc_restart_call_prepare(task); in nfs4_delegreturn_done()
6248 static void nfs4_delegreturn_prepare(struct rpc_task *task, void *data) in nfs4_delegreturn_prepare() argument
6255 if (!d_data->lr.roc && nfs4_wait_on_layoutreturn(d_data->inode, task)) { in nfs4_delegreturn_prepare()
6256 nfs4_sequence_done(task, &d_data->res.seq_res); in nfs4_delegreturn_prepare()
6269 task); in nfs4_delegreturn_prepare()
6282 struct rpc_task *task; in _nfs4_proc_delegreturn() local
6331 task = rpc_run_task(&task_setup_data); in _nfs4_proc_delegreturn()
6332 if (IS_ERR(task)) in _nfs4_proc_delegreturn()
6333 return PTR_ERR(task); in _nfs4_proc_delegreturn()
6336 status = rpc_wait_for_completion_task(task); in _nfs4_proc_delegreturn()
6341 rpc_put_task(task); in _nfs4_proc_delegreturn()
6508 static void nfs4_locku_done(struct rpc_task *task, void *data) in nfs4_locku_done() argument
6516 if (!nfs4_sequence_done(task, &calldata->res.seq_res)) in nfs4_locku_done()
6518 switch (task->tk_status) { in nfs4_locku_done()
6530 task->tk_msg.rpc_cred); in nfs4_locku_done()
6536 rpc_restart_call_prepare(task); in nfs4_locku_done()
6541 rpc_restart_call_prepare(task); in nfs4_locku_done()
6544 task->tk_status = nfs4_async_handle_exception(task, in nfs4_locku_done()
6545 calldata->server, task->tk_status, in nfs4_locku_done()
6548 rpc_restart_call_prepare(task); in nfs4_locku_done()
6553 static void nfs4_locku_prepare(struct rpc_task *task, void *data) in nfs4_locku_prepare() argument
6558 nfs_async_iocounter_wait(task, calldata->l_ctx)) in nfs4_locku_prepare()
6561 if (nfs_wait_on_sequence(calldata->arg.seqid, task) != 0) in nfs4_locku_prepare()
6571 task) != 0) in nfs4_locku_prepare()
6575 task->tk_action = NULL; in nfs4_locku_prepare()
6577 nfs4_sequence_done(task, &calldata->res.seq_res); in nfs4_locku_prepare()
6634 struct rpc_task *task; in nfs4_proc_unlck() local
6664 task = nfs4_do_unlck(request, nfs_file_open_context(request->fl_file), lsp, seqid); in nfs4_proc_unlck()
6665 status = PTR_ERR(task); in nfs4_proc_unlck()
6666 if (IS_ERR(task)) in nfs4_proc_unlck()
6668 status = rpc_wait_for_completion_task(task); in nfs4_proc_unlck()
6669 rpc_put_task(task); in nfs4_proc_unlck()
6727 static void nfs4_lock_prepare(struct rpc_task *task, void *calldata) in nfs4_lock_prepare() argument
6733 if (nfs_wait_on_sequence(data->arg.lock_seqid, task) != 0) in nfs4_lock_prepare()
6737 if (nfs_wait_on_sequence(data->arg.open_seqid, task) != 0) { in nfs4_lock_prepare()
6751 task->tk_action = NULL; in nfs4_lock_prepare()
6758 task) == 0) in nfs4_lock_prepare()
6765 nfs4_sequence_done(task, &data->res.seq_res); in nfs4_lock_prepare()
6769 static void nfs4_lock_done(struct rpc_task *task, void *calldata) in nfs4_lock_done() argument
6776 if (!nfs4_sequence_done(task, &data->res.seq_res)) in nfs4_lock_done()
6779 data->rpc_status = task->tk_status; in nfs4_lock_done()
6780 switch (task->tk_status) { in nfs4_lock_done()
6813 rpc_restart_call_prepare(task); in nfs4_lock_done()
6824 struct rpc_task *task; in nfs4_lock_release() local
6825 task = nfs4_do_unlck(&data->fl, data->ctx, data->lsp, in nfs4_lock_release()
6827 if (!IS_ERR(task)) in nfs4_lock_release()
6828 rpc_put_task_async(task); in nfs4_lock_release()
6864 struct rpc_task *task; in _nfs4_do_setlk() local
6896 task = rpc_run_task(&task_setup_data); in _nfs4_do_setlk()
6897 if (IS_ERR(task)) in _nfs4_do_setlk()
6898 return PTR_ERR(task); in _nfs4_do_setlk()
6899 ret = rpc_wait_for_completion_task(task); in _nfs4_do_setlk()
6907 rpc_put_task(task); in _nfs4_do_setlk()
7055 struct task_struct *task; member
7082 wait->private = waiter->task; in nfs4_wake_lock_waiter()
7101 struct nfs4_lock_waiter waiter = { .task = current, in nfs4_retry_setlk()
7213 static void nfs4_release_lockowner_prepare(struct rpc_task *task, void *calldata) in nfs4_release_lockowner_prepare() argument
7218 &data->res.seq_res, task); in nfs4_release_lockowner_prepare()
7223 static void nfs4_release_lockowner_done(struct rpc_task *task, void *calldata) in nfs4_release_lockowner_done() argument
7228 nfs40_sequence_done(task, &data->res.seq_res); in nfs4_release_lockowner_done()
7230 switch (task->tk_status) { in nfs4_release_lockowner_done()
7240 if (nfs4_async_handle_error(task, server, in nfs4_release_lockowner_done()
7242 rpc_restart_call_prepare(task); in nfs4_release_lockowner_done()
7834 nfs4_bind_one_conn_to_session_done(struct rpc_task *task, void *calldata) in nfs4_bind_one_conn_to_session_done() argument
7836 struct nfs41_bind_conn_to_session_args *args = task->tk_msg.rpc_argp; in nfs4_bind_one_conn_to_session_done()
7839 switch (task->tk_status) { in nfs4_bind_one_conn_to_session_done()
7843 task->tk_status); in nfs4_bind_one_conn_to_session_done()
7883 struct rpc_task *task; in nfs4_proc_bind_one_conn_to_session() local
7893 task = rpc_run_task(&task_setup_data); in nfs4_proc_bind_one_conn_to_session()
7894 if (!IS_ERR(task)) { in nfs4_proc_bind_one_conn_to_session()
7895 status = task->tk_status; in nfs4_proc_bind_one_conn_to_session()
7896 rpc_put_task(task); in nfs4_proc_bind_one_conn_to_session()
7898 status = PTR_ERR(task); in nfs4_proc_bind_one_conn_to_session()
8201 struct rpc_task *task; in _nfs4_proc_exchange_id() local
8206 task = nfs4_run_exchange_id(clp, cred, sp4_how, NULL); in _nfs4_proc_exchange_id()
8207 if (IS_ERR(task)) in _nfs4_proc_exchange_id()
8208 return PTR_ERR(task); in _nfs4_proc_exchange_id()
8210 argp = task->tk_msg.rpc_argp; in _nfs4_proc_exchange_id()
8211 resp = task->tk_msg.rpc_resp; in _nfs4_proc_exchange_id()
8212 status = task->tk_status; in _nfs4_proc_exchange_id()
8249 rpc_put_task(task); in _nfs4_proc_exchange_id()
8301 struct rpc_task *task; in nfs4_test_session_trunk() local
8312 task = nfs4_run_exchange_id(adata->clp, adata->cred, sp4_how, xprt); in nfs4_test_session_trunk()
8313 if (IS_ERR(task)) in nfs4_test_session_trunk()
8316 status = task->tk_status; in nfs4_test_session_trunk()
8319 task->tk_msg.rpc_resp, xprt); in nfs4_test_session_trunk()
8324 rpc_put_task(task); in nfs4_test_session_trunk()
8398 static void nfs4_get_lease_time_prepare(struct rpc_task *task, in nfs4_get_lease_time_prepare() argument
8410 task); in nfs4_get_lease_time_prepare()
8418 static void nfs4_get_lease_time_done(struct rpc_task *task, void *calldata) in nfs4_get_lease_time_done() argument
8424 if (!nfs4_sequence_done(task, &data->res->lr_seq_res)) in nfs4_get_lease_time_done()
8426 switch (task->tk_status) { in nfs4_get_lease_time_done()
8429 dprintk("%s Retry: tk_status %d\n", __func__, task->tk_status); in nfs4_get_lease_time_done()
8430 rpc_delay(task, NFS4_POLL_RETRY_MIN); in nfs4_get_lease_time_done()
8431 task->tk_status = 0; in nfs4_get_lease_time_done()
8434 rpc_restart_call_prepare(task); in nfs4_get_lease_time_done()
8725 static int nfs41_sequence_handle_errors(struct rpc_task *task, struct nfs_client *clp) in nfs41_sequence_handle_errors() argument
8727 switch(task->tk_status) { in nfs41_sequence_handle_errors()
8729 rpc_delay(task, NFS4_POLL_RETRY_MAX); in nfs41_sequence_handle_errors()
8737 static void nfs41_sequence_call_done(struct rpc_task *task, void *data) in nfs41_sequence_call_done() argument
8742 if (!nfs41_sequence_done(task, task->tk_msg.rpc_resp)) in nfs41_sequence_call_done()
8745 trace_nfs4_sequence(clp, task->tk_status); in nfs41_sequence_call_done()
8746 if (task->tk_status < 0) { in nfs41_sequence_call_done()
8747 dprintk("%s ERROR %d\n", __func__, task->tk_status); in nfs41_sequence_call_done()
8751 if (nfs41_sequence_handle_errors(task, clp) == -EAGAIN) { in nfs41_sequence_call_done()
8752 rpc_restart_call_prepare(task); in nfs41_sequence_call_done()
8756 dprintk("%s rpc_cred %p\n", __func__, task->tk_msg.rpc_cred); in nfs41_sequence_call_done()
8761 static void nfs41_sequence_prepare(struct rpc_task *task, void *data) in nfs41_sequence_prepare() argument
8768 args = task->tk_msg.rpc_argp; in nfs41_sequence_prepare()
8769 res = task->tk_msg.rpc_resp; in nfs41_sequence_prepare()
8771 nfs4_setup_sequence(clp, args, res, task); in nfs41_sequence_prepare()
8826 struct rpc_task *task; in nfs41_proc_async_sequence() local
8831 task = _nfs41_proc_sequence(clp, cred, NULL, false); in nfs41_proc_async_sequence()
8832 if (IS_ERR(task)) in nfs41_proc_async_sequence()
8833 ret = PTR_ERR(task); in nfs41_proc_async_sequence()
8835 rpc_put_task_async(task); in nfs41_proc_async_sequence()
8842 struct rpc_task *task; in nfs4_proc_sequence() local
8845 task = _nfs41_proc_sequence(clp, cred, NULL, true); in nfs4_proc_sequence()
8846 if (IS_ERR(task)) { in nfs4_proc_sequence()
8847 ret = PTR_ERR(task); in nfs4_proc_sequence()
8850 ret = rpc_wait_for_completion_task(task); in nfs4_proc_sequence()
8852 ret = task->tk_status; in nfs4_proc_sequence()
8853 rpc_put_task(task); in nfs4_proc_sequence()
8865 static void nfs4_reclaim_complete_prepare(struct rpc_task *task, void *data) in nfs4_reclaim_complete_prepare() argument
8872 task); in nfs4_reclaim_complete_prepare()
8875 static int nfs41_reclaim_complete_handle_errors(struct rpc_task *task, struct nfs_client *clp) in nfs41_reclaim_complete_handle_errors() argument
8877 switch(task->tk_status) { in nfs41_reclaim_complete_handle_errors()
8885 rpc_delay(task, NFS4_POLL_RETRY_MAX); in nfs41_reclaim_complete_handle_errors()
8899 static void nfs4_reclaim_complete_done(struct rpc_task *task, void *data) in nfs4_reclaim_complete_done() argument
8906 if (!nfs41_sequence_done(task, res)) in nfs4_reclaim_complete_done()
8909 trace_nfs4_reclaim_complete(clp, task->tk_status); in nfs4_reclaim_complete_done()
8910 if (nfs41_reclaim_complete_handle_errors(task, clp) == -EAGAIN) { in nfs4_reclaim_complete_done()
8911 rpc_restart_call_prepare(task); in nfs4_reclaim_complete_done()
8967 nfs4_layoutget_prepare(struct rpc_task *task, void *calldata) in nfs4_layoutget_prepare() argument
8974 &lgp->res.seq_res, task); in nfs4_layoutget_prepare()
8978 static void nfs4_layoutget_done(struct rpc_task *task, void *calldata) in nfs4_layoutget_done() argument
8983 nfs41_sequence_process(task, &lgp->res.seq_res); in nfs4_layoutget_done()
8988 nfs4_layoutget_handle_exception(struct rpc_task *task, in nfs4_layoutget_handle_exception() argument
8994 int nfs4err = task->tk_status; in nfs4_layoutget_handle_exception()
8998 dprintk("--> %s tk_status => %d\n", __func__, -task->tk_status); in nfs4_layoutget_handle_exception()
9105 struct rpc_task *task; in nfs4_proc_layoutget() local
9133 task = rpc_run_task(&task_setup_data); in nfs4_proc_layoutget()
9134 if (IS_ERR(task)) in nfs4_proc_layoutget()
9135 return ERR_CAST(task); in nfs4_proc_layoutget()
9136 status = rpc_wait_for_completion_task(task); in nfs4_proc_layoutget()
9140 if (task->tk_status < 0) { in nfs4_proc_layoutget()
9141 status = nfs4_layoutget_handle_exception(task, lgp, &exception); in nfs4_proc_layoutget()
9155 rpc_put_task(task); in nfs4_proc_layoutget()
9163 nfs4_layoutreturn_prepare(struct rpc_task *task, void *calldata) in nfs4_layoutreturn_prepare() argument
9171 task); in nfs4_layoutreturn_prepare()
9173 rpc_exit(task, 0); in nfs4_layoutreturn_prepare()
9176 static void nfs4_layoutreturn_done(struct rpc_task *task, void *calldata) in nfs4_layoutreturn_done() argument
9183 if (!nfs41_sequence_process(task, &lrp->res.seq_res)) in nfs4_layoutreturn_done()
9190 if (task->tk_rpc_status != 0 && RPC_WAS_SENT(task)) { in nfs4_layoutreturn_done()
9196 switch (task->tk_status) { in nfs4_layoutreturn_done()
9204 task->tk_status = 0; in nfs4_layoutreturn_done()
9209 if (nfs4_async_handle_error(task, server, NULL, NULL) != -EAGAIN) in nfs4_layoutreturn_done()
9216 task->tk_status = 0; in nfs4_layoutreturn_done()
9218 rpc_restart_call_prepare(task); in nfs4_layoutreturn_done()
9246 struct rpc_task *task; in nfs4_proc_layoutreturn() local
9275 task = rpc_run_task(&task_setup_data); in nfs4_proc_layoutreturn()
9276 if (IS_ERR(task)) in nfs4_proc_layoutreturn()
9277 return PTR_ERR(task); in nfs4_proc_layoutreturn()
9279 status = task->tk_status; in nfs4_proc_layoutreturn()
9282 rpc_put_task(task); in nfs4_proc_layoutreturn()
9335 static void nfs4_layoutcommit_prepare(struct rpc_task *task, void *calldata) in nfs4_layoutcommit_prepare() argument
9343 task); in nfs4_layoutcommit_prepare()
9347 nfs4_layoutcommit_done(struct rpc_task *task, void *calldata) in nfs4_layoutcommit_done() argument
9352 if (!nfs41_sequence_done(task, &data->res.seq_res)) in nfs4_layoutcommit_done()
9355 switch (task->tk_status) { /* Just ignore these failures */ in nfs4_layoutcommit_done()
9360 task->tk_status = 0; in nfs4_layoutcommit_done()
9364 if (nfs4_async_handle_error(task, server, NULL, NULL) == -EAGAIN) { in nfs4_layoutcommit_done()
9365 rpc_restart_call_prepare(task); in nfs4_layoutcommit_done()
9399 .task = &data->task, in nfs4_proc_layoutcommit()
9405 struct rpc_task *task; in nfs4_proc_layoutcommit() local
9422 task = rpc_run_task(&task_setup_data); in nfs4_proc_layoutcommit()
9423 if (IS_ERR(task)) in nfs4_proc_layoutcommit()
9424 return PTR_ERR(task); in nfs4_proc_layoutcommit()
9426 status = task->tk_status; in nfs4_proc_layoutcommit()
9429 rpc_put_task(task); in nfs4_proc_layoutcommit()
9677 static void nfs41_free_stateid_prepare(struct rpc_task *task, void *calldata) in nfs41_free_stateid_prepare() argument
9683 task); in nfs41_free_stateid_prepare()
9686 static void nfs41_free_stateid_done(struct rpc_task *task, void *calldata) in nfs41_free_stateid_done() argument
9690 nfs41_sequence_done(task, &data->res.seq_res); in nfs41_free_stateid_done()
9692 switch (task->tk_status) { in nfs41_free_stateid_done()
9694 if (nfs4_async_handle_error(task, data->server, NULL, NULL) == -EAGAIN) in nfs41_free_stateid_done()
9695 rpc_restart_call_prepare(task); in nfs41_free_stateid_done()
9736 struct rpc_task *task; in nfs41_free_stateid() local
9753 task = rpc_run_task(&task_setup); in nfs41_free_stateid()
9754 if (IS_ERR(task)) in nfs41_free_stateid()
9755 return PTR_ERR(task); in nfs41_free_stateid()
9756 rpc_put_task(task); in nfs41_free_stateid()