Skip to content

Commit

Permalink
ceph: init/destroy bdi in client create/destroy helpers
Browse files Browse the repository at this point in the history
This keeps bdi setup/teardown in line with client life cycle.

Signed-off-by: Sage Weil <sage@newdream.net>
  • Loading branch information
Sage Weil committed Nov 2, 2009
1 parent 33aa96e commit 859e7b1
Showing 1 changed file with 9 additions and 6 deletions.
15 changes: 9 additions & 6 deletions fs/ceph/super.c
Original file line number Diff line number Diff line change
Expand Up @@ -508,10 +508,14 @@ static struct ceph_client *ceph_create_client(struct ceph_mount_args *args)
client->signed_ticket = NULL;
client->signed_ticket_len = 0;

err = bdi_init(&client->backing_dev_info);
if (err < 0)
goto fail;

err = -ENOMEM;
client->wb_wq = create_workqueue("ceph-writeback");
if (client->wb_wq == NULL)
goto fail;
goto fail_bdi;
client->pg_inv_wq = create_singlethread_workqueue("ceph-pg-invalid");
if (client->pg_inv_wq == NULL)
goto fail_wb_wq;
Expand All @@ -537,6 +541,8 @@ static struct ceph_client *ceph_create_client(struct ceph_mount_args *args)
destroy_workqueue(client->pg_inv_wq);
fail_wb_wq:
destroy_workqueue(client->wb_wq);
fail_bdi:
bdi_destroy(&client->backing_dev_info);
fail:
kfree(client);
return ERR_PTR(err);
Expand Down Expand Up @@ -774,13 +780,10 @@ static int ceph_compare_super(struct super_block *sb, void *data)
/*
* construct our own bdi so we can control readahead, etc.
*/
static int ceph_init_bdi(struct super_block *sb, struct ceph_client *client)
static int ceph_register_bdi(struct super_block *sb, struct ceph_client *client)
{
int err;

err = bdi_init(&client->backing_dev_info);
if (err < 0)
return err;
sb->s_bdi = &client->backing_dev_info;

/* set ra_pages based on rsize mount option? */
Expand Down Expand Up @@ -840,7 +843,7 @@ static int ceph_get_sb(struct file_system_type *fs_type,
if (!client->wb_pagevec_pool)
goto out_splat;

err = ceph_init_bdi(sb, client);
err = ceph_register_bdi(sb, client);
if (err < 0)
goto out_splat;
}
Expand Down

0 comments on commit 859e7b1

Please sign in to comment.