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);