Lines Matching refs:rbdc
707 struct rbd_client *rbdc; in rbd_client_create() local
711 rbdc = kmalloc(sizeof(struct rbd_client), GFP_KERNEL); in rbd_client_create()
712 if (!rbdc) in rbd_client_create()
715 kref_init(&rbdc->kref); in rbd_client_create()
716 INIT_LIST_HEAD(&rbdc->node); in rbd_client_create()
718 rbdc->client = ceph_create_client(ceph_opts, rbdc); in rbd_client_create()
719 if (IS_ERR(rbdc->client)) in rbd_client_create()
723 ret = ceph_open_session(rbdc->client); in rbd_client_create()
728 list_add_tail(&rbdc->node, &rbd_client_list); in rbd_client_create()
731 dout("%s: rbdc %p\n", __func__, rbdc); in rbd_client_create()
733 return rbdc; in rbd_client_create()
735 ceph_destroy_client(rbdc->client); in rbd_client_create()
737 kfree(rbdc); in rbd_client_create()
746 static struct rbd_client *__rbd_get_client(struct rbd_client *rbdc) in __rbd_get_client() argument
748 kref_get(&rbdc->kref); in __rbd_get_client()
750 return rbdc; in __rbd_get_client()
876 struct rbd_client *rbdc = container_of(kref, struct rbd_client, kref); in rbd_client_release() local
878 dout("%s: rbdc %p\n", __func__, rbdc); in rbd_client_release()
880 list_del(&rbdc->node); in rbd_client_release()
883 ceph_destroy_client(rbdc->client); in rbd_client_release()
884 kfree(rbdc); in rbd_client_release()
891 static void rbd_put_client(struct rbd_client *rbdc) in rbd_put_client() argument
893 if (rbdc) in rbd_put_client()
894 kref_put(&rbdc->kref, rbd_client_release); in rbd_put_client()
904 struct rbd_client *rbdc; in rbd_get_client() local
908 rbdc = rbd_client_find(ceph_opts); in rbd_get_client()
909 if (rbdc) { in rbd_get_client()
916 ret = ceph_wait_for_latest_osdmap(rbdc->client, in rbd_get_client()
917 rbdc->client->options->mount_timeout); in rbd_get_client()
920 rbd_put_client(rbdc); in rbd_get_client()
921 rbdc = ERR_PTR(ret); in rbd_get_client()
924 rbdc = rbd_client_create(ceph_opts); in rbd_get_client()
928 return rbdc; in rbd_get_client()
5299 static struct rbd_device *__rbd_dev_create(struct rbd_client *rbdc, in __rbd_dev_create() argument
5345 rbd_dev->rbd_client = rbdc; in __rbd_dev_create()
5354 static struct rbd_device *rbd_dev_create(struct rbd_client *rbdc, in rbd_dev_create() argument
5360 rbd_dev = __rbd_dev_create(rbdc, spec); in rbd_dev_create()
6984 struct rbd_client *rbdc; in do_rbd_add() local
6998 rbdc = rbd_get_client(ceph_opts); in do_rbd_add()
6999 if (IS_ERR(rbdc)) { in do_rbd_add()
7000 rc = PTR_ERR(rbdc); in do_rbd_add()
7005 rc = ceph_pg_poolid_by_name(rbdc->client->osdc.osdmap, spec->pool_name); in do_rbd_add()
7013 rbd_dev = rbd_dev_create(rbdc, spec, rbd_opts); in do_rbd_add()
7018 rbdc = NULL; /* rbd_dev now owns this */ in do_rbd_add()
7079 rbd_put_client(rbdc); in do_rbd_add()