osdc 1569 drivers/block/rbd.c struct ceph_osd_client *osdc = &rbd_dev->rbd_client->client->osdc; osdc 1575 drivers/block/rbd.c req = ceph_osdc_alloc_request(osdc, snapc, num_ops, false, GFP_NOIO); osdc 1864 drivers/block/rbd.c struct ceph_osd_client *osdc = &rbd_dev->rbd_client->client->osdc; osdc 1876 drivers/block/rbd.c ret = ceph_cls_lock(osdc, &oid, &rbd_dev->header_oloc, RBD_LOCK_NAME, osdc 1886 drivers/block/rbd.c ret = ceph_cls_lock_info(osdc, &oid, &rbd_dev->header_oloc, osdc 1904 drivers/block/rbd.c ret = ceph_cls_break_lock(osdc, &oid, &rbd_dev->header_oloc, osdc 1922 drivers/block/rbd.c struct ceph_osd_client *osdc = &rbd_dev->rbd_client->client->osdc; osdc 1928 drivers/block/rbd.c ret = ceph_cls_unlock(osdc, &oid, &rbd_dev->header_oloc, RBD_LOCK_NAME, osdc 1961 drivers/block/rbd.c struct ceph_osd_client *osdc = &rbd_dev->rbd_client->client->osdc; osdc 1985 drivers/block/rbd.c ret = ceph_osdc_call(osdc, &oid, &rbd_dev->header_oloc, osdc 2195 drivers/block/rbd.c struct ceph_osd_client *osdc = &rbd_dev->rbd_client->client->osdc; osdc 2208 drivers/block/rbd.c req = ceph_osdc_alloc_request(osdc, NULL, num_ops, false, GFP_NOIO); osdc 2241 drivers/block/rbd.c ceph_osdc_start_request(osdc, req, false); osdc 3798 drivers/block/rbd.c struct ceph_osd_client *osdc = &rbd_dev->rbd_client->client->osdc; osdc 3806 drivers/block/rbd.c ret = ceph_cls_lock(osdc, &rbd_dev->header_oid, &rbd_dev->header_oloc, osdc 3821 drivers/block/rbd.c struct ceph_osd_client *osdc = &rbd_dev->rbd_client->client->osdc; osdc 3827 drivers/block/rbd.c ret = ceph_cls_unlock(osdc, &rbd_dev->header_oid, &rbd_dev->header_oloc, osdc 3844 drivers/block/rbd.c struct ceph_osd_client *osdc = &rbd_dev->rbd_client->client->osdc; osdc 3858 drivers/block/rbd.c return ceph_osdc_notify(osdc, &rbd_dev->header_oid, osdc 3990 drivers/block/rbd.c struct ceph_osd_client *osdc = &rbd_dev->rbd_client->client->osdc; osdc 3997 drivers/block/rbd.c ret = ceph_cls_lock_info(osdc, &rbd_dev->header_oid, osdc 4037 drivers/block/rbd.c struct ceph_osd_client *osdc = &rbd_dev->rbd_client->client->osdc; osdc 4044 drivers/block/rbd.c ret = ceph_osdc_list_watchers(osdc, &rbd_dev->header_oid, osdc 4113 drivers/block/rbd.c ret = ceph_cls_break_lock(&client->osdc, &rbd_dev->header_oid, osdc 4449 drivers/block/rbd.c struct ceph_osd_client *osdc = &rbd_dev->rbd_client->client->osdc; osdc 4465 drivers/block/rbd.c ret = ceph_osdc_notify_ack(osdc, &rbd_dev->header_oid, osdc 4577 drivers/block/rbd.c struct ceph_osd_client *osdc = &rbd_dev->rbd_client->client->osdc; osdc 4583 drivers/block/rbd.c handle = ceph_osdc_watch(osdc, &rbd_dev->header_oid, osdc 4598 drivers/block/rbd.c struct ceph_osd_client *osdc = &rbd_dev->rbd_client->client->osdc; osdc 4604 drivers/block/rbd.c ret = ceph_osdc_unwatch(osdc, rbd_dev->watch_handle); osdc 4654 drivers/block/rbd.c ceph_osdc_flush_notifies(&rbd_dev->rbd_client->client->osdc); osdc 4662 drivers/block/rbd.c struct ceph_osd_client *osdc = &rbd_dev->rbd_client->client->osdc; osdc 4670 drivers/block/rbd.c ret = ceph_cls_set_cookie(osdc, &rbd_dev->header_oid, osdc 4750 drivers/block/rbd.c struct ceph_osd_client *osdc = &rbd_dev->rbd_client->client->osdc; osdc 4780 drivers/block/rbd.c ret = ceph_osdc_call(osdc, oid, oloc, RBD_DRV_NAME, method_name, osdc 4934 drivers/block/rbd.c struct ceph_osd_client *osdc = &rbd_dev->rbd_client->client->osdc; osdc 4940 drivers/block/rbd.c req = ceph_osdc_alloc_request(osdc, NULL, 1, false, GFP_KERNEL); osdc 4962 drivers/block/rbd.c ceph_osdc_start_request(osdc, req, false); osdc 4963 drivers/block/rbd.c ret = ceph_osdc_wait_request(osdc, req); osdc 5835 drivers/block/rbd.c struct ceph_osd_client *osdc = &rbd_dev->rbd_client->client->osdc; osdc 5840 drivers/block/rbd.c ret = ceph_osdc_call(osdc, &rbd_dev->header_oid, &rbd_dev->header_oloc, osdc 5852 drivers/block/rbd.c ret = ceph_osdc_call(osdc, &rbd_dev->header_oid, &rbd_dev->header_oloc, osdc 5878 drivers/block/rbd.c struct ceph_osd_client *osdc = &rbd_dev->rbd_client->client->osdc; osdc 5883 drivers/block/rbd.c ret = ceph_osdc_call(osdc, &rbd_dev->header_oid, &rbd_dev->header_oloc, osdc 6216 drivers/block/rbd.c struct ceph_osd_client *osdc = &rbd_dev->rbd_client->client->osdc; osdc 6229 drivers/block/rbd.c pool_name = ceph_pg_pool_name_by_id(osdc->osdmap, spec->pool_id); osdc 7077 drivers/block/rbd.c rc = ceph_pg_poolid_by_name(rbdc->client->osdc.osdmap, spec->pool_name); osdc 221 fs/ceph/addr.c err = ceph_osdc_readpages(&fsc->client->osdc, ceph_vino(inode), osdc 310 fs/ceph/addr.c struct ceph_osd_client *osdc = osdc 311 fs/ceph/addr.c &ceph_inode_to_client(inode)->client->osdc; osdc 365 fs/ceph/addr.c req = ceph_osdc_new_request(osdc, &ci->i_layout, vino, off, &len, osdc 410 fs/ceph/addr.c ret = ceph_osdc_start_request(osdc, req, false); osdc 631 fs/ceph/addr.c err = ceph_osdc_writepages(&fsc->client->osdc, ceph_vino(inode), osdc 1029 fs/ceph/addr.c req = ceph_osdc_new_request(&fsc->client->osdc, osdc 1036 fs/ceph/addr.c req = ceph_osdc_new_request(&fsc->client->osdc, osdc 1127 fs/ceph/addr.c rc = ceph_osdc_start_request(&fsc->client->osdc, req, true); osdc 1720 fs/ceph/addr.c req = ceph_osdc_new_request(&fsc->client->osdc, &ci->i_layout, osdc 1730 fs/ceph/addr.c err = ceph_osdc_start_request(&fsc->client->osdc, req, false); osdc 1732 fs/ceph/addr.c err = ceph_osdc_wait_request(&fsc->client->osdc, req); osdc 1737 fs/ceph/addr.c req = ceph_osdc_new_request(&fsc->client->osdc, &ci->i_layout, osdc 1772 fs/ceph/addr.c err = ceph_osdc_start_request(&fsc->client->osdc, req, false); osdc 1774 fs/ceph/addr.c err = ceph_osdc_wait_request(&fsc->client->osdc, req); osdc 1887 fs/ceph/addr.c rd_req = ceph_osdc_alloc_request(&fsc->client->osdc, NULL, osdc 1905 fs/ceph/addr.c wr_req = ceph_osdc_alloc_request(&fsc->client->osdc, NULL, osdc 1930 fs/ceph/addr.c err = ceph_osdc_start_request(&fsc->client->osdc, rd_req, false); osdc 1933 fs/ceph/addr.c err2 = ceph_osdc_start_request(&fsc->client->osdc, wr_req, false); osdc 1936 fs/ceph/addr.c err = ceph_osdc_wait_request(&fsc->client->osdc, rd_req); osdc 1938 fs/ceph/addr.c err2 = ceph_osdc_wait_request(&fsc->client->osdc, wr_req); osdc 1141 fs/ceph/caps.c struct ceph_osd_client *osdc = &arg->session->s_mdsc->fsc->client->osdc; osdc 1208 fs/ceph/caps.c ceph_encode_32(&p, READ_ONCE(osdc->epoch_barrier)); osdc 3867 fs/ceph/caps.c struct ceph_osd_client *osdc = &mdsc->fsc->client->osdc; osdc 3871 fs/ceph/caps.c ceph_osdc_update_epoch_barrier(osdc, epoch_barrier); osdc 589 fs/ceph/file.c struct ceph_osd_client *osdc = &fsc->client->osdc; osdc 619 fs/ceph/file.c req = ceph_osdc_new_request(osdc, &ci->i_layout, osdc 658 fs/ceph/file.c ret = ceph_osdc_start_request(osdc, req, false); osdc 660 fs/ceph/file.c ret = ceph_osdc_wait_request(osdc, req); osdc 976 fs/ceph/file.c req = ceph_osdc_new_request(&fsc->client->osdc, &ci->i_layout, osdc 1048 fs/ceph/file.c ret = ceph_osdc_wait_request(&fsc->client->osdc, req); osdc 1172 fs/ceph/file.c req = ceph_osdc_new_request(&fsc->client->osdc, &ci->i_layout, osdc 1217 fs/ceph/file.c ret = ceph_osdc_start_request(&fsc->client->osdc, req, false); osdc 1219 fs/ceph/file.c ret = ceph_osdc_wait_request(&fsc->client->osdc, req); osdc 1418 fs/ceph/file.c struct ceph_osd_client *osdc = &fsc->client->osdc; osdc 1487 fs/ceph/file.c down_read(&osdc->lock); osdc 1488 fs/ceph/file.c map_flags = osdc->osdmap->flags; osdc 1489 fs/ceph/file.c pool_flags = ceph_pg_pool_flags(osdc->osdmap, ci->i_layout.pool_id); osdc 1490 fs/ceph/file.c up_read(&osdc->lock); osdc 1715 fs/ceph/file.c req = ceph_osdc_new_request(&fsc->client->osdc, &ci->i_layout, osdc 1727 fs/ceph/file.c ret = ceph_osdc_start_request(&fsc->client->osdc, req, false); osdc 1729 fs/ceph/file.c ret = ceph_osdc_wait_request(&fsc->client->osdc, req); osdc 2110 fs/ceph/file.c &src_fsc->client->osdc, osdc 184 fs/ceph/ioctl.c struct ceph_osd_client *osdc = osdc 185 fs/ceph/ioctl.c &ceph_sb_to_client(inode->i_sb)->client->osdc; osdc 197 fs/ceph/ioctl.c down_read(&osdc->lock); osdc 215 fs/ceph/ioctl.c r = ceph_object_locator_to_pg(osdc->osdmap, &oid, &oloc, &pgid); osdc 219 fs/ceph/ioctl.c up_read(&osdc->lock); osdc 223 fs/ceph/ioctl.c dl.osd = ceph_pg_to_acting_primary(osdc->osdmap, &pgid); osdc 226 fs/ceph/ioctl.c ceph_osd_addr(osdc->osdmap, dl.osd); osdc 232 fs/ceph/ioctl.c up_read(&osdc->lock); osdc 1863 fs/ceph/mds_client.c struct ceph_osd_client *osdc = &mdsc->fsc->client->osdc; osdc 1869 fs/ceph/mds_client.c down_read(&osdc->lock); osdc 1870 fs/ceph/mds_client.c barrier = cpu_to_le32(osdc->epoch_barrier); osdc 1871 fs/ceph/mds_client.c up_read(&osdc->lock); osdc 121 fs/ceph/super.c ceph_osdc_sync(&fsc->client->osdc); osdc 883 fs/ceph/super.c ceph_osdc_abort_requests(&fsc->client->osdc, -EIO); osdc 1219 fs/ceph/super.c ceph_osdc_clear_abort_err(&fsc->client->osdc); osdc 60 fs/ceph/xattr.c struct ceph_osd_client *osdc = &fsc->client->osdc; osdc 72 fs/ceph/xattr.c down_read(&osdc->lock); osdc 73 fs/ceph/xattr.c pool_name = ceph_pg_pool_name_by_id(osdc->osdmap, pool); osdc 108 fs/ceph/xattr.c up_read(&osdc->lock); osdc 163 fs/ceph/xattr.c struct ceph_osd_client *osdc = &fsc->client->osdc; osdc 167 fs/ceph/xattr.c down_read(&osdc->lock); osdc 168 fs/ceph/xattr.c pool_name = ceph_pg_pool_name_by_id(osdc->osdmap, pool); osdc 176 fs/ceph/xattr.c up_read(&osdc->lock); osdc 27 include/linux/ceph/cls_lock_client.h int ceph_cls_lock(struct ceph_osd_client *osdc, osdc 32 include/linux/ceph/cls_lock_client.h int ceph_cls_unlock(struct ceph_osd_client *osdc, osdc 36 include/linux/ceph/cls_lock_client.h int ceph_cls_break_lock(struct ceph_osd_client *osdc, osdc 41 include/linux/ceph/cls_lock_client.h int ceph_cls_set_cookie(struct ceph_osd_client *osdc, osdc 49 include/linux/ceph/cls_lock_client.h int ceph_cls_lock_info(struct ceph_osd_client *osdc, osdc 138 include/linux/ceph/libceph.h struct ceph_osd_client osdc; osdc 248 include/linux/ceph/osd_client.h struct ceph_osd_client *osdc; osdc 373 include/linux/ceph/osd_client.h static inline bool ceph_osdmap_flag(struct ceph_osd_client *osdc, int flag) osdc 375 include/linux/ceph/osd_client.h return osdc->osdmap->flags & flag; osdc 381 include/linux/ceph/osd_client.h extern int ceph_osdc_init(struct ceph_osd_client *osdc, osdc 383 include/linux/ceph/osd_client.h extern void ceph_osdc_stop(struct ceph_osd_client *osdc); osdc 384 include/linux/ceph/osd_client.h extern void ceph_osdc_reopen_osds(struct ceph_osd_client *osdc); osdc 386 include/linux/ceph/osd_client.h extern void ceph_osdc_handle_reply(struct ceph_osd_client *osdc, osdc 388 include/linux/ceph/osd_client.h extern void ceph_osdc_handle_map(struct ceph_osd_client *osdc, osdc 390 include/linux/ceph/osd_client.h void ceph_osdc_update_epoch_barrier(struct ceph_osd_client *osdc, u32 eb); osdc 391 include/linux/ceph/osd_client.h void ceph_osdc_abort_requests(struct ceph_osd_client *osdc, int err); osdc 392 include/linux/ceph/osd_client.h void ceph_osdc_clear_abort_err(struct ceph_osd_client *osdc); osdc 473 include/linux/ceph/osd_client.h extern struct ceph_osd_request *ceph_osdc_alloc_request(struct ceph_osd_client *osdc, osdc 493 include/linux/ceph/osd_client.h extern int ceph_osdc_start_request(struct ceph_osd_client *osdc, osdc 497 include/linux/ceph/osd_client.h extern int ceph_osdc_wait_request(struct ceph_osd_client *osdc, osdc 499 include/linux/ceph/osd_client.h extern void ceph_osdc_sync(struct ceph_osd_client *osdc); osdc 501 include/linux/ceph/osd_client.h extern void ceph_osdc_flush_notifies(struct ceph_osd_client *osdc); osdc 502 include/linux/ceph/osd_client.h void ceph_osdc_maybe_request_map(struct ceph_osd_client *osdc); osdc 504 include/linux/ceph/osd_client.h int ceph_osdc_call(struct ceph_osd_client *osdc, osdc 512 include/linux/ceph/osd_client.h extern int ceph_osdc_readpages(struct ceph_osd_client *osdc, osdc 520 include/linux/ceph/osd_client.h extern int ceph_osdc_writepages(struct ceph_osd_client *osdc, osdc 529 include/linux/ceph/osd_client.h int ceph_osdc_copy_from(struct ceph_osd_client *osdc, osdc 541 include/linux/ceph/osd_client.h ceph_osdc_watch(struct ceph_osd_client *osdc, osdc 547 include/linux/ceph/osd_client.h int ceph_osdc_unwatch(struct ceph_osd_client *osdc, osdc 550 include/linux/ceph/osd_client.h int ceph_osdc_notify_ack(struct ceph_osd_client *osdc, osdc 557 include/linux/ceph/osd_client.h int ceph_osdc_notify(struct ceph_osd_client *osdc, osdc 565 include/linux/ceph/osd_client.h int ceph_osdc_watch_check(struct ceph_osd_client *osdc, osdc 567 include/linux/ceph/osd_client.h int ceph_osdc_list_watchers(struct ceph_osd_client *osdc, osdc 679 net/ceph/ceph_common.c err = ceph_osdc_init(&client->osdc, client); osdc 701 net/ceph/ceph_common.c ceph_osdc_stop(&client->osdc); osdc 718 net/ceph/ceph_common.c ceph_osdc_reopen_osds(&client->osdc); osdc 728 net/ceph/ceph_common.c client->osdc.osdmap && client->osdc.osdmap->epoch; osdc 792 net/ceph/ceph_common.c if (client->osdc.osdmap->epoch >= newest_epoch) osdc 795 net/ceph/ceph_common.c ceph_osdc_maybe_request_map(&client->osdc); osdc 23 net/ceph/cls_lock_client.c int ceph_cls_lock(struct ceph_osd_client *osdc, osdc 73 net/ceph/cls_lock_client.c ret = ceph_osdc_call(osdc, oid, oloc, "lock", "lock", osdc 89 net/ceph/cls_lock_client.c int ceph_cls_unlock(struct ceph_osd_client *osdc, osdc 121 net/ceph/cls_lock_client.c ret = ceph_osdc_call(osdc, oid, oloc, "lock", "unlock", osdc 138 net/ceph/cls_lock_client.c int ceph_cls_break_lock(struct ceph_osd_client *osdc, osdc 174 net/ceph/cls_lock_client.c ret = ceph_osdc_call(osdc, oid, oloc, "lock", "break_lock", osdc 184 net/ceph/cls_lock_client.c int ceph_cls_set_cookie(struct ceph_osd_client *osdc, osdc 225 net/ceph/cls_lock_client.c ret = ceph_osdc_call(osdc, oid, oloc, "lock", "set_cookie", osdc 328 net/ceph/cls_lock_client.c int ceph_cls_lock_info(struct ceph_osd_client *osdc, osdc 365 net/ceph/cls_lock_client.c ret = ceph_osdc_call(osdc, oid, oloc, "lock", "get_info", osdc 58 net/ceph/debugfs.c struct ceph_osd_client *osdc = &client->osdc; osdc 59 net/ceph/debugfs.c struct ceph_osdmap *map = osdc->osdmap; osdc 65 net/ceph/debugfs.c down_read(&osdc->lock); osdc 67 net/ceph/debugfs.c osdc->epoch_barrier, map->flags); osdc 132 net/ceph/debugfs.c up_read(&osdc->lock); osdc 340 net/ceph/debugfs.c struct ceph_osd_client *osdc = &client->osdc; osdc 343 net/ceph/debugfs.c down_read(&osdc->lock); osdc 345 net/ceph/debugfs.c atomic_read(&osdc->num_requests), osdc 346 net/ceph/debugfs.c atomic_read(&osdc->num_homeless)); osdc 347 net/ceph/debugfs.c for (n = rb_first(&osdc->osds); n; n = rb_next(n)) { osdc 352 net/ceph/debugfs.c dump_requests(s, &osdc->homeless_osd); osdc 355 net/ceph/debugfs.c for (n = rb_first(&osdc->osds); n; n = rb_next(n)) { osdc 360 net/ceph/debugfs.c dump_linger_requests(s, &osdc->homeless_osd); osdc 363 net/ceph/debugfs.c for (n = rb_first(&osdc->osds); n; n = rb_next(n)) { osdc 369 net/ceph/debugfs.c up_read(&osdc->lock); osdc 419 net/ceph/debugfs.c client->osdc.debugfs_file = debugfs_create_file("osdc", osdc 450 net/ceph/debugfs.c debugfs_remove(client->osdc.debugfs_file); osdc 1265 net/ceph/mon_client.c ceph_osdc_handle_map(&monc->client->osdc, msg); osdc 69 net/ceph/osd_client.c static inline void verify_osdc_locked(struct ceph_osd_client *osdc) osdc 71 net/ceph/osd_client.c WARN_ON(!rwsem_is_locked(&osdc->lock)); osdc 73 net/ceph/osd_client.c static inline void verify_osdc_wrlocked(struct ceph_osd_client *osdc) osdc 75 net/ceph/osd_client.c WARN_ON(!rwsem_is_wrlocked(&osdc->lock)); osdc 79 net/ceph/osd_client.c struct ceph_osd_client *osdc = osd->o_osdc; osdc 82 net/ceph/osd_client.c rwsem_is_locked(&osdc->lock)) && osdc 83 net/ceph/osd_client.c !rwsem_is_wrlocked(&osdc->lock)); osdc 90 net/ceph/osd_client.c static inline void verify_osdc_locked(struct ceph_osd_client *osdc) { } osdc 91 net/ceph/osd_client.c static inline void verify_osdc_wrlocked(struct ceph_osd_client *osdc) { } osdc 547 net/ceph/osd_client.c struct ceph_osd_client *osdc = req->r_osdc; osdc 565 net/ceph/osd_client.c req->r_osdc = osdc; osdc 575 net/ceph/osd_client.c struct ceph_osd_request *ceph_osdc_alloc_request(struct ceph_osd_client *osdc, osdc 585 net/ceph/osd_client.c req = mempool_alloc(osdc->req_mempool, gfp_flags); osdc 596 net/ceph/osd_client.c req->r_osdc = osdc; osdc 616 net/ceph/osd_client.c struct ceph_osd_client *osdc = req->r_osdc; osdc 642 net/ceph/osd_client.c msg = ceph_msgpool_get(&osdc->msgpool_op, msg_size, osdc 659 net/ceph/osd_client.c msg = ceph_msgpool_get(&osdc->msgpool_op_reply, msg_size, osdc 1063 net/ceph/osd_client.c struct ceph_osd_request *ceph_osdc_new_request(struct ceph_osd_client *osdc, osdc 1084 net/ceph/osd_client.c req = ceph_osdc_alloc_request(osdc, snapc, num_ops, use_mempool, osdc 1152 net/ceph/osd_client.c static void for_each_request(struct ceph_osd_client *osdc, osdc 1158 net/ceph/osd_client.c for (n = rb_first(&osdc->osds); n; n = rb_next(n)) { osdc 1171 net/ceph/osd_client.c for (p = rb_first(&osdc->homeless_osd.o_requests); p; ) { osdc 1229 net/ceph/osd_client.c static struct ceph_osd *create_osd(struct ceph_osd_client *osdc, int onum) osdc 1237 net/ceph/osd_client.c osd->o_osdc = osdc; osdc 1240 net/ceph/osd_client.c ceph_con_init(&osd->o_con, osd, &osd_con_ops, &osdc->client->msgr); osdc 1271 net/ceph/osd_client.c struct ceph_osd_client *osdc = osd->o_osdc; osdc 1276 net/ceph/osd_client.c spin_lock(&osdc->osd_lru_lock); osdc 1277 net/ceph/osd_client.c list_add_tail(&osd->o_osd_lru, &osdc->osd_lru); osdc 1278 net/ceph/osd_client.c spin_unlock(&osdc->osd_lru_lock); osdc 1280 net/ceph/osd_client.c osd->lru_ttl = jiffies + osdc->client->options->osd_idle_ttl; osdc 1292 net/ceph/osd_client.c struct ceph_osd_client *osdc = osd->o_osdc; osdc 1296 net/ceph/osd_client.c spin_lock(&osdc->osd_lru_lock); osdc 1299 net/ceph/osd_client.c spin_unlock(&osdc->osd_lru_lock); osdc 1308 net/ceph/osd_client.c struct ceph_osd_client *osdc = osd->o_osdc; osdc 1311 net/ceph/osd_client.c verify_osdc_wrlocked(osdc); osdc 1324 net/ceph/osd_client.c link_request(&osdc->homeless_osd, req); osdc 1335 net/ceph/osd_client.c link_linger(&osdc->homeless_osd, lreq); osdc 1340 net/ceph/osd_client.c erase_osd(&osdc->osds, osd); osdc 1383 net/ceph/osd_client.c static struct ceph_osd *lookup_create_osd(struct ceph_osd_client *osdc, int o, osdc 1389 net/ceph/osd_client.c verify_osdc_wrlocked(osdc); osdc 1391 net/ceph/osd_client.c verify_osdc_locked(osdc); osdc 1394 net/ceph/osd_client.c osd = lookup_osd(&osdc->osds, o); osdc 1396 net/ceph/osd_client.c osd = &osdc->homeless_osd; osdc 1401 net/ceph/osd_client.c osd = create_osd(osdc, o); osdc 1402 net/ceph/osd_client.c insert_osd(&osdc->osds, osd); osdc 1404 net/ceph/osd_client.c &osdc->osdmap->osd_addr[osd->o_osd]); osdc 1407 net/ceph/osd_client.c dout("%s osdc %p osd%d -> osd %p\n", __func__, osdc, o, osd); osdc 1455 net/ceph/osd_client.c static bool have_pool_full(struct ceph_osd_client *osdc) osdc 1459 net/ceph/osd_client.c for (n = rb_first(&osdc->osdmap->pg_pools); n; n = rb_next(n)) { osdc 1470 net/ceph/osd_client.c static bool pool_full(struct ceph_osd_client *osdc, s64 pool_id) osdc 1474 net/ceph/osd_client.c pi = ceph_pg_pool_by_id(osdc->osdmap, pool_id); osdc 1485 net/ceph/osd_client.c static bool target_should_be_paused(struct ceph_osd_client *osdc, osdc 1489 net/ceph/osd_client.c bool pauserd = ceph_osdmap_flag(osdc, CEPH_OSDMAP_PAUSERD); osdc 1490 net/ceph/osd_client.c bool pausewr = ceph_osdmap_flag(osdc, CEPH_OSDMAP_PAUSEWR) || osdc 1491 net/ceph/osd_client.c ceph_osdmap_flag(osdc, CEPH_OSDMAP_FULL) || osdc 1497 net/ceph/osd_client.c (osdc->osdmap->epoch < osdc->epoch_barrier); osdc 1506 net/ceph/osd_client.c static enum calc_target_result calc_target(struct ceph_osd_client *osdc, osdc 1517 net/ceph/osd_client.c bool sort_bitwise = ceph_osdmap_flag(osdc, CEPH_OSDMAP_SORTBITWISE); osdc 1518 net/ceph/osd_client.c bool recovery_deletes = ceph_osdmap_flag(osdc, osdc 1522 net/ceph/osd_client.c t->epoch = osdc->osdmap->epoch; osdc 1523 net/ceph/osd_client.c pi = ceph_pg_pool_by_id(osdc->osdmap, t->base_oloc.pool); osdc 1530 net/ceph/osd_client.c if (osdc->osdmap->epoch == pi->last_force_request_resend) { osdc 1548 net/ceph/osd_client.c pi = ceph_pg_pool_by_id(osdc->osdmap, t->target_oloc.pool); osdc 1560 net/ceph/osd_client.c ceph_pg_to_up_acting_osds(osdc->osdmap, pi, &pgid, &up, &acting); osdc 1579 net/ceph/osd_client.c if (t->paused && !target_should_be_paused(osdc, t, pi)) { osdc 1590 net/ceph/osd_client.c ceph_pg_to_primary_shard(osdc->osdmap, pi, &pgid, &t->spgid); osdc 2254 net/ceph/osd_client.c static void maybe_request_map(struct ceph_osd_client *osdc) osdc 2258 net/ceph/osd_client.c verify_osdc_locked(osdc); osdc 2259 net/ceph/osd_client.c WARN_ON(!osdc->osdmap->epoch); osdc 2261 net/ceph/osd_client.c if (ceph_osdmap_flag(osdc, CEPH_OSDMAP_FULL) || osdc 2262 net/ceph/osd_client.c ceph_osdmap_flag(osdc, CEPH_OSDMAP_PAUSERD) || osdc 2263 net/ceph/osd_client.c ceph_osdmap_flag(osdc, CEPH_OSDMAP_PAUSEWR)) { osdc 2264 net/ceph/osd_client.c dout("%s osdc %p continuous\n", __func__, osdc); osdc 2267 net/ceph/osd_client.c dout("%s osdc %p onetime\n", __func__, osdc); osdc 2270 net/ceph/osd_client.c if (ceph_monc_want_map(&osdc->client->monc, CEPH_SUB_OSDMAP, osdc 2271 net/ceph/osd_client.c osdc->osdmap->epoch + 1, continuous)) osdc 2272 net/ceph/osd_client.c ceph_monc_renew_subs(&osdc->client->monc); osdc 2280 net/ceph/osd_client.c struct ceph_osd_client *osdc = req->r_osdc; osdc 2291 net/ceph/osd_client.c ct_res = calc_target(osdc, &req->r_t, false); osdc 2295 net/ceph/osd_client.c osd = lookup_create_osd(osdc, req->r_t.osd, wrlocked); osdc 2301 net/ceph/osd_client.c if (osdc->abort_err) { osdc 2302 net/ceph/osd_client.c dout("req %p abort_err %d\n", req, osdc->abort_err); osdc 2303 net/ceph/osd_client.c err = osdc->abort_err; osdc 2304 net/ceph/osd_client.c } else if (osdc->osdmap->epoch < osdc->epoch_barrier) { osdc 2305 net/ceph/osd_client.c dout("req %p epoch %u barrier %u\n", req, osdc->osdmap->epoch, osdc 2306 net/ceph/osd_client.c osdc->epoch_barrier); osdc 2308 net/ceph/osd_client.c maybe_request_map(osdc); osdc 2310 net/ceph/osd_client.c ceph_osdmap_flag(osdc, CEPH_OSDMAP_PAUSEWR)) { osdc 2313 net/ceph/osd_client.c maybe_request_map(osdc); osdc 2315 net/ceph/osd_client.c ceph_osdmap_flag(osdc, CEPH_OSDMAP_PAUSERD)) { osdc 2318 net/ceph/osd_client.c maybe_request_map(osdc); osdc 2322 net/ceph/osd_client.c (ceph_osdmap_flag(osdc, CEPH_OSDMAP_FULL) || osdc 2323 net/ceph/osd_client.c pool_full(osdc, req->r_t.base_oloc.pool))) { osdc 2325 net/ceph/osd_client.c if (ceph_test_opt(osdc->client, ABORT_ON_FULL)) { osdc 2330 net/ceph/osd_client.c maybe_request_map(osdc); osdc 2335 net/ceph/osd_client.c maybe_request_map(osdc); osdc 2344 net/ceph/osd_client.c req->r_tid = atomic64_inc_return(&osdc->last_tid); osdc 2356 net/ceph/osd_client.c downgrade_write(&osdc->lock); osdc 2360 net/ceph/osd_client.c up_read(&osdc->lock); osdc 2361 net/ceph/osd_client.c down_write(&osdc->lock); osdc 2387 net/ceph/osd_client.c struct ceph_osd_client *osdc = req->r_osdc; osdc 2389 net/ceph/osd_client.c WARN_ON(lookup_request_mc(&osdc->map_checks, req->r_tid)); osdc 2394 net/ceph/osd_client.c atomic_dec(&osdc->num_requests); osdc 2441 net/ceph/osd_client.c struct ceph_osd_client *osdc = req->r_osdc; osdc 2444 net/ceph/osd_client.c verify_osdc_wrlocked(osdc); osdc 2446 net/ceph/osd_client.c lookup_req = lookup_request_mc(&osdc->map_checks, req->r_tid); osdc 2451 net/ceph/osd_client.c erase_request_mc(&osdc->map_checks, req); osdc 2485 net/ceph/osd_client.c void ceph_osdc_abort_requests(struct ceph_osd_client *osdc, int err) osdc 2487 net/ceph/osd_client.c dout("%s osdc %p err %d\n", __func__, osdc, err); osdc 2488 net/ceph/osd_client.c down_write(&osdc->lock); osdc 2489 net/ceph/osd_client.c for_each_request(osdc, abort_fn, &err); osdc 2490 net/ceph/osd_client.c osdc->abort_err = err; osdc 2491 net/ceph/osd_client.c up_write(&osdc->lock); osdc 2495 net/ceph/osd_client.c void ceph_osdc_clear_abort_err(struct ceph_osd_client *osdc) osdc 2497 net/ceph/osd_client.c down_write(&osdc->lock); osdc 2498 net/ceph/osd_client.c osdc->abort_err = 0; osdc 2499 net/ceph/osd_client.c up_write(&osdc->lock); osdc 2503 net/ceph/osd_client.c static void update_epoch_barrier(struct ceph_osd_client *osdc, u32 eb) osdc 2505 net/ceph/osd_client.c if (likely(eb > osdc->epoch_barrier)) { osdc 2507 net/ceph/osd_client.c osdc->epoch_barrier, eb); osdc 2508 net/ceph/osd_client.c osdc->epoch_barrier = eb; osdc 2510 net/ceph/osd_client.c if (eb > osdc->osdmap->epoch) osdc 2511 net/ceph/osd_client.c maybe_request_map(osdc); osdc 2515 net/ceph/osd_client.c void ceph_osdc_update_epoch_barrier(struct ceph_osd_client *osdc, u32 eb) osdc 2517 net/ceph/osd_client.c down_read(&osdc->lock); osdc 2518 net/ceph/osd_client.c if (unlikely(eb > osdc->epoch_barrier)) { osdc 2519 net/ceph/osd_client.c up_read(&osdc->lock); osdc 2520 net/ceph/osd_client.c down_write(&osdc->lock); osdc 2521 net/ceph/osd_client.c update_epoch_barrier(osdc, eb); osdc 2522 net/ceph/osd_client.c up_write(&osdc->lock); osdc 2524 net/ceph/osd_client.c up_read(&osdc->lock); osdc 2537 net/ceph/osd_client.c struct ceph_osd_client *osdc = req->r_osdc; osdc 2541 net/ceph/osd_client.c (ceph_osdmap_flag(osdc, CEPH_OSDMAP_FULL) || osdc 2542 net/ceph/osd_client.c pool_full(osdc, req->r_t.base_oloc.pool))) { osdc 2544 net/ceph/osd_client.c update_epoch_barrier(osdc, osdc->osdmap->epoch); osdc 2559 net/ceph/osd_client.c static void ceph_osdc_abort_on_full(struct ceph_osd_client *osdc) osdc 2563 net/ceph/osd_client.c if (ceph_test_opt(osdc->client, ABORT_ON_FULL) && osdc 2564 net/ceph/osd_client.c (ceph_osdmap_flag(osdc, CEPH_OSDMAP_FULL) || have_pool_full(osdc))) osdc 2565 net/ceph/osd_client.c for_each_request(osdc, abort_on_full_fn, &victims); osdc 2570 net/ceph/osd_client.c struct ceph_osd_client *osdc = req->r_osdc; osdc 2571 net/ceph/osd_client.c struct ceph_osdmap *map = osdc->osdmap; osdc 2573 net/ceph/osd_client.c verify_osdc_wrlocked(osdc); osdc 2604 net/ceph/osd_client.c struct ceph_osd_client *osdc = &greq->monc->client->osdc; osdc 2610 net/ceph/osd_client.c down_write(&osdc->lock); osdc 2611 net/ceph/osd_client.c req = lookup_request_mc(&osdc->map_checks, tid); osdc 2621 net/ceph/osd_client.c erase_request_mc(&osdc->map_checks, req); osdc 2626 net/ceph/osd_client.c up_write(&osdc->lock); osdc 2631 net/ceph/osd_client.c struct ceph_osd_client *osdc = req->r_osdc; osdc 2635 net/ceph/osd_client.c verify_osdc_wrlocked(osdc); osdc 2637 net/ceph/osd_client.c lookup_req = lookup_request_mc(&osdc->map_checks, req->r_tid); osdc 2644 net/ceph/osd_client.c insert_request_mc(&osdc->map_checks, req); osdc 2645 net/ceph/osd_client.c ret = ceph_monc_get_version_async(&osdc->client->monc, "osdmap", osdc 2689 net/ceph/osd_client.c linger_alloc(struct ceph_osd_client *osdc) osdc 2707 net/ceph/osd_client.c lreq->osdc = osdc; osdc 2761 net/ceph/osd_client.c verify_osdc_locked(lreq->osdc); osdc 2768 net/ceph/osd_client.c struct ceph_osd_client *osdc = lreq->osdc; osdc 2771 net/ceph/osd_client.c down_read(&osdc->lock); osdc 2773 net/ceph/osd_client.c up_read(&osdc->lock); osdc 2780 net/ceph/osd_client.c struct ceph_osd_client *osdc = lreq->osdc; osdc 2782 net/ceph/osd_client.c verify_osdc_wrlocked(osdc); osdc 2786 net/ceph/osd_client.c lreq->linger_id = ++osdc->last_linger_id; osdc 2787 net/ceph/osd_client.c insert_linger_osdc(&osdc->linger_requests, lreq); osdc 2792 net/ceph/osd_client.c struct ceph_osd_client *osdc = lreq->osdc; osdc 2794 net/ceph/osd_client.c verify_osdc_wrlocked(osdc); osdc 2796 net/ceph/osd_client.c erase_linger_osdc(&osdc->linger_requests, lreq); osdc 2861 net/ceph/osd_client.c struct ceph_osd_client *osdc = lreq->osdc; osdc 2868 net/ceph/osd_client.c queue_work(osdc->notify_wq, &lwork->work); osdc 3065 net/ceph/osd_client.c struct ceph_osd_client *osdc = lreq->osdc; osdc 3069 net/ceph/osd_client.c if (ceph_osdmap_flag(osdc, CEPH_OSDMAP_PAUSERD)) { osdc 3095 net/ceph/osd_client.c req->r_tid = atomic64_inc_return(&osdc->last_tid); osdc 3102 net/ceph/osd_client.c struct ceph_osd_client *osdc = lreq->osdc; osdc 3105 net/ceph/osd_client.c down_write(&osdc->lock); osdc 3114 net/ceph/osd_client.c calc_target(osdc, &lreq->t, false); osdc 3115 net/ceph/osd_client.c osd = lookup_create_osd(osdc, lreq->t.osd, true); osdc 3119 net/ceph/osd_client.c up_write(&osdc->lock); osdc 3124 net/ceph/osd_client.c struct ceph_osd_client *osdc = lreq->osdc; osdc 3127 net/ceph/osd_client.c verify_osdc_wrlocked(osdc); osdc 3129 net/ceph/osd_client.c lookup_lreq = lookup_linger_mc(&osdc->linger_map_checks, osdc 3135 net/ceph/osd_client.c erase_linger_mc(&osdc->linger_map_checks, lreq); osdc 3155 net/ceph/osd_client.c struct ceph_osd_client *osdc = lreq->osdc; osdc 3157 net/ceph/osd_client.c down_write(&osdc->lock); osdc 3160 net/ceph/osd_client.c up_write(&osdc->lock); osdc 3167 net/ceph/osd_client.c struct ceph_osd_client *osdc = lreq->osdc; osdc 3168 net/ceph/osd_client.c struct ceph_osdmap *map = osdc->osdmap; osdc 3170 net/ceph/osd_client.c verify_osdc_wrlocked(osdc); osdc 3198 net/ceph/osd_client.c struct ceph_osd_client *osdc = &greq->monc->client->osdc; osdc 3204 net/ceph/osd_client.c down_write(&osdc->lock); osdc 3205 net/ceph/osd_client.c lreq = lookup_linger_mc(&osdc->linger_map_checks, linger_id); osdc 3216 net/ceph/osd_client.c erase_linger_mc(&osdc->linger_map_checks, lreq); osdc 3221 net/ceph/osd_client.c up_write(&osdc->lock); osdc 3226 net/ceph/osd_client.c struct ceph_osd_client *osdc = lreq->osdc; osdc 3230 net/ceph/osd_client.c verify_osdc_wrlocked(osdc); osdc 3232 net/ceph/osd_client.c lookup_lreq = lookup_linger_mc(&osdc->linger_map_checks, osdc 3240 net/ceph/osd_client.c insert_linger_mc(&osdc->linger_map_checks, lreq); osdc 3241 net/ceph/osd_client.c ret = ceph_monc_get_version_async(&osdc->client->monc, "osdmap", osdc 3272 net/ceph/osd_client.c struct ceph_osd_client *osdc = osdc 3274 net/ceph/osd_client.c struct ceph_options *opts = osdc->client->options; osdc 3280 net/ceph/osd_client.c dout("%s osdc %p\n", __func__, osdc); osdc 3281 net/ceph/osd_client.c down_write(&osdc->lock); osdc 3288 net/ceph/osd_client.c for (n = rb_first(&osdc->osds); n; n = rb_next(n)) { osdc 3329 net/ceph/osd_client.c for (p = rb_first(&osdc->homeless_osd.o_requests); p; ) { osdc 3337 net/ceph/osd_client.c req->r_tid, osdc->homeless_osd.o_osd); osdc 3343 net/ceph/osd_client.c if (atomic_read(&osdc->num_homeless) || !list_empty(&slow_osds)) osdc 3344 net/ceph/osd_client.c maybe_request_map(osdc); osdc 3354 net/ceph/osd_client.c up_write(&osdc->lock); osdc 3355 net/ceph/osd_client.c schedule_delayed_work(&osdc->timeout_work, osdc 3356 net/ceph/osd_client.c osdc->client->options->osd_keepalive_timeout); osdc 3361 net/ceph/osd_client.c struct ceph_osd_client *osdc = osdc 3364 net/ceph/osd_client.c unsigned long delay = osdc->client->options->osd_idle_ttl / 4; osdc 3367 net/ceph/osd_client.c dout("%s osdc %p\n", __func__, osdc); osdc 3368 net/ceph/osd_client.c down_write(&osdc->lock); osdc 3369 net/ceph/osd_client.c list_for_each_entry_safe(osd, nosd, &osdc->osd_lru, o_osd_lru) { osdc 3378 net/ceph/osd_client.c up_write(&osdc->lock); osdc 3379 net/ceph/osd_client.c schedule_delayed_work(&osdc->osds_timeout_work, osdc 3595 net/ceph/osd_client.c struct ceph_osd_client *osdc = osd->o_osdc; osdc 3605 net/ceph/osd_client.c down_read(&osdc->lock); osdc 3691 net/ceph/osd_client.c up_read(&osdc->lock); osdc 3701 net/ceph/osd_client.c up_read(&osdc->lock); osdc 3704 net/ceph/osd_client.c static void set_pool_was_full(struct ceph_osd_client *osdc) osdc 3708 net/ceph/osd_client.c for (n = rb_first(&osdc->osdmap->pg_pools); n; n = rb_next(n)) { osdc 3716 net/ceph/osd_client.c static bool pool_cleared_full(struct ceph_osd_client *osdc, s64 pool_id) osdc 3720 net/ceph/osd_client.c pi = ceph_pg_pool_by_id(osdc->osdmap, pool_id); osdc 3730 net/ceph/osd_client.c struct ceph_osd_client *osdc = lreq->osdc; osdc 3733 net/ceph/osd_client.c ct_res = calc_target(osdc, &lreq->t, true); osdc 3737 net/ceph/osd_client.c osd = lookup_create_osd(osdc, lreq->t.osd, true); osdc 3757 net/ceph/osd_client.c struct ceph_osd_client *osdc = osd->o_osdc; osdc 3775 net/ceph/osd_client.c pool_cleared_full(osdc, lreq->t.base_oloc.pool)); osdc 3805 net/ceph/osd_client.c ct_res = calc_target(osdc, &req->r_t, false); osdc 3810 net/ceph/osd_client.c pool_cleared_full(osdc, req->r_t.base_oloc.pool)); osdc 3829 net/ceph/osd_client.c static int handle_one_map(struct ceph_osd_client *osdc, osdc 3839 net/ceph/osd_client.c was_full = ceph_osdmap_flag(osdc, CEPH_OSDMAP_FULL); osdc 3840 net/ceph/osd_client.c set_pool_was_full(osdc); osdc 3843 net/ceph/osd_client.c newmap = osdmap_apply_incremental(&p, end, osdc->osdmap); osdc 3849 net/ceph/osd_client.c if (newmap != osdc->osdmap) { osdc 3860 net/ceph/osd_client.c old_pi = ceph_pg_pool_by_id(osdc->osdmap, pi->id); osdc 3867 net/ceph/osd_client.c if (osdc->osdmap->epoch && osdc 3868 net/ceph/osd_client.c osdc->osdmap->epoch + 1 < newmap->epoch) { osdc 3873 net/ceph/osd_client.c ceph_osdmap_destroy(osdc->osdmap); osdc 3874 net/ceph/osd_client.c osdc->osdmap = newmap; osdc 3877 net/ceph/osd_client.c was_full &= !ceph_osdmap_flag(osdc, CEPH_OSDMAP_FULL); osdc 3878 net/ceph/osd_client.c scan_requests(&osdc->homeless_osd, skipped_map, was_full, true, osdc 3881 net/ceph/osd_client.c for (n = rb_first(&osdc->osds); n; ) { osdc 3888 net/ceph/osd_client.c if (!ceph_osd_is_up(osdc->osdmap, osd->o_osd) || osdc 3890 net/ceph/osd_client.c ceph_osd_addr(osdc->osdmap, osd->o_osd), osdc 3898 net/ceph/osd_client.c static void kick_requests(struct ceph_osd_client *osdc, osdc 3913 net/ceph/osd_client.c if (req->r_t.epoch < osdc->osdmap->epoch) { osdc 3914 net/ceph/osd_client.c ct_res = calc_target(osdc, &req->r_t, false); osdc 3930 net/ceph/osd_client.c osd = lookup_create_osd(osdc, req->r_t.osd, true); osdc 3955 net/ceph/osd_client.c void ceph_osdc_handle_map(struct ceph_osd_client *osdc, struct ceph_msg *msg) osdc 3969 net/ceph/osd_client.c dout("%s have %u\n", __func__, osdc->osdmap->epoch); osdc 3970 net/ceph/osd_client.c down_write(&osdc->lock); osdc 3975 net/ceph/osd_client.c if (ceph_check_fsid(osdc->client, &fsid) < 0) osdc 3978 net/ceph/osd_client.c was_pauserd = ceph_osdmap_flag(osdc, CEPH_OSDMAP_PAUSERD); osdc 3979 net/ceph/osd_client.c was_pausewr = ceph_osdmap_flag(osdc, CEPH_OSDMAP_PAUSEWR) || osdc 3980 net/ceph/osd_client.c ceph_osdmap_flag(osdc, CEPH_OSDMAP_FULL) || osdc 3981 net/ceph/osd_client.c have_pool_full(osdc); osdc 3991 net/ceph/osd_client.c if (osdc->osdmap->epoch && osdc 3992 net/ceph/osd_client.c osdc->osdmap->epoch + 1 == epoch) { osdc 3995 net/ceph/osd_client.c err = handle_one_map(osdc, p, p + maplen, true, osdc 4021 net/ceph/osd_client.c } else if (osdc->osdmap->epoch >= epoch) { osdc 4024 net/ceph/osd_client.c osdc->osdmap->epoch); osdc 4027 net/ceph/osd_client.c err = handle_one_map(osdc, p, p + maplen, false, osdc 4042 net/ceph/osd_client.c pauserd = ceph_osdmap_flag(osdc, CEPH_OSDMAP_PAUSERD); osdc 4043 net/ceph/osd_client.c pausewr = ceph_osdmap_flag(osdc, CEPH_OSDMAP_PAUSEWR) || osdc 4044 net/ceph/osd_client.c ceph_osdmap_flag(osdc, CEPH_OSDMAP_FULL) || osdc 4045 net/ceph/osd_client.c have_pool_full(osdc); osdc 4047 net/ceph/osd_client.c osdc->osdmap->epoch < osdc->epoch_barrier) osdc 4048 net/ceph/osd_client.c maybe_request_map(osdc); osdc 4050 net/ceph/osd_client.c kick_requests(osdc, &need_resend, &need_resend_linger); osdc 4052 net/ceph/osd_client.c ceph_osdc_abort_on_full(osdc); osdc 4053 net/ceph/osd_client.c ceph_monc_got_map(&osdc->client->monc, CEPH_SUB_OSDMAP, osdc 4054 net/ceph/osd_client.c osdc->osdmap->epoch); osdc 4055 net/ceph/osd_client.c up_write(&osdc->lock); osdc 4056 net/ceph/osd_client.c wake_up_all(&osdc->client->auth_wq); osdc 4062 net/ceph/osd_client.c up_write(&osdc->lock); osdc 4101 net/ceph/osd_client.c struct ceph_osd_client *osdc = osd->o_osdc; osdc 4105 net/ceph/osd_client.c down_write(&osdc->lock); osdc 4113 net/ceph/osd_client.c maybe_request_map(osdc); osdc 4116 net/ceph/osd_client.c up_write(&osdc->lock); osdc 4335 net/ceph/osd_client.c struct ceph_osd_client *osdc = osd->o_osdc; osdc 4339 net/ceph/osd_client.c down_read(&osdc->lock); osdc 4342 net/ceph/osd_client.c up_read(&osdc->lock); osdc 4371 net/ceph/osd_client.c up_read(&osdc->lock); osdc 4377 net/ceph/osd_client.c static void handle_watch_notify(struct ceph_osd_client *osdc, osdc 4410 net/ceph/osd_client.c down_read(&osdc->lock); osdc 4411 net/ceph/osd_client.c lreq = lookup_linger_osdc(&osdc->linger_requests, cookie); osdc 4466 net/ceph/osd_client.c up_read(&osdc->lock); osdc 4476 net/ceph/osd_client.c int ceph_osdc_start_request(struct ceph_osd_client *osdc, osdc 4480 net/ceph/osd_client.c down_read(&osdc->lock); osdc 4482 net/ceph/osd_client.c up_read(&osdc->lock); osdc 4494 net/ceph/osd_client.c struct ceph_osd_client *osdc = req->r_osdc; osdc 4496 net/ceph/osd_client.c down_write(&osdc->lock); osdc 4499 net/ceph/osd_client.c up_write(&osdc->lock); osdc 4527 net/ceph/osd_client.c int ceph_osdc_wait_request(struct ceph_osd_client *osdc, osdc 4537 net/ceph/osd_client.c void ceph_osdc_sync(struct ceph_osd_client *osdc) osdc 4540 net/ceph/osd_client.c u64 last_tid = atomic64_read(&osdc->last_tid); osdc 4543 net/ceph/osd_client.c down_read(&osdc->lock); osdc 4544 net/ceph/osd_client.c for (n = rb_first(&osdc->osds); n; n = rb_next(n)) { osdc 4560 net/ceph/osd_client.c up_read(&osdc->lock); osdc 4571 net/ceph/osd_client.c up_read(&osdc->lock); osdc 4581 net/ceph/osd_client.c req = ceph_osdc_alloc_request(lreq->osdc, NULL, 1, false, GFP_NOIO); osdc 4617 net/ceph/osd_client.c ceph_osdc_watch(struct ceph_osd_client *osdc, osdc 4627 net/ceph/osd_client.c lreq = linger_alloc(osdc); osdc 4676 net/ceph/osd_client.c int ceph_osdc_unwatch(struct ceph_osd_client *osdc, osdc 4679 net/ceph/osd_client.c struct ceph_options *opts = osdc->client->options; osdc 4683 net/ceph/osd_client.c req = ceph_osdc_alloc_request(osdc, NULL, 1, false, GFP_NOIO); osdc 4698 net/ceph/osd_client.c ceph_osdc_start_request(osdc, req, false); osdc 4741 net/ceph/osd_client.c int ceph_osdc_notify_ack(struct ceph_osd_client *osdc, osdc 4752 net/ceph/osd_client.c req = ceph_osdc_alloc_request(osdc, NULL, 1, false, GFP_NOIO); osdc 4769 net/ceph/osd_client.c ceph_osdc_start_request(osdc, req, false); osdc 4770 net/ceph/osd_client.c ret = ceph_osdc_wait_request(osdc, req); osdc 4815 net/ceph/osd_client.c int ceph_osdc_notify(struct ceph_osd_client *osdc, osdc 4834 net/ceph/osd_client.c lreq = linger_alloc(osdc); osdc 4893 net/ceph/osd_client.c int ceph_osdc_watch_check(struct ceph_osd_client *osdc, osdc 4899 net/ceph/osd_client.c down_read(&osdc->lock); osdc 4918 net/ceph/osd_client.c up_read(&osdc->lock); osdc 4988 net/ceph/osd_client.c int ceph_osdc_list_watchers(struct ceph_osd_client *osdc, osdc 4998 net/ceph/osd_client.c req = ceph_osdc_alloc_request(osdc, NULL, 1, false, GFP_NOIO); osdc 5021 net/ceph/osd_client.c ceph_osdc_start_request(osdc, req, false); osdc 5022 net/ceph/osd_client.c ret = ceph_osdc_wait_request(osdc, req); osdc 5040 net/ceph/osd_client.c void ceph_osdc_flush_notifies(struct ceph_osd_client *osdc) osdc 5042 net/ceph/osd_client.c dout("%s osdc %p\n", __func__, osdc); osdc 5043 net/ceph/osd_client.c flush_workqueue(osdc->notify_wq); osdc 5047 net/ceph/osd_client.c void ceph_osdc_maybe_request_map(struct ceph_osd_client *osdc) osdc 5049 net/ceph/osd_client.c down_read(&osdc->lock); osdc 5050 net/ceph/osd_client.c maybe_request_map(osdc); osdc 5051 net/ceph/osd_client.c up_read(&osdc->lock); osdc 5061 net/ceph/osd_client.c int ceph_osdc_call(struct ceph_osd_client *osdc, osdc 5075 net/ceph/osd_client.c req = ceph_osdc_alloc_request(osdc, NULL, 1, false, GFP_NOIO); osdc 5098 net/ceph/osd_client.c ceph_osdc_start_request(osdc, req, false); osdc 5099 net/ceph/osd_client.c ret = ceph_osdc_wait_request(osdc, req); osdc 5115 net/ceph/osd_client.c void ceph_osdc_reopen_osds(struct ceph_osd_client *osdc) osdc 5119 net/ceph/osd_client.c down_write(&osdc->lock); osdc 5120 net/ceph/osd_client.c for (n = rb_first(&osdc->osds); n; ) { osdc 5127 net/ceph/osd_client.c up_write(&osdc->lock); osdc 5133 net/ceph/osd_client.c int ceph_osdc_init(struct ceph_osd_client *osdc, struct ceph_client *client) osdc 5138 net/ceph/osd_client.c osdc->client = client; osdc 5139 net/ceph/osd_client.c init_rwsem(&osdc->lock); osdc 5140 net/ceph/osd_client.c osdc->osds = RB_ROOT; osdc 5141 net/ceph/osd_client.c INIT_LIST_HEAD(&osdc->osd_lru); osdc 5142 net/ceph/osd_client.c spin_lock_init(&osdc->osd_lru_lock); osdc 5143 net/ceph/osd_client.c osd_init(&osdc->homeless_osd); osdc 5144 net/ceph/osd_client.c osdc->homeless_osd.o_osdc = osdc; osdc 5145 net/ceph/osd_client.c osdc->homeless_osd.o_osd = CEPH_HOMELESS_OSD; osdc 5146 net/ceph/osd_client.c osdc->last_linger_id = CEPH_LINGER_ID_START; osdc 5147 net/ceph/osd_client.c osdc->linger_requests = RB_ROOT; osdc 5148 net/ceph/osd_client.c osdc->map_checks = RB_ROOT; osdc 5149 net/ceph/osd_client.c osdc->linger_map_checks = RB_ROOT; osdc 5150 net/ceph/osd_client.c INIT_DELAYED_WORK(&osdc->timeout_work, handle_timeout); osdc 5151 net/ceph/osd_client.c INIT_DELAYED_WORK(&osdc->osds_timeout_work, handle_osds_timeout); osdc 5154 net/ceph/osd_client.c osdc->osdmap = ceph_osdmap_alloc(); osdc 5155 net/ceph/osd_client.c if (!osdc->osdmap) osdc 5158 net/ceph/osd_client.c osdc->req_mempool = mempool_create_slab_pool(10, osdc 5160 net/ceph/osd_client.c if (!osdc->req_mempool) osdc 5163 net/ceph/osd_client.c err = ceph_msgpool_init(&osdc->msgpool_op, CEPH_MSG_OSD_OP, osdc 5167 net/ceph/osd_client.c err = ceph_msgpool_init(&osdc->msgpool_op_reply, CEPH_MSG_OSD_OPREPLY, osdc 5174 net/ceph/osd_client.c osdc->notify_wq = create_singlethread_workqueue("ceph-watch-notify"); osdc 5175 net/ceph/osd_client.c if (!osdc->notify_wq) osdc 5178 net/ceph/osd_client.c osdc->completion_wq = create_singlethread_workqueue("ceph-completion"); osdc 5179 net/ceph/osd_client.c if (!osdc->completion_wq) osdc 5182 net/ceph/osd_client.c schedule_delayed_work(&osdc->timeout_work, osdc 5183 net/ceph/osd_client.c osdc->client->options->osd_keepalive_timeout); osdc 5184 net/ceph/osd_client.c schedule_delayed_work(&osdc->osds_timeout_work, osdc 5185 net/ceph/osd_client.c round_jiffies_relative(osdc->client->options->osd_idle_ttl)); osdc 5190 net/ceph/osd_client.c destroy_workqueue(osdc->notify_wq); osdc 5192 net/ceph/osd_client.c ceph_msgpool_destroy(&osdc->msgpool_op_reply); osdc 5194 net/ceph/osd_client.c ceph_msgpool_destroy(&osdc->msgpool_op); osdc 5196 net/ceph/osd_client.c mempool_destroy(osdc->req_mempool); osdc 5198 net/ceph/osd_client.c ceph_osdmap_destroy(osdc->osdmap); osdc 5203 net/ceph/osd_client.c void ceph_osdc_stop(struct ceph_osd_client *osdc) osdc 5205 net/ceph/osd_client.c destroy_workqueue(osdc->completion_wq); osdc 5206 net/ceph/osd_client.c destroy_workqueue(osdc->notify_wq); osdc 5207 net/ceph/osd_client.c cancel_delayed_work_sync(&osdc->timeout_work); osdc 5208 net/ceph/osd_client.c cancel_delayed_work_sync(&osdc->osds_timeout_work); osdc 5210 net/ceph/osd_client.c down_write(&osdc->lock); osdc 5211 net/ceph/osd_client.c while (!RB_EMPTY_ROOT(&osdc->osds)) { osdc 5212 net/ceph/osd_client.c struct ceph_osd *osd = rb_entry(rb_first(&osdc->osds), osdc 5216 net/ceph/osd_client.c up_write(&osdc->lock); osdc 5217 net/ceph/osd_client.c WARN_ON(refcount_read(&osdc->homeless_osd.o_ref) != 1); osdc 5218 net/ceph/osd_client.c osd_cleanup(&osdc->homeless_osd); osdc 5220 net/ceph/osd_client.c WARN_ON(!list_empty(&osdc->osd_lru)); osdc 5221 net/ceph/osd_client.c WARN_ON(!RB_EMPTY_ROOT(&osdc->linger_requests)); osdc 5222 net/ceph/osd_client.c WARN_ON(!RB_EMPTY_ROOT(&osdc->map_checks)); osdc 5223 net/ceph/osd_client.c WARN_ON(!RB_EMPTY_ROOT(&osdc->linger_map_checks)); osdc 5224 net/ceph/osd_client.c WARN_ON(atomic_read(&osdc->num_requests)); osdc 5225 net/ceph/osd_client.c WARN_ON(atomic_read(&osdc->num_homeless)); osdc 5227 net/ceph/osd_client.c ceph_osdmap_destroy(osdc->osdmap); osdc 5228 net/ceph/osd_client.c mempool_destroy(osdc->req_mempool); osdc 5229 net/ceph/osd_client.c ceph_msgpool_destroy(&osdc->msgpool_op); osdc 5230 net/ceph/osd_client.c ceph_msgpool_destroy(&osdc->msgpool_op_reply); osdc 5237 net/ceph/osd_client.c int ceph_osdc_readpages(struct ceph_osd_client *osdc, osdc 5248 net/ceph/osd_client.c req = ceph_osdc_new_request(osdc, layout, vino, off, plen, 0, 1, osdc 5262 net/ceph/osd_client.c rc = ceph_osdc_start_request(osdc, req, false); osdc 5264 net/ceph/osd_client.c rc = ceph_osdc_wait_request(osdc, req); osdc 5275 net/ceph/osd_client.c int ceph_osdc_writepages(struct ceph_osd_client *osdc, struct ceph_vino vino, osdc 5287 net/ceph/osd_client.c req = ceph_osdc_new_request(osdc, layout, vino, off, &len, 0, 1, osdc 5300 net/ceph/osd_client.c rc = ceph_osdc_start_request(osdc, req, true); osdc 5302 net/ceph/osd_client.c rc = ceph_osdc_wait_request(osdc, req); osdc 5345 net/ceph/osd_client.c int ceph_osdc_copy_from(struct ceph_osd_client *osdc, osdc 5358 net/ceph/osd_client.c req = ceph_osdc_alloc_request(osdc, NULL, 1, false, GFP_KERNEL); osdc 5377 net/ceph/osd_client.c ceph_osdc_start_request(osdc, req, false); osdc 5378 net/ceph/osd_client.c ret = ceph_osdc_wait_request(osdc, req); osdc 5411 net/ceph/osd_client.c struct ceph_osd_client *osdc = osd->o_osdc; osdc 5416 net/ceph/osd_client.c ceph_osdc_handle_map(osdc, msg); osdc 5425 net/ceph/osd_client.c handle_watch_notify(osdc, msg); osdc 5446 net/ceph/osd_client.c struct ceph_osd_client *osdc = osd->o_osdc; osdc 5453 net/ceph/osd_client.c down_read(&osdc->lock); osdc 5499 net/ceph/osd_client.c up_read(&osdc->lock); osdc 5581 net/ceph/osd_client.c struct ceph_osd_client *osdc = o->o_osdc; osdc 5582 net/ceph/osd_client.c struct ceph_auth_client *ac = osdc->client->monc.auth; osdc 5609 net/ceph/osd_client.c struct ceph_osd_client *osdc = o->o_osdc; osdc 5610 net/ceph/osd_client.c struct ceph_auth_client *ac = osdc->client->monc.auth; osdc 5619 net/ceph/osd_client.c struct ceph_osd_client *osdc = o->o_osdc; osdc 5620 net/ceph/osd_client.c struct ceph_auth_client *ac = osdc->client->monc.auth; osdc 5628 net/ceph/osd_client.c struct ceph_osd_client *osdc = o->o_osdc; osdc 5629 net/ceph/osd_client.c struct ceph_auth_client *ac = osdc->client->monc.auth; osdc 5632 net/ceph/osd_client.c return ceph_monc_validate_auth(&osdc->client->monc);