22 #define M0_TRACE_SUBSYSTEM M0_TRACE_SUBSYS_M0T1FS    25 #include <linux/kernel.h>      26 #include <linux/mount.h>    27 #include <linux/parser.h>      28 #include <linux/slab.h>        29 #include <linux/statfs.h>      65 #define M0T1FS_NAME_LEN 256    69                  "e.g. 172.18.50.40@o2ib1:12345:34:\n"    70                  "the tmid will be generated and filled by every mount");
    94         .drop_inode    = generic_delete_inode, 
   100                         ci_sb_linkage, ci_magic,
   103 M0_TL_DEFINE(csb_inodes, M0_INTERNAL, 
struct m0t1fs_inode);
   150         pc = &
csb->csb_pools_common;
   158         return &
ctx->sc_rlink.rlk_sess;
   167                                uint64_t container_id)
   172         M0_PRE(container_id < pver->pv_pc->pc_nr_devices);
   176         ctx = 
pver->pv_pc->pc_dev2svc[container_id].pds_ctx;
   180                          &
ctx->sc_rlink.rlk_sess);
   182         return &
ctx->sc_rlink.rlk_sess;
   187         struct m0_spiel_core spc = {
   189                 .spc_rmachine  = &
csb->csb_rpc_machine,
   200         struct m0t1fs_sb  *
csb = M0T1FS_SB(
dentry->d_sb);
   222                 buf->f_blocks  = 
stats.fs_total_disk / 
buf->f_bsize;
   226                 buf->f_files   = 
stats.fs_total_seg / 512;
   227                 buf->f_ffree   = 
stats.fs_free_seg / 512;
   229                 buf->f_bavail  = 
stats.fs_avail_disk / 
buf->f_bsize;
   299         s = match_strdup(
src);
   303         rc = kstrtoul(
s, 10, &
n);
   317         return s == 
NULL || *
s == 
'\0';
   324                                    "Mandatory parameter is missing: ha");
   327                                    "Mandatory parameter is missing: profile");
   330                                    "Mandatory parameter is missing: pfid");
   334                                    "fid_start must be greater than %llu",
   342         substring_t 
args[MAX_OPT_ARGS];
   349                 return M0_RC(-EINVAL);
   384                                 (
unsigned long)
dest->mo_fid_start);
   395                         csb->csb_oostore = 
true;
   399                         csb->csb_verify = 
true;
   431         csb->csb_active = 
true;
   434         csb->csb_oostore = 
false;
   435         csb->csb_verify  = 
false;
   436         csb->csb_reqs_nr = 0;
   440         csb_inodes_tlist_init(&
csb->csb_inodes);
   450         csb_inodes_tlist_fini(&
csb->csb_inodes);
   456         csb->csb_next_key = 0;
   469                                       csb->csb_motr_ha.mh_link,
   470                                       &
csb->csb_process_fid, 0,
   487                         .hdc_enable_keepalive = 
true,
   488                         .hdc_enable_fvec      = 
true,
   491                 .mhc_rpc_machine    = &
csb->csb_rpc_machine,
   492                 .mhc_reqh           = &
csb->csb_reqh,
   493                 .mhc_process_fid    = 
csb->csb_process_fid,
   583                         return M0_RC(-ENOMEM);
   587                 if (
csb->csb_tmid == ((
size_t)-1)) {
   590                         return M0_RC(-EMFILE);
   598                 csb->csb_laddr = laddr;
   601         ndom           = &
csb->csb_ndom;
   610                                       csb->csb_tmid, 
false);
   646                           &
csb->csb_ut_be, 1ULL << 24);
   657                           .rhia_dtm = (
void*)1,
   658                           .rhia_db = 
csb->csb_ut_seg.bus_seg,
   659                           .rhia_mdstore = (
void*)1,
   660                           .rhia_pc = &
csb->csb_pools_common,
   661                           .rhia_fid = &
