Motr  M0
pool.h
Go to the documentation of this file.
1 /* -*- C -*- */
2 /*
3  * Copyright (c) 2012-2020 Seagate Technology LLC and/or its Affiliates
4  *
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  * http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  *
17  * For any questions about this software or licensing,
18  * please email opensource@seagate.com or cortx-questions@seagate.com.
19  *
20  */
21 
22 
23 #pragma once
24 
25 #ifndef __MOTR_POOL_POOL_H__
26 #define __MOTR_POOL_POOL_H__
27 
28 #include "format/format.h" /* m0_format_header */
29 #include "lib/chan.h" /* m0_clink */
30 #include "lib/rwlock.h"
31 #include "lib/tlist.h"
32 #include "lib/tlist_xc.h"
33 #include "fd/fd.h" /* m0_fd_tile */
34 #include "reqh/reqh_service.h" /* m0_reqh_service_ctx */
35 #include "conf/obj.h"
36 #include "layout/pdclust.h" /* m0_pdclust_attr */
37 #include "pool/pool_machine.h"
38 #include "pool/pool_machine_xc.h"
39 #include "pool/policy.h" /* m0_pver_policy_code */
40 
47 /* import */
48 struct m0_io_req;
49 
50 /* export */
51 struct m0_pool;
52 struct m0_pool_spare_usage;
54 
55 enum {
61 };
62 
63 enum map_type {
64  IOS = 1,
66 };
67 
68 enum {
69  PV_SNS_DIRTY = 1 << 0,
70 };
71 
75 
78 };
79 
80 struct m0_pool {
81  struct m0_fid po_id;
82 
84  struct m0_tl po_vers;
85 
88 
94 
97  uint64_t po_magic;
98 };
99 
113  struct m0_fid pv_id;
114 
117 
120 
123 
125  uint32_t pv_nr_nodes;
126 
128  struct m0_pool *pv_pool;
129 
131 
134 
135  /* The fault tolerant tile associated with the pool version. */
137 
138  /* Failure domains tree associated with the pool version. */
142 
143  uint32_t pv_sns_flags;
144 
150 
152  uint64_t pv_magic;
153 };
154 
162  struct m0_tl pc_pools;
163 
165 
167 
173 
181 
184 
191 
196  uint32_t pc_nr_devices;
197 
208 
215 
222 
238 };
239 
240 M0_TL_DESCR_DECLARE(pools_common_svc_ctx, M0_EXTERN);
241 M0_TL_DECLARE(pools_common_svc_ctx, M0_EXTERN, struct m0_reqh_service_ctx);
242 
243 M0_TL_DESCR_DECLARE(pool_version, M0_EXTERN);
244 M0_TL_DECLARE(pool_version, M0_EXTERN, struct m0_pool_version);
245 
246 M0_TL_DESCR_DECLARE(pools, M0_EXTERN);
247 M0_TL_DECLARE(pools, M0_EXTERN, struct m0_pool);
248 
249 M0_TL_DESCR_DECLARE(pool_failed_devs, M0_EXTERN);
250 M0_TL_DECLARE(pool_failed_devs, M0_EXTERN, struct m0_pooldev);
251 
252 M0_INTERNAL int m0_pools_common_init(struct m0_pools_common *pc,
253  struct m0_rpc_machine *rmach);
254 
255 /* This internal API is only used by pool implementation and m0t1fs UT. */
256 M0_INTERNAL int m0__pools_common_init(struct m0_pools_common *pc,
257  struct m0_rpc_machine *rmach,
258  struct m0_conf_root *root);
259 
260 M0_INTERNAL void m0_pools_common_fini(struct m0_pools_common *pc);
261 
262 M0_INTERNAL bool m0_pools_common_conf_ready_async_cb(struct m0_clink *clink);
263 
264 M0_INTERNAL int m0_pools_service_ctx_create(struct m0_pools_common *pc);
265 M0_INTERNAL void m0_pools_service_ctx_destroy(struct m0_pools_common *pc);
266 
267 M0_INTERNAL int m0_pool_init(struct m0_pool *pool, const struct m0_fid *id,
268  enum m0_pver_policy_code pver_policy);
269 M0_INTERNAL void m0_pool_fini(struct m0_pool *pool);
270 
274 M0_INTERNAL int m0_pool_version_init_by_conf(struct m0_pool_version *pv,
275  struct m0_conf_pver *pver,
276  struct m0_pool *pool,
277  struct m0_pools_common *pc);
278 
279 M0_INTERNAL int m0_pool_version_init(struct m0_pool_version *pv,
280  const struct m0_fid *id,
281  struct m0_pool *pool,
282  uint32_t pool_width,
283  uint32_t nodes,
284  uint32_t nr_data,
285  uint32_t nr_failures,
286  uint32_t nr_spare);
287 
296 M0_INTERNAL int m0_pool_version_get(struct m0_pools_common *pc,
297  const struct m0_fid *pool,
298  struct m0_pool_version **pv);
299 
300 M0_INTERNAL struct m0_pool_version *
302  const struct m0_fid *id);
303 
304 M0_INTERNAL struct m0_pool_version *
305 m0_pool_version_find(struct m0_pools_common *pc, const struct m0_fid *id);
306 
307 M0_INTERNAL void m0_pool_version_fini(struct m0_pool_version *pv);
308 
309 M0_INTERNAL int m0_pool_versions_init_by_conf(struct m0_pool *pool,
310  struct m0_pools_common *pc,
311  const struct m0_conf_pool *cp,
312  struct m0_sm_group *sm_grp,
313  struct m0_dtm *dtm);
314 
315 M0_INTERNAL void m0_pool_versions_fini(struct m0_pool *pool);
316 
317 M0_INTERNAL void m0_pool_versions_stale_mark(struct m0_pools_common *pc,
318  struct m0_confc_update_state *s);
319 M0_INTERNAL struct m0_pool_version *
321 
322 M0_INTERNAL struct m0_pool_version *
324 
325 M0_INTERNAL int m0_pools_init(void);
326 M0_INTERNAL void m0_pools_fini(void);
327 
334 M0_INTERNAL int m0_pools_setup(struct m0_pools_common *pc,
335  const struct m0_fid *profile,
336  struct m0_sm_group *sm_grp,
337  struct m0_dtm *dtm);
338 
339 M0_INTERNAL void m0_pools_destroy(struct m0_pools_common *pc);
340 
341 M0_INTERNAL int m0_pool_versions_setup(struct m0_pools_common *pc);
342 
348 M0_INTERNAL int m0_pool_version_append(struct m0_pools_common *pc,
349  struct m0_conf_pver *pver,
350  struct m0_pool_version **pv);
351 
352 M0_INTERNAL void m0_pool_versions_destroy(struct m0_pools_common *pc);
353 
354 M0_INTERNAL struct m0_pool_version *
355 m0_pool_clean_pver_find(const struct m0_pool *pool);
356 
358 M0_INTERNAL uint64_t
359 m0_pool_version2layout_id(const struct m0_fid *pv_fid, uint64_t lid);
360 
365 M0_INTERNAL struct m0_rpc_session *
367 
368 M0_INTERNAL struct m0_reqh_service_ctx *
370  const struct m0_fid *id,
372 M0_INTERNAL void
374 
375 M0_INTERNAL int m0_dix_pool_version_get(struct m0_pools_common *pc,
376  struct m0_pool_version **pv);
377 
390 struct m0_poolnode {
392  uint32_t pn_state M0_XCA_FENUM(m0_pool_nd_state);
393  char pn_pad[4];
395  struct m0_fid pn_id;
399  uint32_t pn_index;
406 };
407 M0_BASSERT(sizeof(enum m0_pool_nd_state) == 4);
411 
412  /* future versions, uncomment and update M0_POOLNODE_FORMAT_VERSION */
413  /*M0_POOLNODE_FORMAT_VERSION_2,*/
414  /*M0_POOLNODE_FORMAT_VERSION_3,*/
415 
418 };
419 
421 struct m0_pooldev {
425  uint32_t pd_state M0_XCA_FENUM(m0_pool_nd_state);
426  char pd_pad[4];
428  struct m0_fid pd_id;
432  uint32_t pd_index;
437  uint32_t pd_sdev_idx;
438 
448 
454  uint64_t pd_magic;
455 
457 };
458 
461 
462  /* future versions, uncomment and update M0_POOLDEV_FORMAT_VERSION */
463  /*M0_POOLDEV_FORMAT_VERSION_2,*/
464  /*M0_POOLDEV_FORMAT_VERSION_3,*/
465 
468 };
469 
481 
483  uint32_t psu_device_state M0_XCA_FENUM(m0_pool_nd_state);
485 } M0_XCA_RECORD M0_XCA_DOMAIN(be);
486 
489 
490  /* future versions, uncomment and update M0_POOL_SPARE_USAGE_FORMAT_VERSION */
491  /*M0_POOL_SPARE_USAGE_FORMAT_VERSION_2,*/
492  /*M0_POOL_SPARE_USAGE_FORMAT_VERSION_3,*/
493 
496 };
497 
513 struct m0_rlimit {
518 };
519 
530  /* struct m0_persistent_sm ps_mach; */
532 };
533 
534 M0_INTERNAL int m0_poolserver_init(struct m0_poolserver *srv);
535 M0_INTERNAL void m0_poolserver_fini(struct m0_poolserver *srv);
536 M0_INTERNAL int m0_poolserver_reset(struct m0_poolserver *srv);
537 M0_INTERNAL int m0_poolserver_on(struct m0_poolserver *srv);
538 M0_INTERNAL int m0_poolserver_off(struct m0_poolserver *srv);
539 M0_INTERNAL int m0_poolserver_io_req(struct m0_poolserver *srv,
540  struct m0_io_req *req);
541 M0_INTERNAL int m0_poolserver_device_join(struct m0_poolserver *srv,
542  struct m0_pooldev *dev);
543 M0_INTERNAL int m0_poolserver_device_leave(struct m0_poolserver *srv,
544  struct m0_pooldev *dev);
545 
550 M0_INTERNAL int m0_pool_device_reopen(struct m0_poolmach *pm,
551  struct m0_reqh *rs_reqh);
552 
557 M0_INTERNAL int m0_pool_device_state_update(struct m0_reqh *reqh,
558  struct m0_be_tx *tx,
559  struct m0_fid *dev_fid,
560  enum m0_pool_nd_state new_state);
561 
575 
581 
587 
589 };
590 
595 M0_INTERNAL void m0_poolnode_clink_add(struct m0_clink *link,
596  struct m0_chan *chan);
600 M0_INTERNAL void m0_poolnode_clink_del(struct m0_clink *cl);
601 
606 M0_INTERNAL void m0_pooldev_clink_add(struct m0_clink *link,
607  struct m0_chan *chan);
611 M0_INTERNAL void m0_pooldev_clink_del(struct m0_clink *cl);
612 
613 M0_INTERNAL uint32_t m0_ha2pm_state_map(enum m0_ha_obj_state hastate);
614 
618 M0_INTERNAL const char *m0_pool_dev_state_to_str(enum m0_pool_nd_state state);
619 M0_INTERNAL struct m0_pool *m0_pool_find(struct m0_pools_common *pc,
620  const struct m0_fid *pool);
621 
622 M0_INTERNAL void m0_pools_lock(struct m0_pools_common *pc);
623 M0_INTERNAL void m0_pools_unlock(struct m0_pools_common *pc);
624 M0_INTERNAL bool m0_pools_is_locked(struct m0_pools_common *pc);
625 
627 #endif /* __MOTR_POOL_POOL_H__ */
628 
629 /*
630  * Local variables:
631  * c-indentation-style: "K&R"
632  * c-basic-offset: 8
633  * tab-width: 8
634  * fill-column: 80
635  * scroll-step: 1
636  * End:
637  */
M0_INTERNAL int m0_dix_pool_version_get(struct m0_pools_common *pc, struct m0_pool_version **pv)
Definition: pool.c:704
struct m0_layout_instance * pc_md_pool_linst
Definition: pool.h:214
sns_repair_state
Definition: pool.h:568
M0_INTERNAL int m0_poolserver_io_req(struct m0_poolserver *srv, struct m0_io_req *req)
M0_INTERNAL void m0_pools_common_fini(struct m0_pools_common *pc)
Definition: pool.c:1549
M0_INTERNAL int m0_pool_version_append(struct m0_pools_common *pc, struct m0_conf_pver *pver, struct m0_pool_version **pv)
Definition: pool.c:1725
int rl_network_throughput
Definition: pool.h:517
enum m0_pool_spare_usage_format_version M0_XCA_DOMAIN
M0_INTERNAL void m0_pool_fini(struct m0_pool *pool)
Definition: pool.c:322
uint32_t pd_state M0_XCA_FENUM(m0_pool_nd_state)
struct m0_format_header pn_header
Definition: pool.h:391
M0_INTERNAL bool m0_pools_is_locked(struct m0_pools_common *pc)
Definition: pool.c:2115
struct m0_tl po_vers
Definition: pool.h:84
M0_INTERNAL void m0_pools_unlock(struct m0_pools_common *pc)
Definition: pool.c:2110
struct m0_pool * pc_dix_pool
Definition: pool.h:237
int rl_processor_throughput
Definition: pool.h:514
m0_conf_service_type
Definition: schema.h:194
Definition: pool.h:65
M0_INTERNAL struct m0_pool_version * m0_pool_version_find(struct m0_pools_common *pc, const struct m0_fid *id)
Definition: pool.c:586
M0_INTERNAL int m0_pool_version_init_by_conf(struct m0_pool_version *pv, struct m0_conf_pver *pver, struct m0_pool *pool, struct m0_pools_common *pc)
Definition: pool.c:748
static struct io_request req
Definition: file.c:100
M0_TL_DESCR_DECLARE(pools_common_svc_ctx, M0_EXTERN)
struct m0_pool_version * pv
Definition: dir.c:629
struct m0_poolmach pv_mach
Definition: pool.h:133
struct m0_mutex pc_rm_lock
Definition: pool.h:218
uint32_t pv_fd_tol_vec[M0_CONF_PVER_HEIGHT]
Definition: pool.h:141
uint32_t pn_index
Definition: pool.h:399
M0_INTERNAL int m0_pool_versions_init_by_conf(struct m0_pool *pool, struct m0_pools_common *pc, const struct m0_conf_pool *cp, struct m0_sm_group *sm_grp, struct m0_dtm *dtm)
struct m0_reqh_service_ctx * pc_rm_ctx
Definition: pool.h:183
struct m0_format_footer psu_footer
Definition: pool.h:484
struct m0_pool * pc_md_pool
Definition: pool.h:212
uint64_t po_magic
Definition: pool.h:97
M0_INTERNAL int m0_poolserver_off(struct m0_poolserver *srv)
M0_INTERNAL int m0_pools_setup(struct m0_pools_common *pc, const struct m0_fid *profile, struct m0_sm_group *sm_grp, struct m0_dtm *dtm)
Definition: pool.c:1810
struct m0_fid pd_sdev_fid
Definition: pool.h:430
struct m0_pool * pv_pool
Definition: pool.h:128
bool pv_is_dirty
Definition: pool.h:116
struct m0_poolnode ps_node
Definition: pool.h:529
M0_INTERNAL struct m0_reqh_service_ctx * m0_pools_common_service_ctx_find(const struct m0_pools_common *pc, const struct m0_fid *id, enum m0_conf_service_type type)
Definition: pool.c:1095
struct m0_poolmach * pn_pm
Definition: pool.h:397
static struct m0_pools_common pc
Definition: iter_ut.c:59
M0_INTERNAL int m0_pool_init(struct m0_pool *pool, const struct m0_fid *id, enum m0_pver_policy_code pver_policy)
Definition: pool.c:307
uint64_t pc_nr_svcs[M0_CST_NR]
Definition: pool.h:190
M0_INTERNAL const char * m0_pool_dev_state_to_str(enum m0_pool_nd_state state)
Definition: pool.c:290
struct m0_be_clink pd_clink
Definition: pool.h:447
Definition: pool.h:588
M0_INTERNAL struct m0_pool_version * m0_pool_version_md_get(const struct m0_pools_common *pc)
Definition: pool.c:841
M0_INTERNAL int m0_pool_device_reopen(struct m0_poolmach *pm, struct m0_reqh *rs_reqh)
Definition: pool.c:2011
struct m0_poolnode * pd_node
Definition: pool.h:440
struct m0_reqh_service_ctx ** pc_mds_map
Definition: pool.h:180
struct m0_conf_root * root
Definition: note.c:50
M0_INTERNAL bool m0_pools_common_conf_ready_async_cb(struct m0_clink *clink)
Definition: pool.c:1358
m0_pool_spare_usage_format_version
Definition: pool.h:487
map_type
Definition: pool.h:63
struct m0_tlink po_linkage
Definition: pool.h:87
M0_INTERNAL void m0_pool_versions_stale_mark(struct m0_pools_common *pc, struct m0_confc_update_state *s)
Definition: pool.c:811
M0_INTERNAL int m0__pools_common_init(struct m0_pools_common *pc, struct m0_rpc_machine *rmach, struct m0_conf_root *root)
Definition: pool.c:1437
uint32_t pc_md_redundancy
Definition: pool.h:210
M0_INTERNAL uint64_t m0_pool_version2layout_id(const struct m0_fid *pv_fid, uint64_t lid)
Definition: pool.c:1900
M0_INTERNAL int m0_pool_version_get(struct m0_pools_common *pc, const struct m0_fid *pool, struct m0_pool_version **pv)
Definition: pool.c:662
M0_INTERNAL int m0_pool_device_state_update(struct m0_reqh *reqh, struct m0_be_tx *tx, struct m0_fid *dev_fid, enum m0_pool_nd_state new_state)
Definition: pool.c:2068
uint64_t pv_magic
Definition: pool.h:152
struct m0_fid pv_id
Definition: pool.h:113
struct m0_format_header psu_header
Definition: pool.h:475
struct m0_fd_tree pv_fd_tree
Definition: pool.h:139
M0_INTERNAL int m0_pools_init(void)
Definition: pool.c:273
char pn_pad[4]
Definition: pool.h:393
uint64_t pd_magic
Definition: pool.h:454
M0_TL_DECLARE(pools_common_svc_ctx, M0_EXTERN, struct m0_reqh_service_ctx)
struct m0_clink pc_conf_exp
Definition: pool.h:230
struct m0_poolmach * pd_pm
Definition: pool.h:442
m0_pver_policy_code
Definition: policy.h:40
struct m0_format_header pd_header
Definition: pool.h:422
M0_INTERNAL void m0_pools_common_service_ctx_connect_sync(struct m0_pools_common *pc)
Definition: pool.c:1608
struct m0_fid pver
Definition: idx_dix.c:74
static struct net_test_cmd_node nodes[NTC_MULTIPLE_NODES]
Definition: commands.c:74
M0_INTERNAL int m0_poolserver_device_leave(struct m0_poolserver *srv, struct m0_pooldev *dev)
m0_pool_nd_state
Definition: pool_machine.h:57
Definition: tlist.h:251
uint32_t pc_nr_devices
Definition: pool.h:196
struct m0_fd_tile pv_fd_tile
Definition: pool.h:136
M0_INTERNAL int m0_pool_version_init(struct m0_pool_version *pv, const struct m0_fid *id, struct m0_pool *pool, uint32_t pool_width, uint32_t nr_nodes, uint32_t nr_data, uint32_t nr_failures, uint32_t nr_spare)
Definition: pool.c:522
struct m0_tlink pd_fail_linkage
Definition: pool.h:453
m0_ha_obj_state
Definition: note.h:119
M0_INTERNAL void m0_pool_versions_fini(struct m0_pool *pool)
Definition: pool.c:801
m0_pooldev_format_version
Definition: pool.h:459
M0_BASSERT(sizeof(enum m0_pool_nd_state)==4)
M0_INTERNAL void m0_pools_service_ctx_destroy(struct m0_pools_common *pc)
Definition: pool.c:1617
uint32_t pd_sdev_idx
Definition: pool.h:437
struct m0_pools_common * pv_pc
Definition: pool.h:130
bool pv_is_stale
Definition: pool.h:119
M0_INTERNAL void m0_pooldev_clink_add(struct m0_clink *link, struct m0_chan *chan)
Definition: pool.c:1999
Definition: reqh.h:94
M0_INTERNAL void m0_pools_fini(void)
Definition: pool.c:283
uint32_t psu_device_state M0_XCA_FENUM(m0_pool_nd_state)
struct m0_fid pd_id
Definition: pool.h:428
Definition: chan.h:229
int rl_storage_throughput
Definition: pool.h:516
struct m0_tlink pv_linkage
Definition: pool.h:149
struct m0_pool_device_to_service * pc_dev2svc
Definition: pool.h:207
static struct m0_clink clink[RDWR_REQUEST_MAX]
M0_INTERNAL void m0_pools_lock(struct m0_pools_common *pc)
Definition: pool.c:2105
struct m0_confc * pc_confc
Definition: pool.h:164
struct m0_tl pc_svc_ctxs
Definition: pool.h:172
struct m0_fid pds_sdev_fid
Definition: pool.h:77
struct m0_format_footer pd_footer
Definition: pool.h:456
M0_INTERNAL void m0_pool_version_fini(struct m0_pool_version *pv)
Definition: pool.c:786
static struct m0_pool pool
Definition: iter_ut.c:58
struct m0_reqh_service_ctx * pds_ctx
Definition: pool.h:74
Definition: pool.h:64
struct m0_rpc_machine * pc_rmach
Definition: pool.h:166
M0_INTERNAL int m0_poolserver_init(struct m0_poolserver *srv)
M0_INTERNAL void m0_poolnode_clink_add(struct m0_clink *link, struct m0_chan *chan)
Definition: pool.c:1977
static struct m0_fid pv_fid
Definition: iter_ut.c:62
M0_INTERNAL int m0_poolserver_reset(struct m0_poolserver *srv)
struct m0_tl pc_abandoned_svc_ctxs
Definition: pool.h:228
struct m0_reqh reqh
Definition: rm_foms.c:48
static struct m0_fid profile
Definition: rconfc.c:49
M0_INTERNAL int m0_pools_common_init(struct m0_pools_common *pc, struct m0_rpc_machine *rmach)
Definition: pool.c:1425
uint32_t pv_sns_flags
Definition: pool.h:143
static struct m0_chan chan[RDWR_REQUEST_MAX]
Definition: fid.h:38
M0_INTERNAL void m0_poolserver_fini(struct m0_poolserver *srv)
M0_INTERNAL int m0_pools_service_ctx_create(struct m0_pools_common *pc)
Definition: pool.c:1535
M0_INTERNAL struct m0_pool_version * m0_pool_version_dix_get(const struct m0_pools_common *pc)
Definition: pool.c:833
struct m0_pver_policy * po_pver_policy
Definition: pool.h:96
struct m0_be_clink pn_clink
Definition: pool.h:404
struct m0_tl pc_pools
Definition: pool.h:162
struct m0_fid pn_id
Definition: pool.h:395
M0_INTERNAL int m0_poolserver_device_join(struct m0_poolserver *srv, struct m0_pooldev *dev)
uint32_t pv_nr_nodes
Definition: pool.h:125
uint32_t psu_device_index
Definition: pool.h:480
char pd_pad[4]
Definition: pool.h:426
uint32_t pn_state M0_XCA_FENUM(m0_pool_nd_state)
struct m0_fid po_id
Definition: pool.h:81
Definition: dtm.h:529
struct m0_clink pc_conf_ready_async
Definition: pool.h:235
M0_INTERNAL struct m0_rpc_session * m0_pools_common_active_rm_session(struct m0_pools_common *pc)
Definition: pool.c:1074
Definition: fd.h:199
Definition: pool.h:80
M0_INTERNAL uint32_t m0_ha2pm_state_map(enum m0_ha_obj_state hastate)
Definition: pool.c:1905
M0_INTERNAL void m0_pooldev_clink_del(struct m0_clink *cl)
Definition: pool.c:1984
struct m0_pool_version * pc_cur_pver
Definition: pool.h:220
struct m0_rlimit ps_rl_usage
Definition: pool.h:531
int type
Definition: dir.c:1031
M0_INTERNAL struct m0_pool_version * m0_pool_clean_pver_find(const struct m0_pool *pool)
Definition: pool.c:556
M0_INTERNAL int m0_pool_versions_setup(struct m0_pools_common *pc)
Definition: pool.c:1640
Definition: fd.h:126
M0_INTERNAL void m0_pool_versions_destroy(struct m0_pools_common *pc)
Definition: pool.c:1876
M0_INTERNAL void m0_poolnode_clink_del(struct m0_clink *cl)
Definition: pool.c:1962
M0_INTERNAL struct m0_pool_version * m0_pool_version_lookup(const struct m0_pools_common *pc, const struct m0_fid *id)
Definition: pool.c:568
struct m0_mutex pc_mutex
Definition: pool.h:221
Definition: mutex.h:47
static struct m0_addb2_source * s
Definition: consumer.c:39
struct m0_pdclust_attr pv_attr
Definition: pool.h:122
uint32_t pd_index
Definition: pool.h:432
M0_INTERNAL int m0_poolserver_on(struct m0_poolserver *srv)
int rl_memory
Definition: pool.h:515
static struct m0_be_ut_backend be
Definition: service_ut.c:59
m0_poolnode_format_version
Definition: pool.h:409
struct m0_clink pc_ha_clink
Definition: pool.h:217
struct m0_format_footer pn_footer
Definition: pool.h:405
static struct net_srv srv
Definition: net_test.c:52
Definition: tx.h:280
struct m0_ha_entrypoint_client * pc_ha_ecl
Definition: pool.h:216
M0_INTERNAL struct m0_pool * m0_pool_find(struct m0_pools_common *pc, const struct m0_fid *pool)
Definition: pool.c:257
M0_INTERNAL void m0_pools_destroy(struct m0_pools_common *pc)
Definition: pool.c:1887
struct m0_tl po_failed_devices
Definition: pool.h:93