Lines Matching defs:rbdc
706 struct rbd_client *rbdc;
710 rbdc = kmalloc(sizeof(struct rbd_client), GFP_KERNEL);
711 if (!rbdc)
714 kref_init(&rbdc->kref);
715 INIT_LIST_HEAD(&rbdc->node);
717 rbdc->client = ceph_create_client(ceph_opts, rbdc);
718 if (IS_ERR(rbdc->client))
720 ceph_opts = NULL; /* Now rbdc->client is responsible for ceph_opts */
722 ret = ceph_open_session(rbdc->client);
727 list_add_tail(&rbdc->node, &rbd_client_list);
730 dout("%s: rbdc %p\n", __func__, rbdc);
732 return rbdc;
734 ceph_destroy_client(rbdc->client);
736 kfree(rbdc);
745 static struct rbd_client *__rbd_get_client(struct rbd_client *rbdc)
747 kref_get(&rbdc->kref);
749 return rbdc;
758 struct rbd_client *rbdc = NULL, *iter;
768 rbdc = iter;
774 return rbdc;
874 struct rbd_client *rbdc = container_of(kref, struct rbd_client, kref);
876 dout("%s: rbdc %p\n", __func__, rbdc);
878 list_del(&rbdc->node);
881 ceph_destroy_client(rbdc->client);
882 kfree(rbdc);
889 static void rbd_put_client(struct rbd_client *rbdc)
891 if (rbdc)
892 kref_put(&rbdc->kref, rbd_client_release);
902 struct rbd_client *rbdc;
906 rbdc = rbd_client_find(ceph_opts);
907 if (rbdc) {
914 ret = ceph_wait_for_latest_osdmap(rbdc->client,
915 rbdc->client->options->mount_timeout);
918 rbd_put_client(rbdc);
919 rbdc = ERR_PTR(ret);
922 rbdc = rbd_client_create(ceph_opts);
926 return rbdc;
5400 static struct rbd_device *rbd_dev_create(struct rbd_client *rbdc,
5426 rbd_dev->rbd_client = rbdc;
7096 struct rbd_client *rbdc;
7110 rbdc = rbd_get_client(ceph_opts);
7111 if (IS_ERR(rbdc)) {
7112 rc = PTR_ERR(rbdc);
7117 rc = ceph_pg_poolid_by_name(rbdc->client->osdc.osdmap, spec->pool_name);
7125 rbd_dev = rbd_dev_create(rbdc, spec, rbd_opts);
7130 rbdc = NULL; /* rbd_dev now owns this */
7195 rbd_put_client(rbdc);