server_start_targets
lustre_start_simple
do_lcfg //for LCFG_ATTACH
class_attach
do_lcfg //for LCFG_SETUP
class_setup
class_attach
class_newdev
class_setup
obd_setup
lov_setup
obd_llog_init
lov_llog_init
llog_setup //LLOG_MDS_OST_ORIG_CTXT, lov_mds_ost_orig_logops
lov_llog_origin_connect
llog_connect
llog_origin_connect //send LLOG_ORIGIN_CONNECT RPC
=> llog_handle_connect
llog_setup //LLOG_SIZE_REPL_CTXT, lov_size_repl_logops
//循环调用
obd_llog_init
osc_llog_init
llog_setup //LLOG_MDS_OST_ORIG_CTXT, osc_mds_ost_orig_logops
llog_obd_origin_setup
llog_create
llog_process
llog_setup //LLOG_SIZE_REPL_CTXT, osc_size_repl_logops
mds_finish_transno
lustre_msg_get_transno
fsfilt_add_journal_cb
fsfilt_write_record
mds_lov_write_objids
fsfilt_commit
mdc_unlink
mdc_reint
## XID
oti->oti_xid = req->rq_xid;
ptlrpc_prep_req_pool
request->rq_xid = ptlrpc_next_xid();
## transaction
oti_init
target_send_reply
## replay
struct obd_import
struct list_head imp_replay_list;
struct list_head imp_sending_list;
struct list_head imp_delayed_list;
ptlrpc_queue_wait
after_reply
lustre_msg_set_transno
ptlrpc_retain_replayable_request
lustre_msg_get_last_committed
ptlrpc_import_recovery_state_machine
ptlrpc_replay_next
ptlrpc_replay_req
## import req 状态机
enum lustre_imp_state {
LUSTRE_IMP_CLOSED = 1,
LUSTRE_IMP_NEW = 2,
LUSTRE_IMP_DISCON = 3,
LUSTRE_IMP_CONNECTING = 4,
LUSTRE_IMP_REPLAY = 5,
LUSTRE_IMP_REPLAY_LOCKS = 6,
LUSTRE_IMP_REPLAY_WAIT = 7,
LUSTRE_IMP_RECOVER = 8,
LUSTRE_IMP_FULL = 9,
LUSTRE_IMP_EVICTED = 10,
};
2021-05-07
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...