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 /* rd_phase/rd_next_phase values */
17 #define RD_PREPARING 2
19 #define RD_RECOVERING 4
20 #define RD_RECOVERED 5
23 /* recovd_state values */
24 #define RECOVD_READY 1
25 #define RECOVD_STOPPING 2 /* how cleanup tells recovd to quit */
26 #define RECOVD_STOPPED 4 /* after recovd has stopped */
28 #define PTLRPC_RECOVD_PHASE_PREPARE 1
29 #define PTLRPC_RECOVD_PHASE_RECOVER 2
30 #define PTLRPC_RECOVD_PHASE_FAILURE 3
32 typedef int (*ptlrpc_recovery_cb_t)(struct recovd_data *, int);
35 struct list_head rd_managed_chain;
36 ptlrpc_recovery_cb_t rd_recover;
37 struct recovd_obd *rd_recovd;
43 void recovd_conn_fail(struct ptlrpc_connection *conn);
44 void recovd_conn_manage(struct ptlrpc_connection *conn, struct recovd_obd *mgr,
45 ptlrpc_recovery_cb_t recover);
46 void recovd_conn_fixed(struct ptlrpc_connection *conn);
47 int recovd_setup(struct recovd_obd *mgr);
48 int recovd_cleanup(struct recovd_obd *mgr);
50 extern struct recovd_obd *ptlrpc_recovd;
52 int ll_recover(struct recovd_data *rd, int phase);