From eeb9c2aa5439dd6615ad69324f402f774173f6e5 Mon Sep 17 00:00:00 2001 From: Jens Axboe Date: Wed, 16 May 2007 18:28:47 +0200 Subject: [PATCH] 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 --- blktrace.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/blktrace.c b/blktrace.c index 5ed2619d..629aebed 100644 --- a/blktrace.c +++ b/blktrace.c @@ -142,11 +142,16 @@ static int lookup_device(char *path, unsigned int maj, unsigned int min) 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; -- 2.25.1