From aab709b602a142ffd72e0e00a9c575cc047e1fca Mon Sep 17 00:00:00 2001 From: Cyrill Gorcunov Date: Thu, 13 Dec 2018 18:15:49 +0300 Subject: [PATCH] log: Write more details in write_pidfile Signed-off-by: Cyrill Gorcunov Signed-off-by: Pavel Tikhomirov --- criu/log.c | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/criu/log.c b/criu/log.c index c4ce90ec0..e31f24e39 100644 --- a/criu/log.c +++ b/criu/log.c @@ -397,15 +397,28 @@ void print_on_level(unsigned int loglevel, const char *format, ...) int write_pidfile(int pid) { - int fd; + int fd, ret, exit_code = -1; fd = open(opts.pidfile, O_WRONLY | O_EXCL | O_CREAT, 0600); if (fd == -1) { - pr_perror("Can't open %s", opts.pidfile); + pr_perror("pidfile: Can't open %s", opts.pidfile); return -1; } - dprintf(fd, "%d", pid); + ret = dprintf(fd, "%d", pid); + if (ret < 0) { + pr_perror("pidfile: Can't write pid %d to %s", pid, opts.pidfile); + goto close; + } + + if (ret == 0) { + pr_err("pidfile: Can't write pid %d to %s\n", pid, opts.pidfile); + goto close; + } + + pr_debug("pidfile: Wrote pid %d to %s (%d bytes)\n", pid, opts.pidfile, ret); + exit_code = 0; +close: close(fd); - return 0; + return exit_code; }