+static int check_dir(struct thread_data *td, char *fname)
+{
+ char file[PATH_MAX], *dir;
+ struct stat sb;
+ int elen = 0;
+
+ if (td->o.directory) {
+ strcpy(file, td->o.directory);
+ elen = strlen(file);
+ }
+
+ sprintf(file + elen, "/%s", fname);
+ dir = dirname(file);
+
+ if (lstat(dir, &sb) < 0) {
+ int ret = errno;
+
+ log_err("fio: %s is not a directory\n", dir);
+ td_verror(td, ret, "lstat");
+ return 1;
+ }
+
+ if (!S_ISDIR(sb.st_mode)) {
+ log_err("fio: %s is not a directory\n", dir);
+ return 1;
+ }
+
+ return 0;
+}
+