Lines Matching defs:rbdc
757 struct rbd_client *rbdc;
761 rbdc = kmalloc(sizeof(struct rbd_client), GFP_KERNEL);
762 if (!rbdc)
765 kref_init(&rbdc->kref);
766 INIT_LIST_HEAD(&rbdc->node);
768 rbdc->client = ceph_create_client(ceph_opts, rbdc);
769 if (IS_ERR(rbdc->client))
771 ceph_opts = NULL; /* Now rbdc->client is responsible for ceph_opts */
773 ret = ceph_open_session(rbdc->client);
778 list_add_tail(&rbdc->node, &rbd_client_list);
781 dout("%s: rbdc %p\n", __func__, rbdc);
783 return rbdc;
785 ceph_destroy_client(rbdc->client);
787 kfree(rbdc);
796 static struct rbd_client *__rbd_get_client(struct rbd_client *rbdc)
798 kref_get(&rbdc->kref);
800 return rbdc;
926 struct rbd_client *rbdc = container_of(kref, struct rbd_client, kref);
928 dout("%s: rbdc %p\n", __func__, rbdc);
930 list_del(&rbdc->node);
933 ceph_destroy_client(rbdc->client);
934 kfree(rbdc);
941 static void rbd_put_client(struct rbd_client *rbdc)
943 if (rbdc)
944 kref_put(&rbdc->kref, rbd_client_release);
954 struct rbd_client *rbdc;
958 rbdc = rbd_client_find(ceph_opts);
959 if (rbdc) {
966 ret = ceph_wait_for_latest_osdmap(rbdc->client,
967 rbdc->client->options->mount_timeout);
970 rbd_put_client(rbdc);
971 rbdc = ERR_PTR(ret);
974 rbdc = rbd_client_create(ceph_opts);
978 return rbdc;
5473 static struct rbd_device *rbd_dev_create(struct rbd_client *rbdc,
5499 rbd_dev->rbd_client = rbdc;
7170 struct rbd_client *rbdc;
7184 rbdc = rbd_get_client(ceph_opts);
7185 if (IS_ERR(rbdc)) {
7186 rc = PTR_ERR(rbdc);
7191 rc = ceph_pg_poolid_by_name(rbdc->client->osdc.osdmap, spec->pool_name);
7199 rbd_dev = rbd_dev_create(rbdc, spec, rbd_opts);
7204 rbdc = NULL; /* rbd_dev now owns this */
7267 rbd_put_client(rbdc);