diff options
author | Karel Zak | 2016-10-31 13:15:35 +0100 |
---|---|---|
committer | Karel Zak | 2016-10-31 13:15:35 +0100 |
commit | 93fea49f2834a634babc8c7f86c01edea123ed7a (patch) | |
tree | c893d8b37a639408eb22158eb279ebd93f6b8e76 /sys-utils/flock.c | |
parent | Merge branch 'fixes-for-v2.29' of https://github.com/rudimeier/util-linux (diff) | |
download | kernel-qcow2-util-linux-93fea49f2834a634babc8c7f86c01edea123ed7a.tar.gz kernel-qcow2-util-linux-93fea49f2834a634babc8c7f86c01edea123ed7a.tar.xz kernel-qcow2-util-linux-93fea49f2834a634babc8c7f86c01edea123ed7a.zip |
flocks: keep run_program() simple
Diffstat (limited to 'sys-utils/flock.c')
-rw-r--r-- | sys-utils/flock.c | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/sys-utils/flock.c b/sys-utils/flock.c index 8ee17035b..dcd0f5e40 100644 --- a/sys-utils/flock.c +++ b/sys-utils/flock.c @@ -115,11 +115,8 @@ static int open_file(const char *filename, int *flags) return fd; } -static void __attribute__((__noreturn__)) run_program(int fd, char **cmd_argv, int do_close) +static void __attribute__((__noreturn__)) run_program(char **cmd_argv) { - if (do_close) - close(fd); - execvp(cmd_argv[0], cmd_argv); warn(_("failed to execute %s"), cmd_argv[0]); @@ -348,11 +345,13 @@ int main(int argc, char *argv[]) err(EX_OSERR, _("fork failed")); /* child */ - else if (f == 0) - run_program(fd, cmd_argv, do_close); + else if (f == 0) { + if (do_close) + close(fd); + run_program(cmd_argv); /* parent */ - else { + } else { do { w = waitpid(f, &status, 0); if (w == -1 && errno != EINTR) @@ -373,7 +372,7 @@ int main(int argc, char *argv[]) } else /* no-fork execution */ - run_program(fd, cmd_argv, do_close); + run_program(cmd_argv); } return status; |