Whamcloud - gitweb
Replace all of the "char[37]" uses with obd_uuid_t.
[fs/lustre-release.git] / lustre / include / linux / lustre_ha.h
1 /* -*- mode: c; c-basic-offset: 8; indent-tabs-mode: nil; -*-
2  * vim:expandtab:shiftwidth=8:tabstop=8:
3  */
4
5 #ifndef _LUSTRE_HA_H
6 #define _LUSTRE_HA_H
7
8 #define LUSTRE_HA_NAME "ptlrpc"
9
10 struct recovd_data;
11 struct recovd_obd;
12 struct ptlrpc_connection;
13
14 /* recovd_phase values */
15 #define RECOVD_IDLE              0
16 #define RECOVD_PREPARING         1
17 #define RECOVD_PREPARED          2
18 #define RECOVD_RECOVERING        3
19 #define RECOVD_RECOVERED         4
20
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 */
25
26 #define PTLRPC_RECOVD_PHASE_PREPARE  1
27 #define PTLRPC_RECOVD_PHASE_RECOVER  2
28 #define PTLRPC_RECOVD_PHASE_FAILURE  3
29
30 typedef int (*ptlrpc_recovery_cb_t)(struct recovd_data *, int);
31
32 struct recovd_data {
33         struct list_head     rd_managed_chain;
34         ptlrpc_recovery_cb_t rd_recover;
35         struct recovd_obd   *rd_recovd;
36 };
37
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);
44
45 extern struct recovd_obd *ptlrpc_recovd;
46
47 int ll_recover(struct recovd_data *rd, int phase);
48
49 #endif