rbdc              747 drivers/block/rbd.c 	struct rbd_client *rbdc;
rbdc              751 drivers/block/rbd.c 	rbdc = kmalloc(sizeof(struct rbd_client), GFP_KERNEL);
rbdc              752 drivers/block/rbd.c 	if (!rbdc)
rbdc              755 drivers/block/rbd.c 	kref_init(&rbdc->kref);
rbdc              756 drivers/block/rbd.c 	INIT_LIST_HEAD(&rbdc->node);
rbdc              758 drivers/block/rbd.c 	rbdc->client = ceph_create_client(ceph_opts, rbdc);
rbdc              759 drivers/block/rbd.c 	if (IS_ERR(rbdc->client))
rbdc              763 drivers/block/rbd.c 	ret = ceph_open_session(rbdc->client);
rbdc              768 drivers/block/rbd.c 	list_add_tail(&rbdc->node, &rbd_client_list);
rbdc              771 drivers/block/rbd.c 	dout("%s: rbdc %p\n", __func__, rbdc);
rbdc              773 drivers/block/rbd.c 	return rbdc;
rbdc              775 drivers/block/rbd.c 	ceph_destroy_client(rbdc->client);
rbdc              777 drivers/block/rbd.c 	kfree(rbdc);
rbdc              786 drivers/block/rbd.c static struct rbd_client *__rbd_get_client(struct rbd_client *rbdc)
rbdc              788 drivers/block/rbd.c 	kref_get(&rbdc->kref);
rbdc              790 drivers/block/rbd.c 	return rbdc;
rbdc              978 drivers/block/rbd.c 	struct rbd_client *rbdc = container_of(kref, struct rbd_client, kref);
rbdc              980 drivers/block/rbd.c 	dout("%s: rbdc %p\n", __func__, rbdc);
rbdc              982 drivers/block/rbd.c 	list_del(&rbdc->node);
rbdc              985 drivers/block/rbd.c 	ceph_destroy_client(rbdc->client);
rbdc              986 drivers/block/rbd.c 	kfree(rbdc);
rbdc              993 drivers/block/rbd.c static void rbd_put_client(struct rbd_client *rbdc)
rbdc              995 drivers/block/rbd.c 	if (rbdc)
rbdc              996 drivers/block/rbd.c 		kref_put(&rbdc->kref, rbd_client_release);
rbdc             1006 drivers/block/rbd.c 	struct rbd_client *rbdc;
rbdc             1010 drivers/block/rbd.c 	rbdc = rbd_client_find(ceph_opts);
rbdc             1011 drivers/block/rbd.c 	if (rbdc) {
rbdc             1018 drivers/block/rbd.c 		ret = ceph_wait_for_latest_osdmap(rbdc->client,
rbdc             1019 drivers/block/rbd.c 					rbdc->client->options->mount_timeout);
rbdc             1022 drivers/block/rbd.c 			rbd_put_client(rbdc);
rbdc             1023 drivers/block/rbd.c 			rbdc = ERR_PTR(ret);
rbdc             1026 drivers/block/rbd.c 		rbdc = rbd_client_create(ceph_opts);
rbdc             1030 drivers/block/rbd.c 	return rbdc;
rbdc             5534 drivers/block/rbd.c static struct rbd_device *__rbd_dev_create(struct rbd_client *rbdc,
rbdc             5580 drivers/block/rbd.c 	rbd_dev->rbd_client = rbdc;
rbdc             5589 drivers/block/rbd.c static struct rbd_device *rbd_dev_create(struct rbd_client *rbdc,
rbdc             5595 drivers/block/rbd.c 	rbd_dev = __rbd_dev_create(rbdc, spec);
rbdc             7059 drivers/block/rbd.c 	struct rbd_client *rbdc;
rbdc             7070 drivers/block/rbd.c 	rbdc = rbd_get_client(ceph_opts);
rbdc             7071 drivers/block/rbd.c 	if (IS_ERR(rbdc)) {
rbdc             7072 drivers/block/rbd.c 		rc = PTR_ERR(rbdc);
rbdc             7077 drivers/block/rbd.c 	rc = ceph_pg_poolid_by_name(rbdc->client->osdc.osdmap, spec->pool_name);
rbdc             7085 drivers/block/rbd.c 	rbd_dev = rbd_dev_create(rbdc, spec, rbd_opts);
rbdc             7090 drivers/block/rbd.c 	rbdc = NULL;		/* rbd_dev now owns this */
rbdc             7152 drivers/block/rbd.c 	rbd_put_client(rbdc);