summaryrefslogtreecommitdiff
path: root/fs/ceph
diff options
context:
space:
mode:
authorSage Weil <sage@newdream.net>2010-05-04 16:39:35 -0700
committerSage Weil <sage@newdream.net>2010-05-17 15:25:30 -0700
commit31e0cf8f6a1488b6ca69dcdceeaed107ecfd6463 (patch)
tree4562632f7bed0a611a523b6f8cd0ca137122bbce /fs/ceph
parent56b7cf9581fa0486657102a6fb8efabc3eadeba1 (diff)
downloadlwn-31e0cf8f6a1488b6ca69dcdceeaed107ecfd6463.tar.gz
lwn-31e0cf8f6a1488b6ca69dcdceeaed107ecfd6463.zip
ceph: name bdi ceph-%d instead of major:minor
The bdi_setup_and_register() helper doesn't help us since we bdi_init() in create_client() and bdi_register() only when sget() succeeds. Signed-off-by: Sage Weil <sage@newdream.net>
Diffstat (limited to 'fs/ceph')
-rw-r--r--fs/ceph/super.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/fs/ceph/super.c b/fs/ceph/super.c
index 34b16cb302fe..7f5b20dc4945 100644
--- a/fs/ceph/super.c
+++ b/fs/ceph/super.c
@@ -910,6 +910,8 @@ static int ceph_compare_super(struct super_block *sb, void *data)
/*
* construct our own bdi so we can control readahead, etc.
*/
+static atomic_long_t bdi_seq = ATOMIC_INIT(0);
+
static int ceph_register_bdi(struct super_block *sb, struct ceph_client *client)
{
int err;
@@ -919,7 +921,8 @@ static int ceph_register_bdi(struct super_block *sb, struct ceph_client *client)
client->backing_dev_info.ra_pages =
(client->mount_args->rsize + PAGE_CACHE_SIZE - 1)
>> PAGE_SHIFT;
- err = bdi_register_dev(&client->backing_dev_info, sb->s_dev);
+ err = bdi_register(&client->backing_dev_info, NULL, "ceph-%d",
+ atomic_long_inc_return(&bdi_seq));
if (!err)
sb->s_bdi = &client->backing_dev_info;
return err;