Motr  M0
pool.h File Reference
#include "format/format.h"
#include "lib/chan.h"
#include "lib/rwlock.h"
#include "lib/tlist.h"
#include "lib/tlist_xc.h"
#include "fd/fd.h"
#include "reqh/reqh_service.h"
#include "conf/obj.h"
#include "layout/pdclust.h"
#include "pool/pool_machine.h"
#include "pool/pool_machine_xc.h"
#include "pool/policy.h"
Include dependency graph for pool.h:

Go to the source code of this file.

Data Structures

struct  m0_pool_device_to_service
 
struct  m0_pool
 
struct  m0_pool_version
 
struct  m0_pools_common
 
struct  m0_poolnode
 
struct  m0_pooldev
 
struct  m0_pool_spare_usage
 
struct  m0_rlimit
 
struct  m0_poolserver
 

Macros

#define __MOTR_POOL_POOL_H__
 

Enumerations

enum  {
  PM_DEFAULT_NR_NODES = 10, PM_DEFAULT_NR_DEV = 80, PM_DEFAULT_MAX_NODE_FAILURES = 1, PM_DEFAULT_MAX_DEV_FAILURES = 80,
  POOL_MAX_RPC_NR_IN_FLIGHT = 100
}
 
enum  map_type { IOS = 1, MDS }
 
enum  { PV_SNS_DIRTY = 1 << 0 }
 
enum  m0_poolnode_format_version { M0_POOLNODE_FORMAT_VERSION_1 = 1, M0_POOLNODE_FORMAT_VERSION = M0_POOLNODE_FORMAT_VERSION_1 }
 
enum  m0_pooldev_format_version { M0_POOLDEV_FORMAT_VERSION_1 = 1, M0_POOLDEV_FORMAT_VERSION = M0_POOLDEV_FORMAT_VERSION_1 }
 
enum  m0_pool_spare_usage_format_version { M0_POOL_SPARE_USAGE_FORMAT_VERSION_1 = 1, M0_POOL_SPARE_USAGE_FORMAT_VERSION = M0_POOL_SPARE_USAGE_FORMAT_VERSION_1 }
 
enum  sns_repair_state { SRS_UNINITIALIZED = 1, SRS_REPAIR_NOTDONE, SRS_REPAIR_DONE, SRS_NR }
 

Functions

 M0_TL_DESCR_DECLARE (pools_common_svc_ctx, M0_EXTERN)
 
 M0_TL_DECLARE (pools_common_svc_ctx, M0_EXTERN, struct m0_reqh_service_ctx)
 
 M0_TL_DESCR_DECLARE (pool_version, M0_EXTERN)
 
 M0_TL_DECLARE (pool_version, M0_EXTERN, struct m0_pool_version)
 
 M0_TL_DESCR_DECLARE (pools, M0_EXTERN)
 
 M0_TL_DECLARE (pools, M0_EXTERN, struct m0_pool)
 
 M0_TL_DESCR_DECLARE (pool_failed_devs, M0_EXTERN)
 
 M0_TL_DECLARE (pool_failed_devs, M0_EXTERN, struct m0_pooldev)
 
M0_INTERNAL int m0_pools_common_init (struct m0_pools_common *pc, struct m0_rpc_machine *rmach)
 
M0_INTERNAL int m0__pools_common_init (struct m0_pools_common *pc, struct m0_rpc_machine *rmach, struct m0_conf_root *root)
 
M0_INTERNAL void m0_pools_common_fini (struct m0_pools_common *pc)
 
M0_INTERNAL bool m0_pools_common_conf_ready_async_cb (struct m0_clink *clink)
 
M0_INTERNAL int m0_pools_service_ctx_create (struct m0_pools_common *pc)
 
M0_INTERNAL void m0_pools_service_ctx_destroy (struct m0_pools_common *pc)
 
M0_INTERNAL int m0_pool_init (struct m0_pool *pool, const struct m0_fid *id, enum m0_pver_policy_code pver_policy)
 
M0_INTERNAL void m0_pool_fini (struct m0_pool *pool)
 
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)
 
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)
 
M0_INTERNAL int m0_pool_version_get (struct m0_pools_common *pc, const struct m0_fid *pool, struct m0_pool_version **pv)
 
M0_INTERNAL struct m0_pool_versionm0_pool_version_lookup (const struct m0_pools_common *pc, const struct m0_fid *id)
 
M0_INTERNAL struct m0_pool_versionm0_pool_version_find (struct m0_pools_common *pc, const struct m0_fid *id)
 
M0_INTERNAL void m0_pool_version_fini (struct m0_pool_version *pv)
 
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)
 
M0_INTERNAL void m0_pool_versions_fini (struct m0_pool *pool)
 
M0_INTERNAL void m0_pool_versions_stale_mark (struct m0_pools_common *pc, struct m0_confc_update_state *s)
 
