summaryrefslogtreecommitdiffstats
path: root/drivers/block/drbd/drbd_proc.c
diff options
context:
space:
mode:
authorPhilipp Reisner2011-02-23 01:53:16 +0100
committerPhilipp Reisner2011-10-14 16:48:01 +0200
commit81a5d60ecfe1d94627abb54810445f0fd5892f42 (patch)
tree1eec9bdb9c5a881da904cd8325438de9d79713af /drivers/block/drbd/drbd_proc.c
parentdrbd: Implemented new commands to create/delete connections/minors (diff)
downloadkernel-qcow2-linux-81a5d60ecfe1d94627abb54810445f0fd5892f42.tar.gz
kernel-qcow2-linux-81a5d60ecfe1d94627abb54810445f0fd5892f42.tar.xz
kernel-qcow2-linux-81a5d60ecfe1d94627abb54810445f0fd5892f42.zip
drbd: Replaced the minor_table array by an idr
Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com> Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com>
Diffstat (limited to 'drivers/block/drbd/drbd_proc.c')
-rw-r--r--drivers/block/drbd/drbd_proc.c14
1 files changed, 4 insertions, 10 deletions
diff --git a/drivers/block/drbd/drbd_proc.c b/drivers/block/drbd/drbd_proc.c
index 4e53cb3d99e7..36c9a6cecdc6 100644
--- a/drivers/block/drbd/drbd_proc.c
+++ b/drivers/block/drbd/drbd_proc.c
@@ -194,7 +194,7 @@ static void resync_dump_detail(struct seq_file *seq, struct lc_element *e)
static int drbd_seq_show(struct seq_file *seq, void *v)
{
- int i, hole = 0;
+ int i, prev_i = -1;
const char *sn;
struct drbd_conf *mdev;
@@ -227,16 +227,10 @@ static int drbd_seq_show(struct seq_file *seq, void *v)
oos .. known out-of-sync kB
*/
- for (i = 0; i < minor_count; i++) {
- mdev = minor_to_mdev(i);
- if (!mdev) {
- hole = 1;
- continue;
- }
- if (hole) {
- hole = 0;
+ idr_for_each_entry(&minors, mdev, i) {
+ if (prev_i != i - 1)
seq_printf(seq, "\n");
- }
+ prev_i = i;
sn = drbd_conn_str(mdev->state.conn);