|
| module_param (local_addr, charp, S_IRUGO) |
|
| 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") |
|
| module_param (tm_recv_queue_min_len, int, S_IRUGO) |
|
| MODULE_PARM_DESC (tm_recv_queue_min_len, "TM receive queue minimum length") |
|
| module_param (max_rpc_msg_size, int, S_IRUGO) |
|
| MODULE_PARM_DESC (max_rpc_msg_size, "Maximum RPC message size") |
|
| module_param (addb2_net_disable, int, S_IRUGO) |
|
| MODULE_PARM_DESC (addb2_net_disable, "Disable addb2 records network submit") |
|
M0_INTERNAL void | io_bob_tlists_init (void) |
|
static int | m0t1fs_statfs (struct dentry *dentry, struct kstatfs *buf) |
|
static void | inodes_layout_ref_drop (struct m0t1fs_sb *csb) |
|
static bool | m0t1fs_conf_ready_async_cb (struct m0_clink *clink) |
|
static void | conf_ready_async_cb_locked (struct m0t1fs_sb *csb) |
|
| 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) |
|
| M0_TL_DEFINE (csb_inodes, M0_INTERNAL, struct m0t1fs_inode) |
|
M0_INTERNAL void | m0t1fs_fs_lock (struct m0t1fs_sb *csb) |
|
M0_INTERNAL void | m0t1fs_fs_unlock (struct m0t1fs_sb *csb) |
|
M0_INTERNAL bool | m0t1fs_fs_is_locked (const 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) |
|
M0_INTERNAL struct m0_rpc_session * | m0t1fs_container_id_to_session (const struct m0_pool_version *pver, uint64_t container_id) |
|
static int | _fs_stats_fetch (struct m0t1fs_sb *csb, struct m0_fs_stats *stats) |
|
static void | mount_opts_fini (struct mount_opts *mops) |
|
static int | str_parse (char **dest, const substring_t *src) |
|
static int | num_parse (uint32_t *dest, const substring_t *src) |
|
static bool | is_empty (const char *s) |
|
static int | mount_opts_validate (const struct mount_opts *mops) |
|
static int | mount_opts_parse (struct m0t1fs_sb *csb, char *options, struct mount_opts *dest) |
|
static void | ast_thread (struct m0t1fs_sb *csb) |
|
static void | ast_thread_stop (struct m0t1fs_sb *csb) |
|
static void | m0t1fs_obf_dealloc (struct m0t1fs_sb *csb) |
|
M0_INTERNAL void | m0t1fs_sb_init (struct m0t1fs_sb *csb) |
|
M0_INTERNAL void | m0t1fs_sb_fini (struct m0t1fs_sb *csb) |
|
static void | m0t1fs_ha_process_event (struct m0t1fs_sb *csb, enum m0_conf_ha_process_event event) |
|
int | m0t1fs_ha_init (struct m0t1fs_sb *csb, const char *ha_addr) |
|
void | m0t1fs_ha_fini (struct m0t1fs_sb *csb) |
|
static int | m0t1fs_sb_mdpool_layouts_init (struct m0t1fs_sb *csb) |
|
static void | m0t1fs_sb_layouts_fini (struct m0t1fs_sb *csb) |
|
void | m0t1fs_rm_service_quit (struct m0t1fs_sb *csb) |
|
int | m0t1fs_rm_service_start (struct m0t1fs_sb *csb) |
|
int | m0t1fs_net_init (struct m0t1fs_sb *csb, const char *ep) |
|
void | m0t1fs_net_fini (struct m0t1fs_sb *csb) |
|
int | m0t1fs_rpc_init (struct m0t1fs_sb *csb, const char *ep) |
|
struct m0t1fs_sb * | reqh2sb (struct m0_reqh *reqh) |
|
static struct m0t1fs_sb * | rconfc2csb (struct m0_rconfc *rconfc) |
|
M0_INTERNAL struct m0_rconfc * | m0_csb2rconfc (struct m0t1fs_sb *csb) |
|
M0_INTERNAL struct m0_confc * | m0_csb2confc (struct m0t1fs_sb *csb) |
|
void | m0t1fs_rpc_fini (struct m0t1fs_sb *csb) |
|
M0_INTERNAL int | m0t1fs_ref_get_lock (struct m0t1fs_sb *csb) |
|
M0_INTERNAL void | m0t1fs_ref_put_lock (struct m0t1fs_sb *csb) |
|
static bool | m0t1fs_conf_expired_cb (struct m0_clink *clink) |
|
static bool | m0t1fs_conf_ready_cb (struct m0_clink *clink) |
|
static void | m0t1fs_rconfc_fatal_cb (struct m0_rconfc *rconfc) |
|
static int | m0t1fs_fid_sscanf (const char *s, struct m0_fid *fid, const char *descr) |
|
int | m0t1fs_setup (struct m0t1fs_sb *csb, const struct mount_opts *mops) |
|
static void | m0t1fs_teardown (struct m0t1fs_sb *csb) |
|
static void | m0t1fs_dput (struct dentry *dentry) |
|
M0_INTERNAL int | m0t1fs_fill_cob_attr (struct m0_fop_cob *body) |
|
static int | m0t1fs_obf_alloc (struct super_block *sb) |
|
static void | service_connect_wait (struct m0t1fs_sb *csb) |
|
static int | m0t1fs_root_alloc (struct super_block *sb) |
|
static int | m0t1fs_fill_super (struct super_block *sb, void *data, int silent __attribute__((unused))) |
|
M0_INTERNAL struct dentry * | m0t1fs_mount (struct file_system_type *fstype, int flags, const char *devname, void *data) |
|
M0_INTERNAL void | m0t1fs_kill_sb (struct super_block *sb) |
|
static bool m0t1fs_conf_ready_cb |
( |
struct m0_clink * |
clink | ) |
|
|
static |
When configuration is revoked, m0t1fs_sb::csb_confc_state changes to M0_CC_REVOKED. Subsequent io requests do not update m0t1fs_sb::csb_reqs_nr, and instead wait on m0t1fs_sb::csb_conf_ready_chan, till m0t1fs_sb returns to M0_CC_READY. Any io request that is not waiting and has registered its presence by incrementing m0t1fs_sb::csb_reqs_nr is called as an active request. An active request continues with its usual flow of operations even when state of m0t1fs_sb changes to M0_CC_REVOKED.
When new configuration becomes available, in-memory representations of stale pool versions need to be removed. In order to do this it is necessary to ensure that there are no active requests, since they are the potential users of these pool versions.
On availability of the new configuration the callback works in two phases. Callback that's triggered on m0_reqh::rh_conf_cache_ready channel changes the state of m0t1fs_sb to M0_CC_GETTING_READY. When a callback on m0_reqh::rh_conf_cache_ready_async is triggered, it checks if any active requests are present and cleans the stale pool versions in case there are no active requests. When an active request is present this callback returns without removing stale pool versions. In this case the last active request clears the stale pool versions before leaving.
The process of clearing stale pool versions also involves removal of layouts associated with them from the layout domain, and updating the state of m0t1fs_sb to M0_CC_READY, before signalling the requests waiting on m0t1fs_sb::csb_conf_ready_chan.
Definition at line 880 of file super.c.