perf tools: Remove some needless die() calls from the main routine

Some would just call exit() anyway right after calling die() and the
main routine doesn't have to call it, just return the exit value.

Cc: David Ahern <dsahern@gmail.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Mike Galbraith <efault@gmx.de>
Cc: Namhyung Kim <namhyung@gmail.com>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Stephane Eranian <eranian@google.com>
Link: http://lkml.kernel.org/n/tip-nzq0sdur6oq6lgkt2ipf4o8s@git.kernel.orgSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
parent ab1bf653
...@@ -328,14 +328,23 @@ static int run_builtin(struct cmd_struct *p, int argc, const char **argv) ...@@ -328,14 +328,23 @@ static int run_builtin(struct cmd_struct *p, int argc, const char **argv)
if (S_ISFIFO(st.st_mode) || S_ISSOCK(st.st_mode)) if (S_ISFIFO(st.st_mode) || S_ISSOCK(st.st_mode))
return 0; return 0;
status = 1;
/* Check for ENOSPC and EIO errors.. */ /* Check for ENOSPC and EIO errors.. */
if (fflush(stdout)) if (fflush(stdout)) {
die("write failure on standard output: %s", strerror(errno)); fprintf(stderr, "write failure on standard output: %s", strerror(errno));
if (ferror(stdout)) goto out;
die("unknown write failure on standard output"); }
if (fclose(stdout)) if (ferror(stdout)) {
die("close failed on standard output: %s", strerror(errno)); fprintf(stderr, "unknown write failure on standard output");
return 0; goto out;
}
if (fclose(stdout)) {
fprintf(stderr, "close failed on standard output: %s", strerror(errno));
goto out;
}
status = 0;
out:
return status;
} }
static void handle_internal_command(int argc, const char **argv) static void handle_internal_command(int argc, const char **argv)
...@@ -467,7 +476,8 @@ int main(int argc, const char **argv) ...@@ -467,7 +476,8 @@ int main(int argc, const char **argv)
cmd += 5; cmd += 5;
argv[0] = cmd; argv[0] = cmd;
handle_internal_command(argc, argv); handle_internal_command(argc, argv);
die("cannot handle %s internally", cmd); fprintf(stderr, "cannot handle %s internally", cmd);
goto out;
} }
/* Look for flags.. */ /* Look for flags.. */
...@@ -485,7 +495,7 @@ int main(int argc, const char **argv) ...@@ -485,7 +495,7 @@ int main(int argc, const char **argv)
printf("\n usage: %s\n\n", perf_usage_string); printf("\n usage: %s\n\n", perf_usage_string);
list_common_cmds_help(); list_common_cmds_help();
printf("\n %s\n\n", perf_more_info_string); printf("\n %s\n\n", perf_more_info_string);
exit(1); goto out;
} }
cmd = argv[0]; cmd = argv[0];
...@@ -517,7 +527,7 @@ int main(int argc, const char **argv) ...@@ -517,7 +527,7 @@ int main(int argc, const char **argv)
fprintf(stderr, "Expansion of alias '%s' failed; " fprintf(stderr, "Expansion of alias '%s' failed; "
"'%s' is not a perf-command\n", "'%s' is not a perf-command\n",
cmd, argv[0]); cmd, argv[0]);
exit(1); goto out;
} }
if (!done_help) { if (!done_help) {
cmd = argv[0] = help_unknown_cmd(cmd); cmd = argv[0] = help_unknown_cmd(cmd);
...@@ -528,6 +538,6 @@ int main(int argc, const char **argv) ...@@ -528,6 +538,6 @@ int main(int argc, const char **argv)
fprintf(stderr, "Failed to run command '%s': %s\n", fprintf(stderr, "Failed to run command '%s': %s\n",
cmd, strerror(errno)); cmd, strerror(errno));
out:
return 1; return 1;
} }
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment