blktrace support: major/minor fixups
We get passed the kernel variant, so we need a bit of manual
support to untangle it (major() and minor() wont cut it).
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
diff --git a/blktrace.c b/blktrace.c
index 5ed2619..629aebe 100644
--- a/blktrace.c
+++ b/blktrace.c
@@ -142,11 +142,16 @@
return found;
}
+#define MINORBITS 20
+#define MINORMASK ((1U << MINORBITS) - 1)
+#define MAJOR(dev) ((unsigned int) ((dev) >> MINORBITS))
+#define MINOR(dev) ((unsigned int) ((dev) & MINORMASK))
+
static void trace_add_file(struct thread_data *td, __u32 device)
{
static unsigned int last_maj, last_min;
- unsigned int maj = major(device);
- unsigned int min = minor(device);
+ unsigned int maj = MAJOR(device);
+ unsigned int min = MINOR(device);
struct fio_file *f;
char dev[256];
unsigned int i;