23 #define M0_TRACE_SUBSYSTEM M0_TRACE_SUBSYS_M0D 55 if (
args->ca_argc ==
args->ca_argc_max) {
56 args->ca_argc_max =
args->ca_argc_max == 0 ? 64 :
57 args->ca_argc_max * 2;
60 memcpy(argv,
args->ca_argv,
61 sizeof(
args->ca_argv[0]) *
args->ca_argc);
86 static const char *opts[] = {
91 [M0_CST_STATS] =
"-R",
94 [M0_CST_SNS_REP] =
"",
95 [M0_CST_SNS_REB] =
"",
98 [M0_CST_DIX_REP] =
"",
99 [M0_CST_DIX_REB] =
"",
105 [M0_CST_M0T1FS] =
"",
106 [M0_CST_CLIENT] =
"",
116 for (
i = 0;
svc->cs_endpoints[
i] !=
NULL; ++
i) {
122 opt = opts[
svc->cs_type];
171 M0_CONF_ROOT_NODES_FID,
172 M0_CONF_NODE_PROCESSES_FID,
173 M0_CONF_PROCESS_SERVICES_FID);
220 " local_ep=%s pc_endpoint=%s cs_endpoints[0]=%s",
233 (
cctx->cc_mkfs &&
svc->cs_type == M0_CST_CAS));
276 uint32_t fail_devs = 0;
291 M0_CONF_SERVICE_SDEVS_FID);
303 "sdev " FID_F " device index: %d " 304 "sdev.sd_filename: %s, " 340 nvec.
nv_nr = fail_devs;
376 M0_CONF_ROOT_POOLS_FID,
377 M0_CONF_POOL_PVERS_FID);
395 return M0_RC(!!result);
432 M0_CONF_PROCESS_SERVICES_FID);
444 tmp_fid =
obj->co_id;
482 M0_CONF_ROOT_NODES_FID,
483 M0_CONF_NODE_PROCESSES_FID,
484 M0_CONF_PROCESS_SERVICES_FID);
492 char *svc_type_name =
498 if (svc_type_name ==
NULL) {
506 "registering " FID_F " service type=%d when " 507 FID_F " for the type is already registered",
557 #undef M0_TRACE_SUBSYSTEM const struct m0_conf_obj_type * m0_conf_obj_type(const struct m0_conf_obj *obj)
struct m0_poolmach_state * pm_state
M0_INTERNAL struct m0_storage_dev * m0_storage_devs_find_by_cid(struct m0_storage_devs *devs, uint64_t cid)
M0_INTERNAL int cs_conf_storage_init(struct cs_stobs *stob, struct m0_storage_devs *devs, bool force)
#define M0_ALLOC_ARR(arr, nr)
static bool is_local_ios(const struct m0_conf_obj *obj)
struct m0_pdclust_attr pvs_attr
struct m0_stob * isd_stob
M0_INTERNAL void m0_storage_dev_attach(struct m0_storage_dev *dev, struct m0_storage_devs *devs)
struct m0_conf_obj rt_obj
#define M0_LOG(level,...)
const struct m0_conf_obj_type M0_CONF_PVER_TYPE
const struct m0_conf_obj_type M0_CONF_SERVICE_TYPE
static struct net_test_cmd_node * node
const struct m0_conf_obj_type M0_CONF_SDEV_TYPE
M0_INTERNAL int m0_conf_diter_next_sync(struct m0_conf_diter *it, bool(*filter)(const struct m0_conf_obj *obj))
static struct m0_rpc_client_ctx cctx
static struct m0_be_emap_cursor it
M0_INTERNAL int m0_stob_linux_reopen(struct m0_stob_id *stob_id, const char *f_path)
#define container_of(ptr, type, member)
M0_INTERNAL const char * m0_rpc_machine_ep(const struct m0_rpc_machine *rmach)
M0_INTERNAL struct m0_rpc_machine * m0_motr_to_rmach(struct m0_motr *motr)
M0_INTERNAL bool m0_fid_is_set(const struct m0_fid *fid)
static int cs_conf_storage_attach_by_srv(struct cs_stobs *cs_stob, struct m0_storage_devs *devs, struct m0_fid *svc_fid, struct m0_confc *confc, bool force)
struct m0_pooldev * pst_devices_array
M0_INTERNAL int m0_confc_root_open(struct m0_confc *confc, struct m0_conf_root **root)
static bool is_ios(const struct m0_conf_obj *obj)
M0_INTERNAL int m0_storage_dev_new_by_conf(struct m0_storage_devs *devs, struct m0_conf_sdev *sdev, bool force, struct m0_storage_dev **dev)
struct m0_reqh_context rctx
static bool is_local_service(const struct m0_conf_obj *obj)
#define M0_ERR_INFO(rc, fmt,...)
struct m0_conf_root * root
return M0_ERR(-EOPNOTSUPP)
M0_INTERNAL void m0_storage_devs_lock(struct m0_storage_devs *devs)
#define M0_NET_XPRT_PREFIX_DEFAULT
static struct m0_stob * stob
M0_INTERNAL const char * m0_conf_service_type2str(enum m0_conf_service_type type)
static struct m0_confc * confc
static char * strxdup(const char *addr)
static bool cs_conf_storage_pver_is_actual(const struct m0_conf_obj *obj)
static int cs_conf_storage_is_n1_k0_s0(struct m0_confc *confc)
union m0_conf_pver::@122 pv_u
struct m0_conf_obj * m0_conf_obj_grandparent(const struct m0_conf_obj *obj)
enum m0_ha_obj_state co_ha_state
static void service_options_add(struct cs_args *args, const struct m0_conf_service *svc)
static uint32_t m0_conf_dir_len(const struct m0_conf_dir *dir)
M0_INTERNAL void m0_stob_id_make(uint64_t container, uint64_t key, const struct m0_fid *dom_id, struct m0_stob_id *stob_id)
M0_INTERNAL struct m0_reqh * m0_conf_obj2reqh(const struct m0_conf_obj *obj)
M0_INTERNAL int cs_conf_device_reopen(struct m0_poolmach *pm, struct cs_stobs *stob, uint32_t dev_id)
static M0_UNUSED void node_options_add(struct cs_args *args, const struct m0_conf_node *node)
void * m0_alloc(size_t size)
M0_INTERNAL struct m0_confc * m0_motr2confc(struct m0_motr *motr)
M0_INTERNAL int cs_conf_to_args(struct cs_args *dest, struct m0_conf_root *root)
#define M0_CONF_CAST(ptr, type)
struct m0_conf_pver_subtree subtree
M0_INTERNAL bool m0_fid_eq(const struct m0_fid *fid0, const struct m0_fid *fid1)
M0_INTERNAL struct m0_conf_obj * m0_conf_diter_result(const struct m0_conf_diter *it)
struct m0_conf_obj pc_obj
#define m0_conf_diter_init(iter, confc, origin,...)
M0_INTERNAL void m0_storage_devs_locks_disable(struct m0_storage_devs *devs)
#define M0_FI_ENABLED(tag)
const struct m0_conf_obj_type M0_CONF_NODE_TYPE
static bool service_and_node(const struct m0_conf_obj *obj)
static const char * local_ep(const struct m0_cm *cm)
M0_INTERNAL void m0_conf_diter_fini(struct m0_conf_diter *it)
static struct m0_net_test_service svc
struct m0_conf_obj sd_obj
struct m0_fid * rc_service_fids
#define IS_IN_ARRAY(idx, array)
M0_INTERNAL void m0_storage_devs_unlock(struct m0_storage_devs *devs)
M0_INTERNAL struct m0_confc * m0_confc_from_obj(const struct m0_conf_obj *obj)
static void option_add(struct cs_args *args, char *s)
M0_INTERNAL void m0_confc_close(struct m0_conf_obj *obj)
#define M0_ASSERT_INFO(cond, fmt,...)
struct m0_ha_note * nv_note
M0_INTERNAL void m0_stob_linux_conf_sdev_associate(struct m0_stob *stob, const struct m0_fid *conf_sdev)
static struct m0_addb2_source * s
M0_INTERNAL int m0_confc_open_by_fid_sync(struct m0_confc *confc, const struct m0_fid *fid, struct m0_conf_obj **result)
M0_INTERNAL struct m0_motr * m0_cs_ctx_get(struct m0_reqh *reqh)
M0_INTERNAL int cs_conf_services_init(struct m0_motr *cctx)
static bool is_device(const struct m0_conf_obj *obj)
M0_INTERNAL void m0_ha_local_state_set(const struct m0_ha_nvec *nvec)