M0_INTERNAL struct m0_pool_versionm0_pool_version_md_get (const struct m0_pools_common *pc)
 
M0_INTERNAL struct m0_pool_versionm0_pool_version_dix_get (const struct m0_pools_common *pc)
 
M0_INTERNAL int m0_pools_init (void)
 
M0_INTERNAL void m0_pools_fini (void)
 
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)
 
M0_INTERNAL void m0_pools_destroy (struct m0_pools_common *pc)
 
M0_INTERNAL int m0_pool_versions_setup (struct m0_pools_common *pc)
 
M0_INTERNAL int m0_pool_version_append (struct m0_pools_common *pc, struct m0_conf_pver *pver, struct m0_pool_version **pv)
 
M0_INTERNAL void m0_pool_versions_destroy (struct m0_pools_common *pc)
 
M0_INTERNAL struct m0_pool_versionm0_pool_clean_pver_find (const struct m0_pool *pool)
 
M0_INTERNAL uint64_t m0_pool_version2layout_id (const struct m0_fid *pv_fid, uint64_t lid)
 
M0_INTERNAL struct m0_rpc_sessionm0_pools_common_active_rm_session (struct m0_pools_common *pc)
 
M0_INTERNAL struct m0_reqh_service_ctxm0_pools_common_service_ctx_find (const struct m0_pools_common *pc, const struct m0_fid *id, enum m0_conf_service_type type)
 
M0_INTERNAL void m0_pools_common_service_ctx_connect_sync (struct m0_pools_common *pc)
 
M0_INTERNAL int m0_dix_pool_version_get (struct m0_pools_common *pc, struct m0_pool_version **pv)
 
 M0_BASSERT (sizeof(enum m0_pool_nd_state)==4)
 
struct m0_pool_spare_usage M0_XCA_DOMAIN (be)
 
uint32_t psu_device_state M0_XCA_FENUM (m0_pool_nd_state)
 
M0_INTERNAL int m0_poolserver_init (struct m0_poolserver *srv)
 
M0_INTERNAL void m0_poolserver_fini (struct m0_poolserver *srv)
 
M0_INTERNAL int m0_poolserver_reset (struct m0_poolserver *srv)
 
M0_INTERNAL int m0_poolserver_on (struct m0_poolserver *srv)
 
M0_INTERNAL int m0_poolserver_off (struct m0_poolserver *srv)
 
M0_INTERNAL int m0_poolserver_io_req (struct m0_poolserver *srv, struct m0_io_req *req)
 
M0_INTERNAL int m0_poolserver_device_join (struct m0_poolserver *srv, struct m0_pooldev *dev)
 
M0_INTERNAL int m0_poolserver_device_leave (struct m0_poolserver *srv, struct m0_pooldev *dev)
 
M0_INTERNAL int m0_pool_device_reopen (struct m0_poolmach *pm, struct m0_reqh *rs_reqh)
 
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)
 
M0_INTERNAL void m0_poolnode_clink_add (struct m0_clink *link, struct m0_chan *chan)
 
M0_INTERNAL void m0_poolnode_clink_del (struct m0_clink *cl)
 
M0_INTERNAL void m0_pooldev_clink_add (struct m0_clink *link, struct m0_chan *chan)
 
M0_INTERNAL void m0_pooldev_clink_del (struct m0_clink *cl)
 
M0_INTERNAL uint32_t m0_ha2pm_state_map (enum m0_ha_obj_state hastate)
 
M0_INTERNAL const char * m0_pool_dev_state_to_str (enum m0_pool_nd_state state)
 
M0_INTERNAL struct m0_poolm0_pool_find (struct m0_pools_common *pc, const struct m0_fid *pool)
 
M0_INTERNAL void m0_pools_lock (struct m0_pools_common *pc)
 
M0_INTERNAL void m0_pools_unlock (struct m0_pools_common *pc)
 
M0_INTERNAL bool m0_pools_is_locked (struct m0_pools_common *pc)
 

Variables

struct m0_format_header psu_header
 
uint32_t psu_device_index
 
struct m0_format_footer psu_footer
 
enum m0_pool_spare_usage_format_version M0_XCA_DOMAIN
 

Macro Definition Documentation

◆ __MOTR_POOL_POOL_H__

#define __MOTR_POOL_POOL_H__

Definition at line 26 of file pool.h.

Function Documentation

◆ M0_XCA_FENUM()

uint32_t psu_device_state M0_XCA_DOMAIN::M0_XCA_FENUM ( m0_pool_nd_state  )

state of the device to use this spare slot

Variable Documentation

◆ psu_device_index

uint32_t psu_device_index

Index of the device from m0_poolmach_state::pst_devices_array in the pool associated with this spare slot.

Definition at line 413 of file pool.h.

◆ psu_footer

struct m0_format_footer psu_footer

Definition at line 417 of file pool.h.

◆ psu_header

struct m0_format_header psu_header

Definition at line 408 of file pool.h.