On Fri, Oct 04, 2019 at 11:31:20AM +0300, Adrian Hunter wrote:

SNIP

>       u8 pad[8] = {0};
>  
> -     if (!perf_data__is_pipe(data) && !perf_data__is_dir(data)) {
> +     if (!perf_data__is_pipe(data) && perf_data__is_single_file(data)) {
>               off_t file_offset;
>               int fd = perf_data__fd(data);
>               int err;
> diff --git a/tools/perf/util/data.c b/tools/perf/util/data.c
> index df173f0bf654..964ea101dba6 100644
> --- a/tools/perf/util/data.c
> +++ b/tools/perf/util/data.c
> @@ -76,6 +76,13 @@ int perf_data__open_dir(struct perf_data *data)
>       DIR *dir;
>       int nr = 0;
>  
> +     /*
> +      * Directory containing a single regular perf data file which is already
> +      * open, means there is nothing more to do here.
> +      */
> +     if (perf_data__is_single_file(data))
> +             return 0;
> +

cool, I like this approach much more than the previous flag

any change you (if there's repost) or Arnaldo
could squeeze in indent change below?

thanks,
jirka


---
diff --git a/tools/perf/util/session.c b/tools/perf/util/session.c
index bfa80fe8d369..7f567a521cea 100644
--- a/tools/perf/util/session.c
+++ b/tools/perf/util/session.c
@@ -227,8 +227,8 @@ struct perf_session *perf_session__new(struct perf_data 
*data,
                        /* Open the directory data. */
                        if (data->is_dir) {
                                ret = perf_data__open_dir(data);
-                       if (ret)
-                               goto out_delete;
+                               if (ret)
+                                       goto out_delete;
                        }
 
                        if (!symbol_conf.kallsyms_name &&

Reply via email to