csb->csb_process_fid);
   695         return &
csb->csb_reqh.rh_rconfc;
   730                 if (M0_IN(
csb->csb_confc_state.cus_state,
   753         if (
csb->csb_reqs_nr == 0 &&
   767         if (
csb->csb_reqh.rh_rconfc.rc_stopping)
   785         for (
i = 0; 
i < 
csb->csb_pools_common.pc_nr_devices; 
i++) {
   786                 ctx = 
csb->csb_pools_common.pc_dev2svc[
i].pds_ctx;
   788                     && 
ctx->sc_rlink.rlk_connected)
   798         struct m0t1fs_inode    *
ci;
   808                 if (
ci->ci_layout_instance != 
NULL) {
   810                         ci->ci_layout_instance = 
NULL;
   824         if (
csb->csb_reqs_nr == 0 &&
   835         struct m0_clink *pc_clink = &
csb->csb_pools_common.pc_conf_ready_async;
   840                                     &
csb->csb_confc_state);
   846         if (
csb->csb_pools_common.pc_confc != 
NULL)
   947                 .ca_rmach   = &
csb->csb_rpc_machine,
   968                           &
csb->csb_conf_ready_async);
   972                 goto err_rconfc_stop;
   975                 goto err_rconfc_stop;
   979                 goto err_conf_fs_close;
   982                 goto err_conf_fs_close;
   986                 goto err_conf_fs_close;
   991                 goto err_pools_common_fini;
   995                 goto err_pools_destroy;
  1000                 goto err_pools_service_ctx_destroy;
  1004         if (!M0_IN(
rc, (0, -ENOENT)))
  1005                 goto err_pool_versions_destroy;
  1009                 goto err_pool_versions_destroy;
  1013                 goto err_rm_service_quit;
  1025 err_rm_service_quit:
  1027 err_pool_versions_destroy:
  1030 err_pools_service_ctx_destroy:
  1034 err_pools_common_fini:
  1094 #if LINUX_VERSION_CODE >= KERNEL_VERSION(3,10,0)  1095         clear_nlink(
dentry->d_inode);
  1097         dentry->d_inode->i_nlink = 0;
  1108         if (
csb->csb_fid_dentry != 
NULL) {
  1112         if (
csb->csb_motr_dentry != 
NULL) {
  1137         body->
b_mode = (S_IFDIR | S_IRUSR | S_IWUSR | S_IXUSR |
  1146         struct inode             *motr_inode;
  1147         struct dentry            *motr_dentry;
  1148         struct inode             *fid_inode;
  1149         struct dentry            *fid_dentry;
  1150         struct m0t1fs_sb         *
csb = M0T1FS_SB(
sb);
  1162         if (motr_dentry == 
NULL)
  1163                 return M0_RC(-ENOMEM);
  1168         if (IS_ERR(motr_inode)) {
  1171                        (
int)PTR_ERR(motr_inode));
  1172                 return M0_RC((
int)PTR_ERR(motr_inode));
  1177         if (fid_dentry == 
NULL) {
  1181                        "failed, rc=%d", -ENOMEM);
  1182                 return M0_RC(-ENOMEM);
  1188         if (IS_ERR(fid_inode)) {
  1193                        "failed, rc=%d", (
int)PTR_ERR(fid_inode));
  1194                 return M0_RC((
int)PTR_ERR(fid_inode));
  1197         d_add(motr_dentry, motr_inode);
  1198         csb->csb_motr_dentry = motr_dentry;
  1200         d_add(fid_dentry, fid_inode);
  1201         csb->csb_fid_dentry = fid_dentry;
  1208         struct m0t1fs_mdop          
mo;
  1214                         mo.mo_attr.ca_name.b_addr,
  1215                         mo.mo_attr.ca_name.b_nob,
  1224         struct inode             *root_inode;
  1226         struct m0t1fs_sb         *
csb = M0T1FS_SB(
sb);
  1233         if (!
csb->csb_oostore) {
  1239                 sb->s_magic = 
rep->f_type;
  1240                 csb->csb_namelen = 
rep->f_namelen;
  1251         if (IS_ERR(root_inode)) {
  1252                 rc = (
int)PTR_ERR(root_inode);
  1255 #if LINUX_VERSION_CODE >= KERNEL_VERSION(3,10,0)  1256         sb->s_root = d_make_root(root_inode);
  1258         sb->s_root = d_alloc_root(root_inode);
  1260         if (
sb->s_root == 
NULL) {
  1274         struct m0t1fs_sb *
csb;
  1294 #if LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0)  1295         rc = bdi_init(&
csb->csb_backing_dev_info);
  1309         sb->s_fs_info        = 
csb;
  1311         sb->s_blocksize_bits = PAGE_SHIFT;
  1312         sb->s_maxbytes       = MAX_LFS_FILESIZE;
  1314 #if LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0)  1317         rc = bdi_register_dev(&
csb->csb_backing_dev_info, 
sb->s_dev);
  1322         sb->s_bdi = &
csb->csb_backing_dev_info;
  1325 #if LINUX_VERSION_CODE >= KERNEL_VERSION(4,9,0)  1354 #if LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0)  1356                 bdi_unregister(
sb->s_bdi);
  1371 #if LINUX_VERSION_CODE >= KERNEL_VERSION(3,10,0)  1373                                         int flags, 
const char *devname,
  1376 M0_INTERNAL 
int m0t1fs_get_sb(
struct file_system_type *fstype, 
int flags,
  1377                               const char *devname, 
void *
data,
  1378                               struct vfsmount *mnt)
  1382         M0_ENTRY(
"flags: 0x%x, devname: %s, data: %s", 
flags, devname,
  1384 #if LINUX_VERSION_CODE >= KERNEL_VERSION(3,10,0)  1394         struct m0t1fs_sb *
csb = M0T1FS_SB(
sb);
  1402 #if LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0)  1404                 bdi_unregister(
sb->s_bdi);
  1414         kill_anon_super(
sb);
  1425 #if LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0)  1426                 bdi_destroy(&
csb->csb_backing_dev_info);
  1431         M0_LOG(
M0_INFO, 
"mem stats :\n a_ioreq_nr = %llu, d_ioreq_nr = %llu\n"  1432                         "a_pargrp_iomap_nr = %llu, d_pargrp_iomap_nr = %llu\n"  1433                         "a_target_ioreq_nr = %llu, d_target_ioreq_nr = %llu\n",
  1438         M0_LOG(
M0_INFO, 
"a_io_req_fop_nr = %llu, d_io_req_fop_nr = %llu\n"  1439                         "a_data_buf_nr = %llu, d_data_buf_nr = %llu\n"  1440                         "a_page_nr = %llu, d_page_nr = %llu\n",
  1460                 if (!
csb->csb_active &&
  1475         csb->csb_active = 
false;
  1484 #undef M0_TRACE_SUBSYSTEM M0_INTERNAL struct inode * m0t1fs_iget(struct super_block *sb, const struct m0_fid *fid, struct m0_fop_cob *body)
 
M0_INTERNAL int m0_spiel__fs_stats_fetch(struct m0_spiel_core *spc, struct m0_fs_stats *stats)
 
static int str_parse(char **dest, const substring_t *src)
 
M0_INTERNAL void m0_reqh_service_cancel_reconnect(struct m0_reqh_service_ctx *ctx)
 
void m0_be_ut_seg_fini(struct m0_be_ut_seg *ut_seg)
 
M0_INTERNAL void m0_chan_wait(struct m0_clink *link)
 
M0_INTERNAL void m0_pools_common_fini(struct m0_pools_common *pc)
 
void m0_rpc_machine_fini(struct m0_rpc_machine *machine)
 
static bool m0t1fs_conf_ready_cb(struct m0_clink *clink)
 
M0_INTERNAL void m0_reqh_services_terminate(struct m0_reqh *reqh)
 
M0_INTERNAL void m0_mutex_unlock(struct m0_mutex *mutex)
 
void m0_net_domain_fini(struct m0_net_domain *dom)
 
M0_INTERNAL void m0_chan_broadcast_lock(struct m0_chan *chan)
 
M0_INTERNAL const struct m0_fid M0_ROOT_FID
 
void m0_addb2_sys_net_stop(struct m0_addb2_sys *sys)
 
M0_INTERNAL int m0_motr_ha_start(struct m0_motr_ha *mha)
 
int const char const void size_t int flags
 
static bool is_empty(const char *s)
 
M0_INTERNAL void m0_clink_init(struct m0_clink *link, m0_chan_cb_t cb)
 
M0_INTERNAL void m0_clink_del_lock(struct m0_clink *link)
 
int m0_thread_join(struct m0_thread *q)
 
M0_INTERNAL int m0_conf_full_load(struct m0_conf_root *r)
 
M0_INTERNAL const char M0_DOT_MOTR_FID_NAME[]
 
M0_INTERNAL int m0t1fs_fill_cob_attr(struct m0_fop_cob *body)
 
#define M0_REQH_INIT(reqh,...)
 
M0_INTERNAL void m0_uuid_generate(struct m0_uint128 *u)
 
M0_INTERNAL struct m0_pool_version * m0_pool_version_find(struct m0_pools_common *pc, const struct m0_fid *id)
 
struct m0_chan rh_conf_cache_ready_async
 
static void m0t1fs_dput(struct dentry *dentry)
 
struct m0_conf_obj rt_obj
 
struct m0_pool_version * pv
 
static struct m0_motr_ha_cfg motr_ha_cfg
 
#define M0_LOG(level,...)
 
M0_INTERNAL void m0_reqh_layouts_cleanup(struct m0_reqh *reqh)
 
static int addb2_net_disable
 
const struct m0_conf_obj_type M0_CONF_SERVICE_TYPE
 
struct m0hsm_options options
 
int m0t1fs_ha_init(struct m0t1fs_sb *csb, const char *ha_addr)
 
struct m0_bitmap m0t1fs_client_ep_tmid
 
static int mount_opts_validate(const struct mount_opts *mops)
 
M0_INTERNAL void m0t1fs_destroy_inode(struct inode *inode)
 
M0_TL_DEFINE(csb_inodes, M0_INTERNAL, struct m0t1fs_inode)
 
M0_INTERNAL struct m0_rconfc * m0_csb2rconfc(struct m0t1fs_sb *csb)
 
M0_INTERNAL struct m0_rpc_session * m0t1fs_filename_to_mds_session(const struct m0t1fs_sb *csb, const unsigned char *filename, unsigned int nlen, bool use_hint, uint32_t hash_hint)
 
void m0t1fs_rpc_fini(struct m0t1fs_sb *csb)
 
static void service_connect_wait(struct m0t1fs_sb *csb)
 
M0_INTERNAL void m0_rconfc_stop_sync(struct m0_rconfc *rconfc)
 
struct m0_chan rh_conf_cache_ready
 
static void ast_thread(struct m0t1fs_sb *csb)
 
void * m0_fop_data(const struct m0_fop *fop)
 
enum m0_md_lustre_logrec_type __attribute__
 
M0_INTERNAL void m0_rconfc_fatal_cb_set(struct m0_rconfc *rconfc, m0_rconfc_cb_t cb)
 
M0_INTERNAL const struct m0_fid M0_DOT_MOTR_FID_FID
 
void m0_be_ut_seg_init(struct m0_be_ut_seg *ut_seg, struct m0_be_ut_backend *ut_be, m0_bcount_t size)
 
#define M0_THREAD_INIT(thread, TYPE, init, func, arg, namefmt,...)
 
static int m0t1fs_obf_alloc(struct super_block *sb)
 
M0_INTERNAL struct m0 * m0_get(void)
 
static bool m0t1fs_conf_expired_cb(struct m0_clink *clink)
 
MODULE_PARM_DESC(local_addr, "End-point address of m0t1fs " "e.g. 172.18.50.40@o2ib1:12345:34:\ "the tmid will be generated and filled by every mount")
 
#define container_of(ptr, type, member)
 
M0_INTERNAL void m0_mutex_lock(struct m0_mutex *mutex)
 
M0_INTERNAL void m0t1fs_sb_init(struct m0t1fs_sb *csb)
 
M0_INTERNAL struct dentry * m0t1fs_mount(struct file_system_type *fstype, int flags, const char *devname, void *data)
 
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)
 
static int mount_opts_parse(struct m0t1fs_sb *csb, char *options, struct mount_opts *dest)
 
M0_INTERNAL void m0_reqh_service_connect_wait(struct m0_reqh_service_ctx *ctx)
 
M0_INTERNAL void m0_reqh_fini(struct m0_reqh *reqh)
 
M0_INTERNAL int m0_motr_ha_init(struct m0_motr_ha *mha, struct m0_motr_ha_cfg *mha_cfg)
 
module_param(local_addr, charp, S_IRUGO)
 
struct m0_fop_getxattr_rep * rep
 
M0_INTERNAL void m0_sm_group_fini(struct m0_sm_group *grp)
 
static struct m0_pools_common pc
 
uint64_t pc_nr_svcs[M0_CST_NR]
 
M0_INTERNAL void m0_motr_ha_disconnect(struct m0_motr_ha *mha)
 
M0_INTERNAL int m0_confc_root_open(struct m0_confc *confc, struct m0_conf_root **root)
 
static void m0t1fs_teardown(struct m0t1fs_sb *csb)
 
M0_INTERNAL void m0_sm_group_unlock(struct m0_sm_group *grp)
 
M0_INTERNAL struct m0_fid * m0_reqh2profile(struct m0_reqh *reqh)
 
M0_INTERNAL void m0t1fs_sb_fini(struct m0t1fs_sb *csb)
 
static const match_table_t m0t1fs_mntopt_tokens
 
void m0_fop_put0_lock(struct m0_fop *fop)
 
M0_INTERNAL struct m0_confc * m0_csb2confc(struct m0t1fs_sb *csb)
 
M0_INTERNAL void m0t1fs_fs_unlock(struct m0t1fs_sb *csb)
 
#define M0_ERR_INFO(rc, fmt,...)
 
struct m0_reqh_service_ctx ** pc_mds_map
 
struct m0_conf_root * root
 
return M0_ERR(-EOPNOTSUPP)
 
M0_INTERNAL bool m0_pools_common_conf_ready_async_cb(struct m0_clink *clink)
 
M0_INTERNAL void m0_pool_versions_stale_mark(struct m0_pools_common *pc, struct m0_confc_update_state *s)
 
uint32_t pc_md_redundancy
 
M0_INTERNAL const char M0_DOT_MOTR_NAME[]
 
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_confc * m0_reqh2confc(struct m0_reqh *reqh)
 
#define M0_FID_TINIT(type, container, key)
 
#define M0_AMB(obj, ptr, field)
 
static void m0t1fs_sb_layouts_fini(struct m0t1fs_sb *csb)
 
const struct m0_fid_type cot_ftype
 
M0_INTERNAL int m0_reqh_conf_setup(struct m0_reqh *reqh, struct m0_confc_args *args)
 
struct m0_net_transfer_mc rm_tm
 
M0_INTERNAL void m0_chan_init(struct m0_chan *chan, struct m0_mutex *ch_guard)
 
bool i_disable_addb2_storage
 
M0_INTERNAL void m0t1fs_fs_conf_unlock(struct m0t1fs_sb *csb)
 
M0_INTERNAL void m0_reqh_service_quit(struct m0_reqh_service *svc)
 
M0_INTERNAL bool m0_mutex_is_locked(const struct m0_mutex *mutex)
 
M0_INTERNAL void m0_sm_group_init(struct m0_sm_group *grp)
 
static int struct dentry * dentry
 
M0_INTERNAL void m0_pools_common_service_ctx_connect_sync(struct m0_pools_common *pc)
 
m0_time_t m0_time_now(void)
 
M0_INTERNAL int m0_rpc_net_buffer_pool_setup(struct m0_net_domain *ndom, struct m0_net_buffer_pool *app_pool, uint32_t bufs_nr, uint32_t tm_nr)
 
static struct m0t1fs_sb * rconfc2csb(struct m0_rconfc *rconfc)
 
M0_INTERNAL int m0t1fs_ref_get_lock(struct m0t1fs_sb *csb)
 
M0_INTERNAL uint32_t m0_rpc_bufs_nr(uint32_t len, uint32_t tms_nr)
 
static int m0t1fs_root_alloc(struct super_block *sb)
 
static void ast_thread_stop(struct m0t1fs_sb *csb)
 
M0_INTERNAL int m0_bitmap_ffz(const struct m0_bitmap *map)
 
static void m0t1fs_rconfc_fatal_cb(struct m0_rconfc *rconfc)
 
M0_INTERNAL int m0_rpc_machine_init(struct m0_rpc_machine *machine, struct m0_net_domain *net_dom, const char *ep_addr, struct m0_reqh *reqh, struct m0_net_buffer_pool *receive_pool, uint32_t colour, m0_bcount_t msg_size, uint32_t queue_len)
 
struct m0_net_xprt * m0_net_xprt_default_get(void)
 
M0_INTERNAL void m0_pools_service_ctx_destroy(struct m0_pools_common *pc)
 
M0_INTERNAL int m0_reqh_mdpool_layout_build(struct m0_reqh *reqh)
 
void * m0_alloc(size_t size)
 
M0_INTERNAL void m0_mutex_init(struct m0_mutex *mutex)
 
static int m0_rconfc_start_sync(struct m0_rconfc *rconfc)
 
M0_INTERNAL int m0_conf_confc_ha_update(struct m0_confc *confc)
 
M0_INTERNAL const struct m0_fid M0_DOT_MOTR_FID
 
M0_INTERNAL void m0_rconfc_lock(struct m0_rconfc *rconfc)
 
M0_INTERNAL void m0_bitmap_set(struct m0_bitmap *map, size_t idx, bool val)
 
static void m0t1fs_ha_process_event(struct m0t1fs_sb *csb, enum m0_conf_ha_process_event event)
 
int m0t1fs_sync_fs(struct super_block *sb, int wait)
 
struct m0_sm_group * lo_grp
 
static struct super_block super_block
 
M0_INTERNAL void m0t1fs_kill_sb(struct super_block *sb)
 
static int m0t1fs_sb_mdpool_layouts_init(struct m0t1fs_sb *csb)
 
M0_INTERNAL void m0_motr_ha_connect(struct m0_motr_ha *mha)
 
static struct m0_clink clink[RDWR_REQUEST_MAX]
 
M0_INTERNAL int m0_reqh_service_setup(struct m0_reqh_service **out, struct m0_reqh_service_type *stype, struct m0_reqh *reqh, struct m0_reqh_context *rctx, const struct m0_fid *fid)
 
M0_INTERNAL int m0_fid_sscanf(const char *s, struct m0_fid *fid)
 
static int num_parse(uint32_t *dest, const substring_t *src)
 
M0_INTERNAL int m0t1fs_fs_conf_lock(struct m0t1fs_sb *csb)
 
M0_INTERNAL void m0t1fs_fs_lock(struct m0t1fs_sb *csb)
 
static struct fdmi_ctx ctx
 
int m0_addb2_sys_net_start_with(struct m0_addb2_sys *sys, struct m0_tl *head)
 
uint64_t m0_time_seconds(const m0_time_t time)
 
static bool m0t1fs_conf_ready_async_cb(struct m0_clink *clink)
 
struct m0_mutex m0t1fs_mutex
 
M0_INTERNAL bool m0t1fs_fs_is_locked(const struct m0t1fs_sb *csb)
 
M0_INTERNAL struct inode * m0t1fs_alloc_inode(struct super_block *sb)
 
M0_INTERNAL void m0_chan_signal_lock(struct m0_chan *chan)
 
struct io_mem_stats iommstats
 
M0_INTERNAL void m0_rconfc_fini(struct m0_rconfc *rconfc)
 
M0_INTERNAL int m0_reqh_state_get(struct m0_reqh *reqh)
 
const struct xattr_handler * m0t1fs_xattr_handlers[]
 
static int64_t m0_atomic64_get(const struct m0_atomic64 *a)
 
M0_INTERNAL bool m0_fid_eq(const struct m0_fid *fid0, const struct m0_fid *fid1)
 
void m0_clink_add_lock(struct m0_chan *chan, struct m0_clink *link)
 
M0_INTERNAL int m0_conf_process2service_get(struct m0_confc *confc, const struct m0_fid *process_fid, enum m0_conf_service_type stype, struct m0_fid *sfid)
 
struct m0_reqh_service_type m0_rms_type
 
int m0t1fs_mds_statfs(struct m0t1fs_sb *csb, struct m0_fop **rep_fop)
 
M0_INTERNAL void m0_reqh_start(struct m0_reqh *reqh)
 
M0_INTERNAL void m0_rconfc_unlock(struct m0_rconfc *rconfc)
 
static struct super_block sb
 
int m0_net_domain_init(struct m0_net_domain *dom, const struct m0_net_xprt *xprt)
 
M0_INTERNAL int m0_pools_common_init(struct m0_pools_common *pc, struct m0_rpc_machine *rmach)
 
M0_INTERNAL struct m0_locality * m0_locality0_get(void)
 
struct m0_ha_dispatcher_cfg mhc_dispatcher_cfg
 
M0_INTERNAL const struct m0_fid M0_MDSERVICE_START_FID
 
int m0t1fs_rm_service_start(struct m0t1fs_sb *csb)
 
static void inodes_layout_ref_drop(struct m0t1fs_sb *csb)
 
struct m0_chan rh_conf_cache_exp
 
static void conf_ready_async_cb_locked(struct m0t1fs_sb *csb)
 
#define M0_ALLOC_PTR(ptr)
 
M0_INTERNAL void m0_clink_add(struct m0_chan *chan, struct m0_clink *link)
 
M0_INTERNAL void m0_conf_ha_process_event_post(struct m0_ha *ha, struct m0_ha_link *hl, const struct m0_fid *process_fid, uint64_t pid, enum m0_conf_ha_process_event event, enum m0_conf_ha_process_type type)
 
M0_INTERNAL int m0_pools_service_ctx_create(struct m0_pools_common *pc)
 
int m0t1fs_rpc_init(struct m0t1fs_sb *csb, const char *ep)
 
static uint32_t tm_recv_queue_min_len
 
M0_INTERNAL struct m0_addb2_sys * m0_addb2_global_get(void)
 
struct m0t1fs_sb * reqh2sb(struct m0_reqh *reqh)
 
M0_TL_DESCR_DEFINE(csb_inodes, "m0t1fs_inode anchored in m0t1fs_sb", M0_INTERNAL, struct m0t1fs_inode, ci_sb_linkage, ci_magic, M0_T1FS_INODE_MAGIC, M0_T1FS_INODE_HEAD_MAGIC)
 
void m0t1fs_net_fini(struct m0t1fs_sb *csb)
 
M0_INTERNAL void m0_mutex_fini(struct m0_mutex *mutex)
 
M0_INTERNAL void m0_clink_fini(struct m0_clink *link)
 
static int m0t1fs_fid_sscanf(const char *s, struct m0_fid *fid, const char *descr)
 
M0_INTERNAL void m0_sm_group_lock(struct m0_sm_group *grp)
 
M0_INTERNAL struct m0_rpc_session * m0t1fs_container_id_to_session(const struct m0_pool_version *pver, uint64_t container_id)
 
static struct m0_rconfc * rconfc(struct m0_client *m0c)
 
static int m0t1fs_statfs(struct dentry *dentry, struct kstatfs *buf)
 
M0_INTERNAL void m0_confc_close(struct m0_conf_obj *obj)
 
struct m0_rconfc rh_rconfc
 
static void reqh_fini(void)
 
M0_INTERNAL void m0_layout_instance_fini(struct m0_layout_instance *li)
 
M0_INTERNAL void m0_motr_ha_stop(struct m0_motr_ha *mha)
 
M0_INTERNAL void io_bob_tlists_init(void)
 
void m0t1fs_ha_fini(struct m0t1fs_sb *csb)
 
const struct m0_conf_obj_type M0_CONF_PROCESS_TYPE
 
static void m0t1fs_obf_dealloc(struct m0t1fs_sb *csb)
 
int m0t1fs_net_init(struct m0t1fs_sb *csb, const char *ep)
 
M0_INTERNAL int m0_pool_versions_setup(struct m0_pools_common *pc)
 
static const struct super_operations m0t1fs_super_operations
 
void m0_rpc_net_buffer_pool_cleanup(struct m0_net_buffer_pool *app_pool)
 
M0_INTERNAL void m0_pool_versions_destroy(struct m0_pools_common *pc)
 
M0_INTERNAL struct inode * m0t1fs_root_iget(struct super_block *sb, const struct m0_fid *root_fid)
 
M0_INTERNAL void m0_sm_asts_run(struct m0_sm_group *grp)
 
M0_INTERNAL void m0_motr_ha_fini(struct m0_motr_ha *mha)
 
#define m0_tl_for(name, head, obj)
 
M0_INTERNAL void m0_chan_fini_lock(struct m0_chan *chan)
 
static struct m0_addb2_source * s
 
static int m0t1fs_fill_super(struct super_block *sb, void *data, int silent __attribute__((unused)))
 
int m0t1fs_setup(struct m0t1fs_sb *csb, const struct mount_opts *mops)
 
struct m0_pdclust_src_addr src
 
M0_INTERNAL void m0_chan_broadcast(struct m0_chan *chan)
 
static struct m0_rpc_machine rpc_machine
 
M0_INTERNAL void m0t1fs_ref_put_lock(struct m0t1fs_sb *csb)
 
M0_INTERNAL unsigned int m0_full_name_hash(const unsigned char *name, unsigned int len)
 
static uint32_t max_rpc_msg_size
 
void m0t1fs_rm_service_quit(struct m0t1fs_sb *csb)
 
static int _fs_stats_fetch(struct m0t1fs_sb *csb, struct m0_fs_stats *stats)
 
static void m0_atomic64_set(struct m0_atomic64 *a, int64_t num)
 
M0_INTERNAL void m0_fid_tassume(struct m0_fid *fid, const struct m0_fid_type *ft)
 
M0_INTERNAL struct m0_reqh_service_ctx * m0_reqh_service_ctx_from_session(struct m0_rpc_session *session)
 
M0_INTERNAL void m0_pools_destroy(struct m0_pools_common *pc)
 
struct m0_net_buffer_pool * ntm_recv_pool
 
static void mount_opts_fini(struct mount_opts *mops)