summaryrefslogtreecommitdiffstats
path: root/sys-utils/flock.c
diff options
context:
space:
mode:
authorKarel Zak2016-10-31 13:15:35 +0100
committerKarel Zak2016-10-31 13:15:35 +0100
commit93fea49f2834a634babc8c7f86c01edea123ed7a (patch)
treec893d8b37a639408eb22158eb279ebd93f6b8e76 /sys-utils/flock.c
parentMerge branch 'fixes-for-v2.29' of https://github.com/rudimeier/util-linux (diff)
downloadkernel-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.c15
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;