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 &&