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