Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b9bfb93c authored by Sage Weil's avatar Sage Weil
Browse files

ceph: move mempool creation to ceph_create_client



Signed-off-by: default avatarSage Weil <sage@newdream.net>
parent 4e7a5dcd
Loading
Loading
Loading
Loading
+12 −11
Original line number Diff line number Diff line
@@ -534,10 +534,18 @@ static struct ceph_client *ceph_create_client(struct ceph_mount_args *args)
	if (client->trunc_wq == NULL)
		goto fail_pg_inv_wq;

	/* set up mempools */
	err = -ENOMEM;
	client->wb_pagevec_pool = mempool_create_kmalloc_pool(10,
			      client->mount_args->wsize >> PAGE_CACHE_SHIFT);
	if (!client->wb_pagevec_pool)
		goto fail_trunc_wq;


	/* subsystems */
	err = ceph_monc_init(&client->monc, client);
	if (err < 0)
		goto fail_trunc_wq;
		goto fail_mempool;
	err = ceph_osdc_init(&client->osdc, client);
	if (err < 0)
		goto fail_monc;
@@ -550,6 +558,8 @@ static struct ceph_client *ceph_create_client(struct ceph_mount_args *args)
	ceph_osdc_stop(&client->osdc);
fail_monc:
	ceph_monc_stop(&client->monc);
fail_mempool:
	mempool_destroy(client->wb_pagevec_pool);
fail_trunc_wq:
	destroy_workqueue(client->trunc_wq);
fail_pg_inv_wq:
@@ -581,7 +591,6 @@ static void ceph_destroy_client(struct ceph_client *client)

	if (client->msgr)
		ceph_messenger_destroy(client->msgr);
	if (client->wb_pagevec_pool)
	mempool_destroy(client->wb_pagevec_pool);

	destroy_mount_args(client->mount_args);
@@ -845,14 +854,6 @@ static int ceph_get_sb(struct file_system_type *fs_type,
		dout("get_sb got existing client %p\n", client);
	} else {
		dout("get_sb using new client %p\n", client);

		/* set up mempools */
		err = -ENOMEM;
		client->wb_pagevec_pool = mempool_create_kmalloc_pool(10,
			      client->mount_args->wsize >> PAGE_CACHE_SHIFT);
		if (!client->wb_pagevec_pool)
			goto out_splat;

		err = ceph_register_bdi(sb, client);
		if (err < 0)
			goto out_splat;