static void trace_add_file(struct thread_data *td, __u32 device) { static unsigned int last_maj, last_min; unsigned int maj = FMAJOR(device); unsigned int min = FMINOR(device); struct fio_file *f; char dev[256]; unsigned int i; if (last_maj == maj && last_min == min) return; last_maj = maj; last_min = min; /* * check for this file in our list */ for_each_file(td, f, i) if (f->major == maj && f->minor == min) return; strcpy(dev, "/dev"); if (lookup_device(td, dev, maj, min)) { int fileno; dprint(FD_BLKTRACE, "add devices %s\n", dev); fileno = add_file_exclusive(td, dev); trace_add_open_event(td, fileno); } }
static int trace_add_file(struct thread_data *td, __u32 device) { static unsigned int last_maj, last_min, last_fileno; unsigned int maj = FMAJOR(device); unsigned int min = FMINOR(device); struct fio_file *f; char dev[256]; unsigned int i; if (last_maj == maj && last_min == min) return last_fileno; last_maj = maj; last_min = min; /* * check for this file in our list */ for_each_file(td, f, i) if (f->major == maj && f->minor == min) { last_fileno = f->fileno; return last_fileno; } strcpy(dev, "/dev"); if (blktrace_lookup_device(td->o.replay_redirect, dev, maj, min)) { int fileno; if (td->o.replay_redirect) dprint(FD_BLKTRACE, "device lookup: %d/%d\n overridden" " with: %s\n", maj, min, td->o.replay_redirect); else dprint(FD_BLKTRACE, "device lookup: %d/%d\n", maj, min); dprint(FD_BLKTRACE, "add devices %s\n", dev); fileno = add_file_exclusive(td, dev); td->o.open_files++; td->files[fileno]->major = maj; td->files[fileno]->minor = min; trace_add_open_close_event(td, fileno, FIO_LOG_OPEN_FILE); last_fileno = fileno; } return last_fileno; }