1 /* -*- mode: c; c-basic-offset: 8; indent-tabs-mode: nil; -*-
2 * vim:expandtab:shiftwidth=8:tabstop=8:
8 #define LUSTRE_HA_NAME "ptlrpc"
12 struct ptlrpc_connection;
14 /* recovd_phase values */
16 #define RECOVD_PREPARING 1
17 #define RECOVD_PREPARED 2
18 #define RECOVD_RECOVERING 3
19 #define RECOVD_RECOVERED 4
21 /* recovd_flags bits */
22 #define RECOVD_STOPPING 1 /* how cleanup tells recovd to quit */
23 #define RECOVD_STOPPED 2 /* after recovd has stopped */
24 #define RECOVD_FAILED 4 /* the current recovery has failed */
26 #define PTLRPC_RECOVD_PHASE_PREPARE 1
27 #define PTLRPC_RECOVD_PHASE_RECOVER 2
28 #define PTLRPC_RECOVD_PHASE_FAILURE 3
30 typedef int (*ptlrpc_recovery_cb_t)(struct recovd_data *, int);
33 struct list_head rd_managed_chain;
34 ptlrpc_recovery_cb_t rd_recover;
35 struct recovd_obd *rd_recovd;
38 void recovd_conn_fail(struct ptlrpc_connection *conn);
39 void recovd_conn_manage(struct ptlrpc_connection *conn, struct recovd_obd *mgr,
40 ptlrpc_recovery_cb_t recover);
41 void recovd_conn_fixed(struct ptlrpc_connection *conn);
42 int recovd_setup(struct recovd_obd *mgr);
43 int recovd_cleanup(struct recovd_obd *mgr);
45 extern struct recovd_obd *ptlrpc_recovd;