Lines Matching refs:rbdc

758 	struct rbd_client *rbdc;  in rbd_client_create()  local
762 rbdc = kmalloc(sizeof(struct rbd_client), GFP_KERNEL); in rbd_client_create()
763 if (!rbdc) in rbd_client_create()
766 kref_init(&rbdc->kref); in rbd_client_create()
767 INIT_LIST_HEAD(&rbdc->node); in rbd_client_create()
769 rbdc->client = ceph_create_client(ceph_opts, rbdc); in rbd_client_create()
770 if (IS_ERR(rbdc->client)) in rbd_client_create()
774 ret = ceph_open_session(rbdc->client); in rbd_client_create()
779 list_add_tail(&rbdc->node, &rbd_client_list); in rbd_client_create()
782 dout("%s: rbdc %p\n", __func__, rbdc); in rbd_client_create()
784 return rbdc; in rbd_client_create()
786 ceph_destroy_client(rbdc->client); in rbd_client_create()
788 kfree(rbdc); in rbd_client_create()
797 static struct rbd_client *__rbd_get_client(struct rbd_client *rbdc) in __rbd_get_client() argument
799 kref_get(&rbdc->kref); in __rbd_get_client()
801 return rbdc; in __rbd_get_client()
927 struct rbd_client *rbdc = container_of(kref, struct rbd_client, kref); in rbd_client_release() local
929 dout("%s: rbdc %p\n", __func__, rbdc); in rbd_client_release()
931 list_del(&rbdc->node); in rbd_client_release()
934 ceph_destroy_client(rbdc->client); in rbd_client_release()
935 kfree(rbdc); in rbd_client_release()
942 static void rbd_put_client(struct rbd_client *rbdc) in rbd_put_client() argument
944 if (rbdc) in rbd_put_client()
945 kref_put(&rbdc->kref, rbd_client_release); in rbd_put_client()
955 struct rbd_client *rbdc; in rbd_get_client() local
959 rbdc = rbd_client_find(ceph_opts); in rbd_get_client()
960 if (rbdc) { in rbd_get_client()
967 ret = ceph_wait_for_latest_osdmap(rbdc->client, in rbd_get_client()
968 rbdc->client->options->mount_timeout); in rbd_get_client()
971 rbd_put_client(rbdc); in rbd_get_client()
972 rbdc = ERR_PTR(ret); in rbd_get_client()
975 rbdc = rbd_client_create(ceph_opts); in rbd_get_client()
979 return rbdc; in rbd_get_client()
5372 static struct rbd_device *__rbd_dev_create(struct rbd_client *rbdc, in __rbd_dev_create() argument
5418 rbd_dev->rbd_client = rbdc; in __rbd_dev_create()
5427 static struct rbd_device *rbd_dev_create(struct rbd_client *rbdc, in rbd_dev_create() argument
5433 rbd_dev = __rbd_dev_create(rbdc, spec); in rbd_dev_create()
7057 struct rbd_client *rbdc; in do_rbd_add() local
7071 rbdc = rbd_get_client(ceph_opts); in do_rbd_add()
7072 if (IS_ERR(rbdc)) { in do_rbd_add()
7073 rc = PTR_ERR(rbdc); in do_rbd_add()
7078 rc = ceph_pg_poolid_by_name(rbdc->client->osdc.osdmap, spec->pool_name); in do_rbd_add()
7086 rbd_dev = rbd_dev_create(rbdc, spec, rbd_opts); in do_rbd_add()
7091 rbdc = NULL; /* rbd_dev now owns this */ in do_rbd_add()
7154 rbd_put_client(rbdc); in do_rbd_add()