X-Git-Url: https://git.kernel.dk/?a=blobdiff_plain;f=oslib%2Flinux-dev-lookup.c;h=4335faf99b91b1c1876afd836673f1d4cb658472;hb=d9d60dbf49bfa62b5bd26f078533088f1de17b6f;hp=5fbccd33c6d541ea168d4025d3eb5b742a3514dc;hpb=10c37df111032901e790cd57e7df43a42edd8ba8;p=fio.git diff --git a/oslib/linux-dev-lookup.c b/oslib/linux-dev-lookup.c index 5fbccd33..4335faf9 100644 --- a/oslib/linux-dev-lookup.c +++ b/oslib/linux-dev-lookup.c @@ -1,5 +1,6 @@ #include #include +#include #include #include #include @@ -15,12 +16,22 @@ int blktrace_lookup_device(const char *redirect, char *path, unsigned int maj, int found = 0; DIR *D; + /* + * If replay_redirect is set then always return this device + * upon lookup which overrides the device lookup based on + * major minor in the actual blktrace + */ + if (redirect) { + strcpy(path, redirect); + return 1; + } + D = opendir(path); if (!D) return 0; while ((dir = readdir(D)) != NULL) { - char full_path[256]; + char full_path[257]; if (!strcmp(dir->d_name, ".") || !strcmp(dir->d_name, "..")) continue; @@ -43,17 +54,6 @@ int blktrace_lookup_device(const char *redirect, char *path, unsigned int maj, if (!S_ISBLK(st.st_mode)) continue; - /* - * If replay_redirect is set then always return this device - * upon lookup which overrides the device lookup based on - * major minor in the actual blktrace - */ - if (redirect) { - strcpy(path, redirect); - found = 1; - break; - } - if (maj == major(st.st_rdev) && min == minor(st.st_rdev)) { strcpy(path, full_path); found = 1;