while ((node = fts_read(tree))) {
int dirfd, metafd;
+ int closeret;
if (!(node->fts_info & FTS_D))
continue;
}
metafd = openat(dirfd, "metadata", O_RDONLY);
if (metafd < 0) {
- ret = close(dirfd);
- if (ret < 0) {
+ closeret = close(dirfd);
+ if (closeret < 0) {
perror("close");
goto error;
}
+ ret = -1;
+ continue;
} else {
int trace_id;
}
}
- g_array_free(trace_ids, TRUE);
- return ret;
-
error:
+ /*
+ * Return an error if no trace can be opened.
+ */
+ if (ret == 0 && trace_ids->len == 0) {
+ fprintf(stderr, "[error] Cannot open any trace for reading.\n\n");
+ ret = -ENOENT;
+ }
+ g_array_free(trace_ids, TRUE);
return ret;
}