• Home
  • Raw
  • Download

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()
438 cb->cb_seq_status = status; in decode_cb_sequence4resok()
447 struct nfsd4_callback *cb) in decode_cb_sequence4res() argument
451 if (cb->cb_clp->cl_minorversion == 0) in decode_cb_sequence4res()
454 status = decode_cb_op_status(xdr, OP_CB_SEQUENCE, &cb->cb_seq_status); in decode_cb_sequence4res()
455 if (unlikely(status || cb->cb_seq_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_clp->cl_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_seq_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_clp->cl_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_seq_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()
637 const struct nfsd4_callback *cb) in nfs4_xdr_enc_cb_notify_lock() argument
640 container_of(cb, struct nfsd4_blocked_lock, nbl_cb); in nfs4_xdr_enc_cb_notify_lock()
644 .minorversion = cb->cb_clp->cl_minorversion, in nfs4_xdr_enc_cb_notify_lock()
652 encode_cb_sequence4args(xdr, cb, &hdr); in nfs4_xdr_enc_cb_notify_lock()
665 struct nfsd4_callback *cb) in nfs4_xdr_dec_cb_notify_lock() argument
674 if (cb) { in nfs4_xdr_dec_cb_notify_lock()
675 status = decode_cb_sequence4res(xdr, cb); in nfs4_xdr_dec_cb_notify_lock()
676 if (unlikely(status || cb->cb_seq_status)) in nfs4_xdr_dec_cb_notify_lock()
679 return decode_cb_op_status(xdr, OP_CB_NOTIFY_LOCK, &cb->cb_status); in nfs4_xdr_dec_cb_notify_lock()
926 struct nfsd4_callback *cb = calldata; in nfsd4_cb_prepare() local
927 struct nfs4_client *clp = cb->cb_clp; in nfsd4_cb_prepare()
934 cb->cb_seq_status = 1; in nfsd4_cb_prepare()
935 cb->cb_status = 0; in nfsd4_cb_prepare()
943 static bool nfsd4_cb_sequence_done(struct rpc_task *task, struct nfsd4_callback *cb) in nfsd4_cb_sequence_done() argument
945 struct nfs4_client *clp = cb->cb_clp; in nfsd4_cb_sequence_done()
965 switch (cb->cb_seq_status) { in nfsd4_cb_sequence_done()
980 nfsd4_mark_cb_fault(cb->cb_clp, cb->cb_seq_status); in nfsd4_cb_sequence_done()
999 cb->cb_seq_status); in nfsd4_cb_sequence_done()
1017 cb->cb_need_restart = true; in nfsd4_cb_sequence_done()
1023 struct nfsd4_callback *cb = calldata; in nfsd4_cb_done() local
1024 struct nfs4_client *clp = cb->cb_clp; in nfsd4_cb_done()
1029 if (!nfsd4_cb_sequence_done(task, cb)) in nfsd4_cb_done()
1032 if (cb->cb_status) { in nfsd4_cb_done()
1034 task->tk_status = cb->cb_status; in nfsd4_cb_done()
1037 switch (cb->cb_ops->done(cb, task)) { in nfsd4_cb_done()
1055 struct nfsd4_callback *cb = calldata; in nfsd4_cb_release() local
1057 if (cb->cb_need_restart) in nfsd4_cb_release()
1058 nfsd4_run_cb(cb); in nfsd4_cb_release()
1060 cb->cb_ops->release(cb); in nfsd4_cb_release()
1111 static void nfsd4_process_cb_update(struct nfsd4_callback *cb) in nfsd4_process_cb_update() argument
1114 struct nfs4_client *clp = cb->cb_clp; in nfsd4_process_cb_update()
1142 memcpy(&conn, &cb->cb_clp->cl_cb_conn, sizeof(struct nfs4_cb_conn)); in nfsd4_process_cb_update()
1161 struct nfsd4_callback *cb = in nfsd4_run_cb_work() local
1163 struct nfs4_client *clp = cb->cb_clp; in nfsd4_run_cb_work()
1166 if (cb->cb_need_restart) { in nfsd4_run_cb_work()
1167 cb->cb_need_restart = false; in nfsd4_run_cb_work()
1169 if (cb->cb_ops && cb->cb_ops->prepare) in nfsd4_run_cb_work()
1170 cb->cb_ops->prepare(cb); in nfsd4_run_cb_work()
1174 nfsd4_process_cb_update(cb); in nfsd4_run_cb_work()
1179 if (cb->cb_ops && cb->cb_ops->release) in nfsd4_run_cb_work()
1180 cb->cb_ops->release(cb); in nfsd4_run_cb_work()
1187 if (!cb->cb_ops && clp->cl_minorversion) { in nfsd4_run_cb_work()
1192 cb->cb_msg.rpc_cred = clp->cl_cb_cred; in nfsd4_run_cb_work()
1193 rpc_call_async(clnt, &cb->cb_msg, RPC_TASK_SOFT | RPC_TASK_SOFTCONN, in nfsd4_run_cb_work()
1194 cb->cb_ops ? &nfsd4_cb_ops : &nfsd4_cb_probe_ops, cb); in nfsd4_run_cb_work()
1197 void nfsd4_init_cb(struct nfsd4_callback *cb, struct nfs4_client *clp, in nfsd4_init_cb() argument
1200 cb->cb_clp = clp; in nfsd4_init_cb()
1201 cb->cb_msg.rpc_proc = &nfs4_cb_procedures[op]; in nfsd4_init_cb()
1202 cb->cb_msg.rpc_argp = cb; in nfsd4_init_cb()
1203 cb->cb_msg.rpc_resp = cb; in nfsd4_init_cb()
1204 cb->cb_ops = ops; in nfsd4_init_cb()
1205 INIT_WORK(&cb->cb_work, nfsd4_run_cb_work); in nfsd4_init_cb()
1206 cb->cb_seq_status = 1; in nfsd4_init_cb()
1207 cb->cb_status = 0; in nfsd4_init_cb()
1208 cb->cb_need_restart = false; in nfsd4_init_cb()
1211 void nfsd4_run_cb(struct nfsd4_callback *cb) in nfsd4_run_cb() argument
1213 queue_work(callback_wq, &cb->cb_work); in nfsd4_run_cb()