From: Jens Axboe Date: Wed, 16 May 2007 16:28:47 +0000 (+0200) Subject: blktrace support: major/minor fixups X-Git-Tag: fio-1.16.2~12 X-Git-Url: https://git.kernel.dk/?p=fio.git;a=commitdiff_plain;h=eeb9c2aa5439dd6615ad69324f402f774173f6e5;hp=5e6c20673be9f46332f47ede0e3b657b2cc35ec4;ds=sidebyside 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 --- 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;