diff --git a/fs/ceph/debugfs.c b/fs/ceph/debugfs.c
index b90fc3e1ff709f2ec82321a937b541933337caf4..441484ab7e948bd9a8fd6b0c13c6f2c810f76636 100644
--- a/fs/ceph/debugfs.c
+++ b/fs/ceph/debugfs.c
@@ -1,5 +1,6 @@
 #include "ceph_debug.h"
 
+#include <linux/device.h>
 #include <linux/module.h>
 #include <linux/ctype.h>
 #include <linux/debugfs.h>
@@ -24,6 +25,7 @@
  *      .../monc        - mon client state
  *      .../dentry_lru  - dump contents of dentry lru
  *      .../caps        - expose cap (reservation) stats
+ *      .../bdi         - symlink to ../../bdi/something
  */
 
 static struct dentry *ceph_debugfs_dir;
@@ -407,6 +409,10 @@ int ceph_debugfs_client_init(struct ceph_client *client)
 	if (!client->debugfs_caps)
 		goto out;
 
+	sprintf(name, "../../bdi/%s", dev_name(client->sb->s_bdi->dev));
+	client->debugfs_bdi = debugfs_create_symlink("bdi", client->debugfs_dir,
+						     name);
+
 	return 0;
 
 out:
@@ -416,6 +422,7 @@ int ceph_debugfs_client_init(struct ceph_client *client)
 
 void ceph_debugfs_client_cleanup(struct ceph_client *client)
 {
+	debugfs_remove(client->debugfs_bdi);
 	debugfs_remove(client->debugfs_caps);
 	debugfs_remove(client->debugfs_dentry_lru);
 	debugfs_remove(client->debugfs_osdmap);
diff --git a/fs/ceph/super.h b/fs/ceph/super.h
index de5e324149784aab20363a0dfeb41e579286582d..2304bd2844a4a2b1d7f76b491917e0939ee45d6d 100644
--- a/fs/ceph/super.h
+++ b/fs/ceph/super.h
@@ -143,6 +143,7 @@ struct ceph_client {
 	struct dentry *debugfs_monmap;
 	struct dentry *debugfs_mdsmap, *debugfs_osdmap;
 	struct dentry *debugfs_dir, *debugfs_dentry_lru, *debugfs_caps;
+	struct dentry *debugfs_bdi;
 #endif
 };