Lines Matching refs:cb

352 				    const struct nfsd4_callback *cb,  in encode_cb_sequence4args()  argument
355 struct nfsd4_session *session = cb->cb_clp->cl_cb_session; in encode_cb_sequence4args()
396 struct nfsd4_callback *cb) in decode_cb_sequence4resok() argument
398 struct nfsd4_session *session = cb->cb_clp->cl_cb_session; in decode_cb_sequence4resok()
439 nfsd4_mark_cb_fault(cb->cb_clp, status); in decode_cb_sequence4resok()
447 struct nfsd4_callback *cb) in decode_cb_sequence4res() argument
451 if (cb->cb_minorversion == 0) in decode_cb_sequence4res()
454 status = decode_cb_op_status(xdr, OP_CB_SEQUENCE, &cb->cb_status); in decode_cb_sequence4res()
455 if (unlikely(status || cb->cb_status)) in decode_cb_sequence4res()
458 return decode_cb_sequence4resok(xdr, cb); in decode_cb_sequence4res()
483 const struct nfsd4_callback *cb) in nfs4_xdr_enc_cb_recall() argument
485 const struct nfs4_delegation *dp = cb_to_delegation(cb); in nfs4_xdr_enc_cb_recall()
487 .ident = cb->cb_clp->cl_cb_ident, in nfs4_xdr_enc_cb_recall()
488 .minorversion = cb->cb_minorversion, in nfs4_xdr_enc_cb_recall()
492 encode_cb_sequence4args(xdr, cb, &hdr); in nfs4_xdr_enc_cb_recall()
518 struct nfsd4_callback *cb) in nfs4_xdr_dec_cb_recall() argument
527 if (cb != NULL) { in nfs4_xdr_dec_cb_recall()
528 status = decode_cb_sequence4res(xdr, cb); in nfs4_xdr_dec_cb_recall()
529 if (unlikely(status || cb->cb_status)) in nfs4_xdr_dec_cb_recall()
533 return decode_cb_op_status(xdr, OP_CB_RECALL, &cb->cb_status); in nfs4_xdr_dec_cb_recall()
591 const struct nfsd4_callback *cb) in nfs4_xdr_enc_cb_layout() argument
594 container_of(cb, struct nfs4_layout_stateid, ls_recall); in nfs4_xdr_enc_cb_layout()
597 .minorversion = cb->cb_minorversion, in nfs4_xdr_enc_cb_layout()
601 encode_cb_sequence4args(xdr, cb, &hdr); in nfs4_xdr_enc_cb_layout()
608 struct nfsd4_callback *cb) in nfs4_xdr_dec_cb_layout() argument
617 if (cb) { in nfs4_xdr_dec_cb_layout()
618 status = decode_cb_sequence4res(xdr, cb); in nfs4_xdr_dec_cb_layout()
619 if (unlikely(status || cb->cb_status)) in nfs4_xdr_dec_cb_layout()
622 return decode_cb_op_status(xdr, OP_CB_LAYOUTRECALL, &cb->cb_status); in nfs4_xdr_dec_cb_layout()
873 struct nfsd4_callback *cb = calldata; in nfsd4_cb_prepare() local
874 struct nfs4_client *clp = cb->cb_clp; in nfsd4_cb_prepare()
877 cb->cb_minorversion = minorversion; in nfsd4_cb_prepare()
887 struct nfsd4_callback *cb = calldata; in nfsd4_cb_done() local
888 struct nfs4_client *clp = cb->cb_clp; in nfsd4_cb_done()
914 cb->cb_need_restart = true; in nfsd4_cb_done()
918 if (cb->cb_status) { in nfsd4_cb_done()
920 task->tk_status = cb->cb_status; in nfsd4_cb_done()
923 switch (cb->cb_ops->done(cb, task)) { in nfsd4_cb_done()
941 struct nfsd4_callback *cb = calldata; in nfsd4_cb_release() local
943 if (cb->cb_need_restart) in nfsd4_cb_release()
944 nfsd4_run_cb(cb); in nfsd4_cb_release()
946 cb->cb_ops->release(cb); in nfsd4_cb_release()
997 static void nfsd4_process_cb_update(struct nfsd4_callback *cb) in nfsd4_process_cb_update() argument
1000 struct nfs4_client *clp = cb->cb_clp; in nfsd4_process_cb_update()
1028 memcpy(&conn, &cb->cb_clp->cl_cb_conn, sizeof(struct nfs4_cb_conn)); in nfsd4_process_cb_update()
1047 struct nfsd4_callback *cb = in nfsd4_run_cb_work() local
1049 struct nfs4_client *clp = cb->cb_clp; in nfsd4_run_cb_work()
1052 if (cb->cb_need_restart) { in nfsd4_run_cb_work()
1053 cb->cb_need_restart = false; in nfsd4_run_cb_work()
1055 if (cb->cb_ops && cb->cb_ops->prepare) in nfsd4_run_cb_work()
1056 cb->cb_ops->prepare(cb); in nfsd4_run_cb_work()
1060 nfsd4_process_cb_update(cb); in nfsd4_run_cb_work()
1065 if (cb->cb_ops && cb->cb_ops->release) in nfsd4_run_cb_work()
1066 cb->cb_ops->release(cb); in nfsd4_run_cb_work()
1073 if (!cb->cb_ops && clp->cl_minorversion) { in nfsd4_run_cb_work()
1078 cb->cb_msg.rpc_cred = clp->cl_cb_cred; in nfsd4_run_cb_work()
1079 rpc_call_async(clnt, &cb->cb_msg, RPC_TASK_SOFT | RPC_TASK_SOFTCONN, in nfsd4_run_cb_work()
1080 cb->cb_ops ? &nfsd4_cb_ops : &nfsd4_cb_probe_ops, cb); in nfsd4_run_cb_work()
1083 void nfsd4_init_cb(struct nfsd4_callback *cb, struct nfs4_client *clp, in nfsd4_init_cb() argument
1086 cb->cb_clp = clp; in nfsd4_init_cb()
1087 cb->cb_msg.rpc_proc = &nfs4_cb_procedures[op]; in nfsd4_init_cb()
1088 cb->cb_msg.rpc_argp = cb; in nfsd4_init_cb()
1089 cb->cb_msg.rpc_resp = cb; in nfsd4_init_cb()
1090 cb->cb_ops = ops; in nfsd4_init_cb()
1091 INIT_WORK(&cb->cb_work, nfsd4_run_cb_work); in nfsd4_init_cb()
1092 cb->cb_status = 0; in nfsd4_init_cb()
1093 cb->cb_need_restart = false; in nfsd4_init_cb()
1096 void nfsd4_run_cb(struct nfsd4_callback *cb) in nfsd4_run_cb() argument
1098 queue_work(callback_wq, &cb->cb_work); in nfsd4_run_cb()