/Linux-v5.10/fs/ceph/ |
D | mds_client.c | 60 static void __wake_requests(struct ceph_mds_client *mdsc, 671 struct ceph_mds_session *__ceph_lookup_mds_session(struct ceph_mds_client *mdsc, in __ceph_lookup_mds_session() argument 674 if (mds >= mdsc->max_sessions || !mdsc->sessions[mds]) in __ceph_lookup_mds_session() 676 return ceph_get_mds_session(mdsc->sessions[mds]); in __ceph_lookup_mds_session() 679 static bool __have_session(struct ceph_mds_client *mdsc, int mds) in __have_session() argument 681 if (mds >= mdsc->max_sessions || !mdsc->sessions[mds]) in __have_session() 687 static int __verify_registered_session(struct ceph_mds_client *mdsc, in __verify_registered_session() argument 690 if (s->s_mds >= mdsc->max_sessions || in __verify_registered_session() 691 mdsc->sessions[s->s_mds] != s) in __verify_registered_session() 700 static struct ceph_mds_session *register_session(struct ceph_mds_client *mdsc, in register_session() argument [all …]
|
D | quota.c | 15 struct ceph_mds_client *mdsc = ceph_sb_to_mdsc(inode->i_sb); in ceph_adjust_quota_realms_count() local 17 atomic64_inc(&mdsc->quotarealms_count); in ceph_adjust_quota_realms_count() 19 atomic64_dec(&mdsc->quotarealms_count); in ceph_adjust_quota_realms_count() 25 struct ceph_mds_client *mdsc = ceph_sb_to_mdsc(sb); in ceph_has_realms_with_quotas() local 28 if (atomic64_read(&mdsc->quotarealms_count) > 0) in ceph_has_realms_with_quotas() 37 void ceph_handle_quota(struct ceph_mds_client *mdsc, in ceph_handle_quota() argument 41 struct super_block *sb = mdsc->fsc->sb; in ceph_handle_quota() 82 find_quotarealm_inode(struct ceph_mds_client *mdsc, u64 ino) in find_quotarealm_inode() argument 87 mutex_lock(&mdsc->quotarealms_inodes_mutex); in find_quotarealm_inode() 88 node = &(mdsc->quotarealms_inodes.rb_node); in find_quotarealm_inode() [all …]
|
D | snap.c | 65 void ceph_get_snap_realm(struct ceph_mds_client *mdsc, in ceph_get_snap_realm() argument 77 spin_lock(&mdsc->snap_empty_lock); in ceph_get_snap_realm() 79 spin_unlock(&mdsc->snap_empty_lock); in ceph_get_snap_realm() 111 struct ceph_mds_client *mdsc, in ceph_create_snap_realm() argument 128 __insert_snap_realm(&mdsc->snap_realms, realm); in ceph_create_snap_realm() 129 mdsc->num_snap_realms++; in ceph_create_snap_realm() 140 static struct ceph_snap_realm *__lookup_snap_realm(struct ceph_mds_client *mdsc, in __lookup_snap_realm() argument 143 struct rb_node *n = mdsc->snap_realms.rb_node; in __lookup_snap_realm() 160 struct ceph_snap_realm *ceph_lookup_snap_realm(struct ceph_mds_client *mdsc, in ceph_lookup_snap_realm() argument 164 r = __lookup_snap_realm(mdsc, ino); in ceph_lookup_snap_realm() [all …]
|
D | caps.c | 45 static u64 __get_oldest_flush_tid(struct ceph_mds_client *mdsc); 46 static void __kick_flushing_caps(struct ceph_mds_client *mdsc, 127 void ceph_caps_init(struct ceph_mds_client *mdsc) in ceph_caps_init() argument 129 INIT_LIST_HEAD(&mdsc->caps_list); in ceph_caps_init() 130 spin_lock_init(&mdsc->caps_list_lock); in ceph_caps_init() 133 void ceph_caps_finalize(struct ceph_mds_client *mdsc) in ceph_caps_finalize() argument 137 spin_lock(&mdsc->caps_list_lock); in ceph_caps_finalize() 138 while (!list_empty(&mdsc->caps_list)) { in ceph_caps_finalize() 139 cap = list_first_entry(&mdsc->caps_list, in ceph_caps_finalize() 144 mdsc->caps_total_count = 0; in ceph_caps_finalize() [all …]
|
D | debugfs.c | 31 if (!fsc->mdsc || !fsc->mdsc->mdsmap) in mdsmap_show() 33 mdsmap = fsc->mdsc->mdsmap; in mdsmap_show() 55 struct ceph_mds_client *mdsc = fsc->mdsc; in mdsc_show() local 62 mutex_lock(&mdsc->mutex); in mdsc_show() 63 for (rp = rb_first(&mdsc->request_tree); rp; rp = rb_next(rp)) { in mdsc_show() 125 mutex_unlock(&mdsc->mutex); in mdsc_show() 146 struct ceph_mds_client *mdsc = fsc->mdsc; in metric_show() local 147 struct ceph_client_metric *m = &mdsc->metric; in metric_show() 226 struct ceph_mds_client *mdsc = fsc->mdsc; in caps_show() local 240 mutex_lock(&mdsc->mutex); in caps_show() [all …]
|
D | ioctl.c | 37 static long __validate_layout(struct ceph_mds_client *mdsc, in __validate_layout() argument 50 mutex_lock(&mdsc->mutex); in __validate_layout() 52 for (i = 0; i < mdsc->mdsmap->m_num_data_pg_pools; i++) in __validate_layout() 53 if (mdsc->mdsmap->m_data_pg_pools[i] == l->data_pool) { in __validate_layout() 57 mutex_unlock(&mdsc->mutex); in __validate_layout() 67 struct ceph_mds_client *mdsc = ceph_sb_to_client(inode->i_sb)->mdsc; in ceph_ioctl_set_layout() local 103 err = __validate_layout(mdsc, &nl); in ceph_ioctl_set_layout() 107 req = ceph_mdsc_create_request(mdsc, CEPH_MDS_OP_SETLAYOUT, in ceph_ioctl_set_layout() 125 err = ceph_mdsc_do_request(mdsc, NULL, req); in ceph_ioctl_set_layout() 142 struct ceph_mds_client *mdsc = ceph_sb_to_client(inode->i_sb)->mdsc; in ceph_ioctl_set_layout_policy() local [all …]
|
D | dir.c | 41 struct ceph_mds_client *mdsc = ceph_sb_to_mdsc(dentry->d_sb); in ceph_d_init() local 53 atomic64_inc(&mdsc->metric.total_dentries); in ceph_d_init() 311 struct ceph_mds_client *mdsc = fsc->mdsc; in ceph_readdir() local 346 __ceph_touch_fmode(ci, mdsc, CEPH_FILE_MODE_WR); in ceph_readdir() 389 req = ceph_mdsc_create_request(mdsc, op, USE_AUTH_MDS); in ceph_readdir() 426 err = ceph_mdsc_do_request(mdsc, NULL, req); in ceph_readdir() 740 struct ceph_mds_client *mdsc = ceph_sb_to_mdsc(dir->i_sb); in ceph_lookup() local 766 __ceph_touch_fmode(ci, mdsc, CEPH_FILE_MODE_RD); in ceph_lookup() 778 req = ceph_mdsc_create_request(mdsc, op, USE_ANY_MDS); in ceph_lookup() 791 err = ceph_mdsc_do_request(mdsc, NULL, req); in ceph_lookup() [all …]
|
D | mds_client.h | 234 typedef void (*ceph_mds_request_callback_t) (struct ceph_mds_client *mdsc, 239 typedef int (*ceph_mds_request_wait_callback_t) (struct ceph_mds_client *mdsc, 494 extern int ceph_send_msg_mds(struct ceph_mds_client *mdsc, 498 extern void ceph_mdsc_close_sessions(struct ceph_mds_client *mdsc); 499 extern void ceph_mdsc_force_umount(struct ceph_mds_client *mdsc); 502 extern void ceph_mdsc_sync(struct ceph_mds_client *mdsc); 508 ceph_mdsc_create_request(struct ceph_mds_client *mdsc, int op, int mode); 509 extern int ceph_mdsc_submit_request(struct ceph_mds_client *mdsc, 512 extern int ceph_mdsc_do_request(struct ceph_mds_client *mdsc, 529 extern void ceph_flush_cap_releases(struct ceph_mds_client *mdsc, [all …]
|
D | metric.c | 11 static bool ceph_mdsc_send_metrics(struct ceph_mds_client *mdsc, in ceph_mdsc_send_metrics() argument 19 struct ceph_client_metric *m = &mdsc->metric; in ceph_mdsc_send_metrics() 45 cap->hit = cpu_to_le64(percpu_counter_sum(&mdsc->metric.i_caps_hit)); in ceph_mdsc_send_metrics() 46 cap->mis = cpu_to_le64(percpu_counter_sum(&mdsc->metric.i_caps_mis)); in ceph_mdsc_send_metrics() 92 ceph_client_gid(mdsc->fsc->client), s->s_mds); in ceph_mdsc_send_metrics() 99 static void metric_get_session(struct ceph_mds_client *mdsc) in metric_get_session() argument 104 mutex_lock(&mdsc->mutex); in metric_get_session() 105 for (i = 0; i < mdsc->max_sessions; i++) { in metric_get_session() 106 s = __ceph_lookup_mds_session(mdsc, i); in metric_get_session() 117 mdsc->metric.session = s; in metric_get_session() [all …]
|
D | export.c | 125 struct ceph_mds_client *mdsc = ceph_sb_to_client(sb)->mdsc; in __lookup_inode() local 137 req = ceph_mdsc_create_request(mdsc, CEPH_MDS_OP_LOOKUPINO, in __lookup_inode() 149 err = ceph_mdsc_do_request(mdsc, NULL, req); in __lookup_inode() 195 struct ceph_mds_client *mdsc = ceph_sb_to_client(sb)->mdsc; in __snapfh_to_dentry() local 219 req = ceph_mdsc_create_request(mdsc, CEPH_MDS_OP_LOOKUPINO, in __snapfh_to_dentry() 240 err = ceph_mdsc_do_request(mdsc, NULL, req); in __snapfh_to_dentry() 297 struct ceph_mds_client *mdsc = ceph_sb_to_client(sb)->mdsc; in __get_parent() local 303 req = ceph_mdsc_create_request(mdsc, CEPH_MDS_OP_LOOKUPPARENT, in __get_parent() 324 err = ceph_mdsc_do_request(mdsc, NULL, req); in __get_parent() 442 req = ceph_mdsc_create_request(fsc->mdsc, CEPH_MDS_OP_LSSNAP, in __get_snap_name() [all …]
|
D | super.h | 119 struct ceph_mds_client *mdsc; member 458 return (struct ceph_mds_client *)ceph_sb_to_client(sb)->mdsc; in ceph_sb_to_mdsc() 724 extern void ceph_caps_init(struct ceph_mds_client *mdsc); 725 extern void ceph_caps_finalize(struct ceph_mds_client *mdsc); 726 extern void ceph_adjust_caps_max_min(struct ceph_mds_client *mdsc, 728 extern int ceph_reserve_caps(struct ceph_mds_client *mdsc, 730 extern void ceph_unreserve_caps(struct ceph_mds_client *mdsc, 896 struct ceph_snap_realm *ceph_lookup_snap_realm(struct ceph_mds_client *mdsc, 898 extern void ceph_get_snap_realm(struct ceph_mds_client *mdsc, 900 extern void ceph_put_snap_realm(struct ceph_mds_client *mdsc, [all …]
|
D | locks.c | 13 static int ceph_lock_wait_for_completion(struct ceph_mds_client *mdsc, 66 struct ceph_mds_client *mdsc = ceph_sb_to_mdsc(inode->i_sb); in ceph_lock_message() local 86 req = ceph_mdsc_create_request(mdsc, operation, USE_AUTH_MDS); in ceph_lock_message() 117 err = ceph_mdsc_do_request(mdsc, inode, req); in ceph_lock_message() 144 static int ceph_lock_wait_for_completion(struct ceph_mds_client *mdsc, in ceph_lock_wait_for_completion() argument 167 mutex_lock(&mdsc->mutex); in ceph_lock_wait_for_completion() 186 mutex_unlock(&mdsc->mutex); in ceph_lock_wait_for_completion() 190 intr_req = ceph_mdsc_create_request(mdsc, CEPH_MDS_OP_SETFILELOCK, in ceph_lock_wait_for_completion() 203 err = ceph_mdsc_do_request(mdsc, inode, intr_req); in ceph_lock_wait_for_completion()
|
D | super.c | 47 ceph_mdsc_close_sessions(fsc->mdsc); in ceph_put_super() 59 if (fsc->mdsc->mdsmap->m_num_data_pg_pools == 1) { in ceph_statfs() 60 data_pool = fsc->mdsc->mdsmap->m_data_pg_pools[0]; in ceph_statfs() 118 ceph_flush_dirty_caps(fsc->mdsc); in ceph_sync_fs() 125 ceph_mdsc_sync(fsc->mdsc); in ceph_sync_fs() 620 ceph_mdsc_handle_mdsmap(fsc->mdsc, msg); in extra_mon_dispatch() 623 ceph_mdsc_handle_fsmap(fsc->mdsc, msg); in extra_mon_dispatch() 847 ceph_mdsc_force_umount(fsc->mdsc); in ceph_umount_begin() 872 struct ceph_mds_client *mdsc = fsc->mdsc; in open_root_dentry() local 879 req = ceph_mdsc_create_request(mdsc, CEPH_MDS_OP_GETATTR, USE_ANY_MDS); in open_root_dentry() [all …]
|
D | addr.c | 235 ceph_update_read_latency(&fsc->mdsc->metric, req->r_start_latency, in ceph_do_readpage() 317 ceph_update_read_latency(&fsc->mdsc->metric, req->r_start_latency, in finish_read() 670 ceph_update_write_latency(&fsc->mdsc->metric, req->r_start_latency, in writepage_nounlock() 758 ceph_update_write_latency(&fsc->mdsc->metric, req->r_start_latency, in writepages_finish() 1835 ceph_update_write_latency(&fsc->mdsc->metric, req->r_start_latency, in ceph_uninline_data() 1881 struct ceph_mds_client *mdsc = fsc->mdsc; in __ceph_pool_perm_get() local 1889 down_read(&mdsc->pool_perm_rwsem); in __ceph_pool_perm_get() 1890 p = &mdsc->pool_perm_tree.rb_node; in __ceph_pool_perm_get() 1911 up_read(&mdsc->pool_perm_rwsem); in __ceph_pool_perm_get() 1921 down_write(&mdsc->pool_perm_rwsem); in __ceph_pool_perm_get() [all …]
|
D | inode.c | 45 struct ceph_mds_client *mdsc = ceph_sb_to_mdsc(inode->i_sb); in ceph_set_ino_cb() local 50 percpu_counter_inc(&mdsc->metric.total_inodes); in ceph_set_ino_cb() 544 struct ceph_mds_client *mdsc = ceph_sb_to_mdsc(inode->i_sb); in ceph_evict_inode() local 550 percpu_counter_dec(&mdsc->metric.total_inodes); in ceph_evict_inode() 577 ceph_put_snap_realm(mdsc, realm); in ceph_evict_inode() 579 ceph_put_snapid_map(mdsc, ci->i_snapid_map); in ceph_evict_inode() 746 struct ceph_mds_client *mdsc = ceph_sb_to_mdsc(inode->i_sb); in ceph_fill_inode() local 769 new_cap = ceph_get_cap(mdsc, caps_reservation); in ceph_fill_inode() 791 ci->i_snapid_map = ceph_get_snapid_map(mdsc, ceph_snap(inode)); in ceph_fill_inode() 1021 __ceph_touch_fmode(ci, mdsc, cap_fmode); in ceph_fill_inode() [all …]
|
D | file.c | 185 struct ceph_mds_client *mdsc = ceph_sb_to_mdsc(sb); in prepare_open_request() local 193 req = ceph_mdsc_create_request(mdsc, op, want_auth); in prepare_open_request() 285 struct ceph_mds_client *mdsc = ceph_sb_to_mdsc(inode->i_sb); in ceph_renew_caps() local 291 __ceph_touch_fmode(ci, mdsc, fmode); in ceph_renew_caps() 326 err = ceph_mdsc_do_request(mdsc, NULL, req); in ceph_renew_caps() 343 struct ceph_mds_client *mdsc = fsc->mdsc; in ceph_open() local 387 __ceph_touch_fmode(ci, mdsc, fmode); in ceph_open() 399 __ceph_touch_fmode(ci, mdsc, fmode); in ceph_open() 416 err = ceph_mdsc_do_request(mdsc, NULL, req); in ceph_open() 516 static void ceph_async_create_cb(struct ceph_mds_client *mdsc, in ceph_async_create_cb() argument [all …]
|
D | xattr.c | 952 struct ceph_mds_client *mdsc = fsc->mdsc; in ceph_sync_setxattr() local 976 req = ceph_mdsc_create_request(mdsc, op, USE_AUTH_MDS); in ceph_sync_setxattr() 1001 err = ceph_mdsc_do_request(mdsc, NULL, req); in ceph_sync_setxattr() 1016 struct ceph_mds_client *mdsc = ceph_sb_to_client(inode->i_sb)->mdsc; in __ceph_setxattr() local 1074 if (!down_read_trylock(&mdsc->snap_rwsem)) { in __ceph_setxattr() 1076 down_read(&mdsc->snap_rwsem); in __ceph_setxattr() 1119 up_read(&mdsc->snap_rwsem); in __ceph_setxattr() 1129 up_read(&mdsc->snap_rwsem); in __ceph_setxattr()
|