Blame view

fs/ceph/mdsmap.h 1.41 KB
2f2dc0534   Sage Weil   ceph: MDS client
1
2
3
4
5
6
7
8
9
10
11
  #ifndef _FS_CEPH_MDSMAP_H
  #define _FS_CEPH_MDSMAP_H
  
  #include "types.h"
  
  /*
   * mds map - describe servers in the mds cluster.
   *
   * we limit fields to those the client actually xcares about
   */
  struct ceph_mds_info {
94045e115   Sage Weil   ceph: decode upda...
12
  	u64 global_id;
2f2dc0534   Sage Weil   ceph: MDS client
13
14
15
  	struct ceph_entity_addr addr;
  	s32 state;
  	int num_export_targets;
0deb01c99   Sage Weil   ceph: track laggy...
16
  	bool laggy;
2f2dc0534   Sage Weil   ceph: MDS client
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
  	u32 *export_targets;
  };
  
  struct ceph_mdsmap {
  	u32 m_epoch, m_client_epoch, m_last_failure;
  	u32 m_root;
  	u32 m_session_timeout;          /* seconds */
  	u32 m_session_autoclose;        /* seconds */
  	u64 m_max_file_size;
  	u32 m_max_mds;                  /* size of m_addr, m_state arrays */
  	struct ceph_mds_info *m_info;
  
  	/* which object pools file data can be stored in */
  	int m_num_data_pg_pools;
  	u32 *m_data_pg_pools;
  	u32 m_cas_pg_pool;
  };
  
  static inline struct ceph_entity_addr *
  ceph_mdsmap_get_addr(struct ceph_mdsmap *m, int w)
  {
  	if (w >= m->m_max_mds)
  		return NULL;
  	return &m->m_info[w].addr;
  }
  
  static inline int ceph_mdsmap_get_state(struct ceph_mdsmap *m, int w)
  {
  	BUG_ON(w < 0);
  	if (w >= m->m_max_mds)
  		return CEPH_MDS_STATE_DNE;
  	return m->m_info[w].state;
  }
0deb01c99   Sage Weil   ceph: track laggy...
50
51
52
53
54
55
  static inline bool ceph_mdsmap_is_laggy(struct ceph_mdsmap *m, int w)
  {
  	if (w >= 0 && w < m->m_max_mds)
  		return m->m_info[w].laggy;
  	return false;
  }
2f2dc0534   Sage Weil   ceph: MDS client
56
57
58
59
60
  extern int ceph_mdsmap_get_random_mds(struct ceph_mdsmap *m);
  extern struct ceph_mdsmap *ceph_mdsmap_decode(void **p, void *end);
  extern void ceph_mdsmap_destroy(struct ceph_mdsmap *m);
  
  #endif