提交 ae2cb1ac 编写于 作者: M Masami Hiramatsu 提交者: Arnaldo Carvalho de Melo

perf probe: Fix to close probe_events file in error

Fix perf-probe to close probe_events file if it failed to get existing
probe's name. This also fix the return error code to -ENOMEM.
Signed-off-by: NMasami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
Cc: Ananth N Mavinakayanahalli <ananth@in.ibm.com>
Cc: David Ahern <dsahern@gmail.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: hemant@linux.vnet.ibm.com
Link: http://lkml.kernel.org/r/20150506124640.4961.26062.stgit@localhost.localdomainSigned-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
上级 cb307113
...@@ -2384,7 +2384,8 @@ static int __add_probe_trace_events(struct perf_probe_event *pev, ...@@ -2384,7 +2384,8 @@ static int __add_probe_trace_events(struct perf_probe_event *pev,
namelist = get_probe_trace_event_names(fd, false); namelist = get_probe_trace_event_names(fd, false);
if (!namelist) { if (!namelist) {
pr_debug("Failed to get current event list.\n"); pr_debug("Failed to get current event list.\n");
return -EIO; ret = -ENOMEM;
goto close_out;
} }
/* Get kprobe blacklist if exists */ /* Get kprobe blacklist if exists */
if (!pev->uprobes) { if (!pev->uprobes) {
...@@ -2467,6 +2468,7 @@ static int __add_probe_trace_events(struct perf_probe_event *pev, ...@@ -2467,6 +2468,7 @@ static int __add_probe_trace_events(struct perf_probe_event *pev,
kprobe_blacklist__delete(&blacklist); kprobe_blacklist__delete(&blacklist);
strlist__delete(namelist); strlist__delete(namelist);
close_out:
close(fd); close(fd);
return ret; return ret;
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册