Merge branch 'master' of https://github.com/blah325/fio
[fio.git] / oslib / linux-dev-lookup.c
index 2bbd14a070739c28a74e0be30d0723cbbb7eb589..4335faf99b91b1c1876afd836673f1d4cb658472 100644 (file)
@@ -1,12 +1,12 @@
 #include <sys/types.h>
 #include <sys/stat.h>
+#include <sys/sysmacros.h>
 #include <dirent.h>
 #include <string.h>
 #include <stdio.h>
 #include <unistd.h>
 
-#include "../os/os.h"
-#include "oslib/linux-dev-lookup.h"
+#include "linux-dev-lookup.h"
 
 int blktrace_lookup_device(const char *redirect, char *path, unsigned int maj,
                           unsigned int min)
@@ -16,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;
@@ -44,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;