aoe: return real minor number for static minors
Ed Cashin [Tue, 18 Dec 2012 00:04:06 +0000 (16:04 -0800)]
The value returned by the static minor device number number allocator is
the real minor number, so it must be multiplied by the supported number
of partitions per aoedev.

Without this fix the support for systems without udev is incomplete, and
the few users of aoe on such systems will have surprising results when
device nodes names do not match the AoE target.

Signed-off-by: Ed Cashin <ecashin@coraid.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

drivers/block/aoe/aoedev.c

index 80b3d3e..aaaea66 100644 (file)
@@ -95,7 +95,7 @@ minor_get_static(ulong *sysminor, ulong aoemaj, int aoemin)
        } else
                set_bit(n, used_minors);
        spin_unlock_irqrestore(&used_minors_lock, flags);
-       *sysminor = n;
+       *sysminor = n * AOE_PARTITIONS;
 out:
        return error;
 }