[CRIU] [PATCH] pr_perror(): print error at the end of line

Pavel Emelyanov xemul at parallels.com
Tue Jan 31 06:43:29 EST 2012


On 01/31/2012 03:13 PM, Kir Kolyshkin wrote:
> This is a standard convention to print error message (i.e. strerror(errno))
> at the end of line, like this:
> 
>         Cannot remove file: Permission denied
> 
> So pr_perror is fixed to follow this convention (using GNU extension
> %m helps a lot here). Unfortunately, due to this we have to make
> pr_perror() print a new line character, too, so we had to strip it
> from the all pr_perror() invocations.
> 
> That (appending a newline) also makes pr_perror() a black sheep
> in the herd of pr_* helpers, but what can we do? Worst case scenario
> is an extra newline after an error message, not too harmful.
> 
> An alternative approach (stripping the newline from the passed format
> string and re-adding it) was discussed thoroughly, and it was decided
> that such a hack looks a bit too dirty.
> 
> Signed-off-by: Kir Kolyshkin <kir at openvz.org>

ack

> ---
>  cr-dump.c          |   46 ++++++++++++++++++------------------
>  cr-restore.c       |   66 ++++++++++++++++++++++++++--------------------------
>  cr-show.c          |    6 ++--
>  crtools.c          |    8 +++---
>  files.c            |   22 ++++++++--------
>  include/util.h     |    7 ++---
>  log.c              |    2 +-
>  namespaces.c       |    8 +++---
>  parasite-syscall.c |    2 +-
>  proc_parse.c       |    8 +++---
>  ptrace.c           |    4 +-
>  sockets.c          |   30 +++++++++++-----------
>  util.c             |    8 +++---
>  uts_ns.c           |    6 ++--
>  14 files changed, 111 insertions(+), 112 deletions(-)
> 
> diff --git a/cr-dump.c b/cr-dump.c
> index dbae3d6..286ff01 100644
> --- a/cr-dump.c
> +++ b/cr-dump.c
> @@ -104,7 +104,7 @@ static int dump_one_reg_file(int type, struct fd_parms *p, int lfd,
>         snprintf(fd_str, sizeof(fd_str), "/proc/self/fd/%d", lfd);
>         len = readlink(fd_str, big_buffer, sizeof(big_buffer) - 1);
>         if (len < 0) {
> -               pr_perror("Can't readlink %s\n", fd_str);
> +               pr_perror("Can't readlink %s", fd_str);
>                 goto err;
>         }
> 
> @@ -151,7 +151,7 @@ static int dump_cwd(int pid_dir, struct cr_fdset *cr_fdset)
> 
>         fd = open_proc(pid_dir, "cwd");
>         if (fd < 0) {
> -               pr_perror("Failed to openat cwd\n");
> +               pr_perror("Failed to openat cwd");
>                 return -1;
>         }
> 
> @@ -172,7 +172,7 @@ static int dump_pipe_and_data(int lfd, struct pipe_entry *e,
> 
>         pr_info("Dumping data from pipe %x\n", e->pipeid);
>         if (pipe(steal_pipe) < 0) {
> -               pr_perror("Can't create pipe for stealing data\n");
> +               pr_perror("Can't create pipe for stealing data");
>                 goto err;
>         }
> 
> @@ -185,7 +185,7 @@ static int dump_pipe_and_data(int lfd, struct pipe_entry *e,
>         has_bytes = tee(lfd, steal_pipe[1], pipe_size, SPLICE_F_NONBLOCK);
>         if (has_bytes < 0) {
>                 if (errno != EAGAIN) {
> -                       pr_perror("Can't pick pipe data\n");
> +                       pr_perror("Can't pick pipe data");
>                         goto err_close;
>                 } else
>                         has_bytes = 0;
> @@ -199,7 +199,7 @@ static int dump_pipe_and_data(int lfd, struct pipe_entry *e,
>                 ret = splice(steal_pipe[0], NULL, fd_pipes,
>                              NULL, has_bytes, 0);
>                 if (ret < 0) {
> -                       pr_perror("Can't push pipe data\n");
> +                       pr_perror("Can't push pipe data");
>                         goto err_close;
>                 }
>         }
> @@ -254,12 +254,12 @@ static int dump_one_fd(pid_t pid, int pid_fd_dir, int lfd,
>                 if (err != 1)
>                         return err;
> 
> -               pr_perror("Failed to open %d/%d\n", pid_fd_dir, p->fd_name);
> +               pr_perror("Failed to open %d/%d", pid_fd_dir, p->fd_name);
>                 return -1;
>         }
> 
>         if (fstat(lfd, &st_buf) < 0) {
> -               pr_perror("Can't get stat on %d\n", p->fd_name);
> +               pr_perror("Can't get stat on %d", p->fd_name);
>                 goto out_close;
>         }
> 
> @@ -283,7 +283,7 @@ static int dump_one_fd(pid_t pid, int pid_fd_dir, int lfd,
> 
>         if (S_ISFIFO(st_buf.st_mode)) {
>                 if (fstatfs(lfd, &stfs_buf) < 0) {
> -                       pr_perror("Can't fstatfs on %d\n", p->fd_name);
> +                       pr_perror("Can't fstatfs on %d", p->fd_name);
>                         return -1;
>                 }
> 
> @@ -306,7 +306,7 @@ static int read_fd_params(pid_t pid, int pid_dir, char *fd, struct fd_parms *p)
> 
>         file = fopen_proc(pid_dir, "fdinfo/%s", fd);
>         if (!file) {
> -               pr_perror("Can't open %d's %s fdinfo\n", pid, fd);
> +               pr_perror("Can't open %d's %s fdinfo", pid, fd);
>                 return -1;
>         }
> 
> @@ -337,13 +337,13 @@ static int dump_task_files(pid_t pid, int pid_dir, struct cr_fdset *cr_fdset)
>         pr_info("----------------------------------------\n");
> 
>         if (dump_cwd(pid_dir, cr_fdset)) {
> -               pr_perror("Can't dump %d's cwd %s\n", pid);
> +               pr_perror("Can't dump %d's cwd %s", pid);
>                 return -1;
>         }
> 
>         fd_dir = opendir_proc(pid_dir, "fd");
>         if (!fd_dir) {
> -               pr_perror("Can't open %d's fd\n", pid);
> +               pr_perror("Can't open %d's fd", pid);
>                 return -1;
>         }
> 
> @@ -487,7 +487,7 @@ static int get_task_sigmask(pid_t pid, int pid_dir, u64 *task_sigset)
>          */
>         file = fopen_proc(pid_dir, "status");
>         if (!file) {
> -               pr_perror("Can't open %d status\n", pid);
> +               pr_perror("Can't open %d status", pid);
>                 goto err;
>         }
> 
> @@ -511,7 +511,7 @@ static int get_task_auxv(pid_t pid, int pid_dir, struct core_entry *core)
>         int ret, i;
> 
>         if (fd < 0) {
> -               pr_perror("Can't open %d's auxv\n", pid);
> +               pr_perror("Can't open %d's auxv", pid);
>                 return -1;
>         }
> 
> @@ -522,7 +522,7 @@ static int get_task_auxv(pid_t pid, int pid_dir, struct core_entry *core)
>                         break;
>                 else if (ret != sizeof(core->tc.mm_saved_auxv[0])) {
>                         ret = -1;
> -                       pr_perror("Error readind %d's auxv[%d]\n",
> +                       pr_perror("Error readind %d's auxv[%d]",
>                                   pid, i);
>                         goto err;
>                 }
> @@ -542,7 +542,7 @@ static int get_task_personality(pid_t pid, int pid_dir, u32 *personality)
> 
>         file = fopen_proc(pid_dir, "personality");
>         if (!file) {
> -               pr_perror("Can't open %d personality\n", pid);
> +               pr_perror("Can't open %d personality", pid);
>                 goto err;
>         }
> 
> @@ -733,7 +733,7 @@ static int parse_threads(pid_t pid, int pid_dir, struct pstree_item *item)
> 
>         dir = opendir_proc(pid_dir, "task");
>         if (!dir) {
> -               pr_perror("Can't open %d/task\n", pid);
> +               pr_perror("Can't open %d/task", pid);
>                 return -1;
>         }
> 
> @@ -773,7 +773,7 @@ static int parse_children(pid_t pid, int pid_dir, struct pstree_item *item)
> 
>                 file = fopen_proc(pid_dir, "task/%d/children", item->threads[i]);
>                 if (!file) {
> -                       pr_perror("Can't open %d children %d\n",
> +                       pr_perror("Can't open %d children %d",
>                                   pid, item->threads[i]);
>                         goto err;
>                 }
> @@ -983,7 +983,7 @@ static int finalize_core(pid_t pid, struct list_head *vma_area_list, struct cr_f
>         list_for_each_entry(vma_area, vma_area_list, list) {
>                 ret = write(fd_core, &vma_area->vma, sizeof(vma_area->vma));
>                 if (ret != sizeof(vma_area->vma)) {
> -                       pr_perror("\nUnable to write vma entry (%li written)\n", num);
> +                       pr_perror("\nUnable to write vma entry (%li written)", num);
>                         goto err;
>                 }
>                 num++;
> @@ -1005,7 +1005,7 @@ static int finalize_core(pid_t pid, struct list_head *vma_area_list, struct cr_f
>                 if (!ret)
>                         break;
>                 if (ret != sizeof(va)) {
> -                       pr_perror("\nUnable to read VA of page (%li written)\n", num);
> +                       pr_perror("\nUnable to read VA of page (%li written)", num);
>                         goto err;
>                 }
> 
> @@ -1039,7 +1039,7 @@ static int finalize_core(pid_t pid, struct list_head *vma_area_list, struct cr_f
>                         ret += sendfile(fd_core, fd_pages, NULL, PAGE_SIZE);
>                         if (ret != sizeof(va) + PAGE_SIZE) {
>                                 pr_perror("\nUnable to write VMA_FILE_PRIVATE|VMA_ANON_PRIVATE "
> -                                         "page (%li, %li written)\n",
> +                                         "page (%li, %li written)",
>                                           num, num_anon);
>                                 goto err;
>                         }
> @@ -1049,7 +1049,7 @@ static int finalize_core(pid_t pid, struct list_head *vma_area_list, struct cr_f
>                         ret += sendfile(fd_pages_shmem, fd_pages, NULL, PAGE_SIZE);
>                         if (ret != sizeof(va) + PAGE_SIZE) {
>                                 pr_perror("\nUnable to write VMA_ANON_SHARED "
> -                                         "page (%li, %li written)\n",
> +                                         "page (%li, %li written)",
>                                           num, num_anon);
>                                 goto err;
>                         }
> @@ -1069,7 +1069,7 @@ err:
>         return ret;
> 
>  err_strno:
> -       pr_perror("Error catched\n");
> +       pr_perror("Error catched");
>         goto err;
>  }
> 
> @@ -1193,7 +1193,7 @@ static int dump_one_task(struct pstree_item *item, struct cr_fdset *cr_fdset)
> 
>         pid_dir = open_pid_proc(pid);
>         if (pid_dir < 0) {
> -               pr_perror("Can't open %d proc dir\n", pid);
> +               pr_perror("Can't open %d proc dir", pid);
>                 goto err;
>         }
> 
> diff --git a/cr-restore.c b/cr-restore.c
> index d2dd5ea..f917562 100644
> --- a/cr-restore.c
> +++ b/cr-restore.c
> @@ -160,7 +160,7 @@ static int shmem_wait_and_open(int pid, struct shmem_info *si)
>         if (ret >= 0)
>                 return ret;
>         else if (ret < 0)
> -               pr_perror("     %d: Can't stat shmem at %s\n",
> +               pr_perror("     %d: Can't stat shmem at %s",
>                           si->pid, path);
>         return ret;
>  }
> @@ -351,14 +351,14 @@ static int shmem_remap(void *old_addr, void *new_addr, unsigned long size)
> 
>         fd = open(path, O_RDWR);
>         if (fd < 0) {
> -               pr_perror("open(%s) failed\n", path);
> +               pr_perror("open(%s) failed", path);
>                 return -1;
>         }
> 
>         ret = mmap(new_addr, size, PROT_READ | PROT_WRITE,
>                    MAP_SHARED | MAP_FIXED, fd, 0);
>         if (ret != new_addr) {
> -               pr_perror("mmap failed\n");
> +               pr_perror("mmap failed");
>                 return -1;
>         }
> 
> @@ -374,7 +374,7 @@ static int prepare_shared(int ps_fd)
> 
>         shmems = mmap(NULL, SHMEMS_SIZE, PROT_READ | PROT_WRITE, MAP_SHARED | MAP_ANON, 0, 0);
>         if (shmems == MAP_FAILED) {
> -               pr_perror("Can't map shmem\n");
> +               pr_perror("Can't map shmem");
>                 return -1;
>         }
> 
> @@ -382,7 +382,7 @@ static int prepare_shared(int ps_fd)
> 
>         task_entries = mmap(NULL, TASK_ENTRIES_SIZE, PROT_READ | PROT_WRITE, MAP_SHARED | MAP_ANON, 0, 0);
>         if (task_entries == MAP_FAILED) {
> -               pr_perror("Can't map shmem\n");
> +               pr_perror("Can't map shmem");
>                 return -1;
>         }
>         task_entries->nr = 0;
> @@ -390,7 +390,7 @@ static int prepare_shared(int ps_fd)
> 
>         pipes = mmap(NULL, 4096, PROT_READ | PROT_WRITE, MAP_SHARED | MAP_ANON, 0, 0);
>         if (pipes == MAP_FAILED) {
> -               pr_perror("Can't map pipes\n");
> +               pr_perror("Can't map pipes");
>                 return -1;
>         }
> 
> @@ -544,7 +544,7 @@ static int try_fixup_shared_map(int pid, struct vma_entry *vi, int fd)
>                 pr_info("%d: Fixing %lx vma to %lx/%d shmem -> %d\n",
>                         pid, vi->start, si->shmid, si->pid, sh_fd);
>                 if (sh_fd < 0) {
> -                       pr_perror("%d: Can't open shmem\n", pid);
> +                       pr_perror("%d: Can't open shmem", pid);
>                         return -1;
>                 }
> 
> @@ -553,7 +553,7 @@ static int try_fixup_shared_map(int pid, struct vma_entry *vi, int fd)
>                 pr_info("%d: Fixed %lx vma %lx/%d shmem -> %d\n",
>                         pid, vi->start, si->shmid, si->pid, sh_fd);
>                 if (write(fd, vi, sizeof(*vi)) != sizeof(*vi)) {
> -                       pr_perror("%d: Can't write img\n", pid);
> +                       pr_perror("%d: Can't write img", pid);
>                         return -1;
>                 }
>         }
> @@ -573,7 +573,7 @@ static int fixup_vma_fds(int pid, int fd)
> 
>                 ret = read(fd, &vi, sizeof(vi));
>                 if (ret < 0) {
> -                       pr_perror("%d: Can't read vma_entry\n", pid);
> +                       pr_perror("%d: Can't read vma_entry", pid);
>                 } else if (ret != sizeof(vi)) {
>                         pr_err("%d: Incomplete vma_entry (%d != %d)\n",
>                                pid, ret, sizeof(vi));
> @@ -653,7 +653,7 @@ static int fixup_pages_data(int pid, int fd)
>                         break;
> 
>                 if (ret < 0 || ret != sizeof(va)) {
> -                       pr_perror("%d: Can't read virtual address\n", pid);
> +                       pr_perror("%d: Can't read virtual address", pid);
>                         return -1;
>                 }
> 
> @@ -702,7 +702,7 @@ static int prepare_and_sigreturn(int pid)
>                 return -1;
> 
>         if (fstat(fd, &buf)) {
> -               pr_perror("%d: Can't stat\n", pid);
> +               pr_perror("%d: Can't stat", pid);
>                 return -1;
>         }
> 
> @@ -711,19 +711,19 @@ static int prepare_and_sigreturn(int pid)
> 
>         fd_new = open(path, O_RDWR | O_CREAT | O_TRUNC, CR_FD_PERM);
>         if (fd_new < 0) {
> -               pr_perror("%d: Can't open new image\n", pid);
> +               pr_perror("%d: Can't open new image", pid);
>                 return -1;
>         }
> 
>         pr_info("%d: Preparing restore image %s (%li bytes)\n", pid, path, buf.st_size);
>         if (sendfile(fd_new, fd, NULL, buf.st_size) != buf.st_size) {
> -               pr_perror("%d: sendfile failed\n", pid);
> +               pr_perror("%d: sendfile failed", pid);
>                 return -1;
>         }
>         close(fd);
> 
>         if (fstat(fd_new, &buf)) {
> -               pr_perror("%d: Can't stat\n", pid);
> +               pr_perror("%d: Can't stat", pid);
>                 return -1;
>         }
> 
> @@ -780,7 +780,7 @@ static int restore_pipe_data(struct pipe_entry *e, int wfd, int pipes_fd)
>         while (size != e->bytes) {
>                 ret = splice(pipes_fd, NULL, wfd, NULL, e->bytes, 0);
>                 if (ret < 0) {
> -                       pr_perror("\t%x: Error splicing data\n", e->pipeid);
> +                       pr_perror("\t%x: Error splicing data", e->pipeid);
>                         return -1;
>                 }
>                 if (ret == 0) {
> @@ -803,7 +803,7 @@ static int create_pipe(int pid, struct pipe_entry *e, struct pipe_info *pi, int
>         pr_info("\t%d: Creating pipe %x%s\n", pid, e->pipeid, pipe_is_rw(pi) ? "(rw)" : "");
> 
>         if (pipe(pfd) < 0) {
> -               pr_perror("%d: Can't create pipe\n", pid);
> +               pr_perror("%d: Can't create pipe", pid);
>                 return -1;
>         }
> 
> @@ -883,7 +883,7 @@ static int attach_pipe(int pid, struct pipe_entry *e, struct pipe_info *pi, int
>                         tmp = dup2(tmp, e->fd);
> 
>                 if (tmp < 0) {
> -                       pr_perror("%d: Can't duplicate %d->%d\n",
> +                       pr_perror("%d: Can't duplicate %d->%d",
>                                         pid, tmp, e->fd);
>                         return -1;
>                 }
> @@ -897,7 +897,7 @@ static int attach_pipe(int pid, struct pipe_entry *e, struct pipe_info *pi, int
> 
>         fd = open(path, e->flags);
>         if (fd < 0) {
> -               pr_perror("%d: Can't attach pipe\n", pid);
> +               pr_perror("%d: Can't attach pipe", pid);
>                 return -1;
>         }
> 
> @@ -1151,7 +1151,7 @@ static int restore_one_zobie(int pid, int exit_code)
>                 }
> 
>                 if (kill(pid, signr) < 0)
> -                       pr_perror("Can't kill myself, will just exit\n");
> +                       pr_perror("Can't kill myself, will just exit");
> 
>                 exit_code = 0;
>         }
> @@ -1231,7 +1231,7 @@ static inline int fork_with_pid(int pid, unsigned long ns_clone_flags)
>         stack = mmap(NULL, STACK_SIZE, PROT_WRITE | PROT_READ,
>                         MAP_PRIVATE | MAP_GROWSDOWN | MAP_ANONYMOUS, -1, 0);
>         if (stack == MAP_FAILED) {
> -               pr_perror("Failed to map stack for kid\n");
> +               pr_perror("Failed to map stack for kid");
>                 goto err;
>         }
> 
> @@ -1240,12 +1240,12 @@ static inline int fork_with_pid(int pid, unsigned long ns_clone_flags)
>         ca.clone_flags = ns_clone_flags;
>         ca.fd = open(LAST_PID_PATH, O_RDWR);
>         if (ca.fd < 0) {
> -               pr_perror("%d: Can't open %s\n", pid, LAST_PID_PATH);
> +               pr_perror("%d: Can't open %s", pid, LAST_PID_PATH);
>                 goto err;
>         }
> 
>         if (flock(ca.fd, LOCK_EX)) {
> -               pr_perror("%d: Can't lock %s\n", pid, LAST_PID_PATH);
> +               pr_perror("%d: Can't lock %s", pid, LAST_PID_PATH);
>                 goto err;
>         }
> 
> @@ -1256,11 +1256,11 @@ static inline int fork_with_pid(int pid, unsigned long ns_clone_flags)
>                         ns_clone_flags | SIGCHLD, &ca);
> 
>         if (ret < 0)
> -               pr_perror("Can't fork for %d\n", pid);
> +               pr_perror("Can't fork for %d", pid);
> 
>  err_unlock:
>         if (flock(ca.fd, LOCK_UN))
> -               pr_perror("%d: Can't unlock %s\n", pid, LAST_PID_PATH);
> +               pr_perror("%d: Can't unlock %s", pid, LAST_PID_PATH);
> 
>  err:
>         if (stack != MAP_FAILED)
> @@ -1316,7 +1316,7 @@ static int restore_task_with_children(void *_arg)
>         sigdelset(&blockmask, SIGCHLD);
>         ret = sigprocmask(SIG_BLOCK, &blockmask, NULL);
>         if (ret) {
> -               pr_perror("%d: Can't block signals\n", pid);
> +               pr_perror("%d: Can't block signals", pid);
>                 exit(1);
>         }
> 
> @@ -1324,7 +1324,7 @@ static int restore_task_with_children(void *_arg)
> 
>         fd = open_image_ro_nocheck(FMT_FNAME_PSTREE, pstree_pid);
>         if (fd < 0) {
> -               pr_perror("%d: Can't reopen pstree image\n", pid);
> +               pr_perror("%d: Can't reopen pstree image", pid);
>                 exit(1);
>         }
> 
> @@ -1348,7 +1348,7 @@ static int restore_task_with_children(void *_arg)
> 
>                 ret = read(fd, pids, i);
>                 if (ret != i) {
> -                       pr_perror("%d: Can't read children pids\n", pid);
> +                       pr_perror("%d: Can't read children pids", pid);
>                         exit(1);
>                 }
> 
> @@ -1375,7 +1375,7 @@ static int restore_root_task(int fd, struct cr_options *opts)
> 
>         ret = read(fd, &e, sizeof(e));
>         if (ret != sizeof(e)) {
> -               pr_perror("Can't read root pstree entry\n");
> +               pr_perror("Can't read root pstree entry");
>                 return -1;
>         }
> 
> @@ -1489,7 +1489,7 @@ static long restorer_get_vma_hint(pid_t pid, struct list_head *self_vma_list, lo
>         while (1) {
>                 ret = read(fd, &vma, sizeof(vma));
>                 if (ret && ret != sizeof(vma)) {
> -                       pr_perror("Can't read vma entry from core-%d\n", pid);
> +                       pr_perror("Can't read vma entry from core-%d", pid);
>                         goto err_or_found;
>                 }
> 
> @@ -1662,7 +1662,7 @@ static void sigreturn_restore(pid_t pstree_pid, pid_t pid)
> 
>         fd_core = open_image_ro_nocheck(FMT_FNAME_CORE_OUT, pid);
>         if (fd_core < 0)
> -               pr_perror("Can't open core-out-%d\n", pid);
> +               pr_perror("Can't open core-out-%d", pid);
> 
>         if (get_image_path(self_vmas_path, sizeof(self_vmas_path),
>                            FMT_FNAME_VMAS, pid))
> @@ -1678,7 +1678,7 @@ static void sigreturn_restore(pid_t pstree_pid, pid_t pid)
>         // unlink(self_vmas_path);
> 
>         if (fd_self_vmas < 0) {
> -               pr_perror("Can't open %s\n", self_vmas_path);
> +               pr_perror("Can't open %s", self_vmas_path);
>                 goto err;
>         }
> 
> @@ -1686,7 +1686,7 @@ static void sigreturn_restore(pid_t pstree_pid, pid_t pid)
>         list_for_each_entry(vma_area, &self_vma_list, list) {
>                 ret = write(fd_self_vmas, &vma_area->vma, sizeof(vma_area->vma));
>                 if (ret != sizeof(vma_area->vma)) {
> -                       pr_perror("\nUnable to write vma entry (%li written)\n", num);
> +                       pr_perror("\nUnable to write vma entry (%li written)", num);
>                         goto err;
>                 }
>                 num++;
> @@ -1706,7 +1706,7 @@ static void sigreturn_restore(pid_t pstree_pid, pid_t pid)
>         while (1) {
>                 ret = read_img_eof(fd_pstree, &pstree_entry);
>                 if (ret <= 0) {
> -                       pr_perror("Pid %d not found in process tree\n", pid);
> +                       pr_perror("Pid %d not found in process tree", pid);
>                         goto err;
>                 }
> 
> diff --git a/cr-show.c b/cr-show.c
> index c164461..5cc43f7 100644
> --- a/cr-show.c
> +++ b/cr-show.c
> @@ -90,7 +90,7 @@ static void show_files(int fd_files)
>                 if (e.len) {
>                         int ret = read(fd_files, local_buf, e.len);
>                         if (ret != e.len) {
> -                               pr_perror("Can't read %d bytes\n", e.len);
> +                               pr_perror("Can't read %d bytes", e.len);
>                                 goto out;
>                         }
>                         local_buf[e.len] = 0;
> @@ -429,7 +429,7 @@ static void show_core(int fd_core, bool show_content)
>         bool is_thread;
> 
>         if (fstat(fd_core, &stat)) {
> -               pr_perror("Can't get stat on core file\n");
> +               pr_perror("Can't get stat on core file");
>                 goto out;
>         }
> 
> @@ -469,7 +469,7 @@ static int cr_parse_file(struct cr_options *opts)
> 
>         fd = open(opts->show_dump_file, O_RDONLY);
>         if (fd < 0) {
> -               pr_perror("Can't open %s\n", opts->show_dump_file);
> +               pr_perror("Can't open %s", opts->show_dump_file);
>                 goto err;
>         }
> 
> diff --git a/crtools.c b/crtools.c
> index 926d26b..560c609 100644
> --- a/crtools.c
> +++ b/crtools.c
> @@ -148,13 +148,13 @@ struct cr_fdset *cr_fdset_open(int pid, unsigned long use_mask, struct cr_fdset
> 
>                 ret = unlink(path);
>                 if (ret && errno != ENOENT) {
> -                       pr_perror("Unable to unlink %s\n", path);
> +                       pr_perror("Unable to unlink %s", path);
>                         goto err;
>                 }
> 
>                 ret = open(path, O_RDWR | O_CREAT | O_EXCL, CR_FD_PERM);
>                 if (ret < 0) {
> -                       pr_perror("Unable to open %s\n", path);
> +                       pr_perror("Unable to open %s", path);
>                         goto err;
>                 }
> 
> @@ -191,7 +191,7 @@ struct cr_fdset *prep_cr_fdset_for_restore(int pid, unsigned long use_mask)
> 
>                 ret = open(path, O_RDWR, CR_FD_PERM);
>                 if (ret < 0) {
> -                       pr_perror("Unable to open %s\n", path);
> +                       pr_perror("Unable to open %s", path);
>                         goto err;
>                 }
> 
> @@ -303,7 +303,7 @@ int main(int argc, char *argv[])
>         }
> 
>         if (!getcwd(image_dir, sizeof(image_dir))) {
> -               pr_perror("can't get currect directory\n");
> +               pr_perror("can't get currect directory");
>                 return -1;
>         }
> 
> diff --git a/files.c b/files.c
> index 483b7cc..626ab79 100644
> --- a/files.c
> +++ b/files.c
> @@ -90,13 +90,13 @@ int prepare_fdinfo_global()
>  {
>         fdinfo_descs = mmap(NULL, 4096, PROT_READ | PROT_WRITE, MAP_SHARED | MAP_ANON, 0, 0);
>         if (fdinfo_descs == MAP_FAILED) {
> -               pr_perror("Can't map fdinfo_descs\n");
> +               pr_perror("Can't map fdinfo_descs");
>                 return -1;
>         }
> 
>         fdinfo_list = mmap(NULL, 4096, PROT_READ | PROT_WRITE, MAP_SHARED | MAP_ANON, 0, 0);
>         if (fdinfo_list == MAP_FAILED) {
> -               pr_perror("Can't map fdinfo_list\n");
> +               pr_perror("Can't map fdinfo_list");
>                 return -1;
>         }
>         return 0;
> @@ -177,7 +177,7 @@ int prepare_fd_pid(int pid)
>                 if (ret == 0)
>                         break;
>                 if (ret != sizeof(e)) {
> -                       pr_perror("%d: Read fdinfo failed %d (expected %li)\n",
> +                       pr_perror("%d: Read fdinfo failed %d (expected %li)",
>                                   pid, ret, sizeof(e));
>                         return -1;
>                 }
> @@ -205,7 +205,7 @@ static int open_fe_fd(struct fdinfo_entry *fe, int fd)
> 
>         tmp = open(path, fe->flags);
>         if (tmp < 0) {
> -               pr_perror("Can't open file %s\n", path);
> +               pr_perror("Can't open file %s", path);
>                 return -1;
>         }
> 
> @@ -225,7 +225,7 @@ static int restore_cwd(struct fdinfo_entry *fe, int fd)
>         pr_info("Restore CWD %s\n", path);
>         ret = chdir(path);
>         if (ret < 0) {
> -               pr_perror("Can't change dir %s\n", path);
> +               pr_perror("Can't change dir %s", path);
>                 return -1;
>         }
> 
> @@ -279,7 +279,7 @@ static int open_transport_fd(int pid, struct fdinfo_entry *fe,
>         }
>         ret = bind(sock, &saddr, sun_len);
>         if (ret < 0) {
> -               pr_perror("Can't bind unix socket %s\n", saddr.sun_path + 1);
> +               pr_perror("Can't bind unix socket %s", saddr.sun_path + 1);
>                 return -1;
>         }
> 
> @@ -406,7 +406,7 @@ static int recv_fd(int sock)
> 
>         cmsg = CMSG_FIRSTHDR(&msg);
>         if (!cmsg->cmsg_type == SCM_RIGHTS) {
> -               pr_perror("got control message of unknown type %d\n",
> +               pr_perror("got control message of unknown type %d",
>                                                           cmsg->cmsg_type);
>                 return -1;
>         }
> @@ -422,7 +422,7 @@ static int receive_fd(int pid, struct fdinfo_entry *fe, struct fdinfo_desc *fi)
>                 if (fi->addr != fe->addr) {
>                         tmp = dup2(fi->addr, fe->addr);
>                         if (tmp < 0) {
> -                               pr_perror("Can't duplicate fd %d %d\n",
> +                               pr_perror("Can't duplicate fd %d %d",
>                                                 fi->addr, fe->addr);
>                                 return -1;
>                         }
> @@ -533,7 +533,7 @@ int prepare_fds(int pid)
> 
>         fdinfo_fd = open_image_ro(CR_FD_FDINFO, pid);
>         if (fdinfo_fd < 0) {
> -               pr_perror("%d: Can't open pipes img\n", pid);
> +               pr_perror("%d: Can't open pipes img", pid);
>                 return -1;
>         }
> 
> @@ -548,7 +548,7 @@ int prepare_fds(int pid)
>                                 break;
> 
>                         if (ret != sizeof(fe)) {
> -                               pr_perror("%d: Bad fdinfo entry\n", pid);
> +                               pr_perror("%d: Bad fdinfo entry", pid);
>                                 goto err;
>                         }
> 
> @@ -613,6 +613,6 @@ int try_fixup_file_map(int pid, struct vma_entry *vma_entry, int fd)
> 
>         return 0;
>  err:
> -       pr_perror("%d: Can't fixup vma\n", pid);
> +       pr_perror("%d: Can't fixup vma", pid);
>         return -1;
>  }
> diff --git a/include/util.h b/include/util.h
> index efe1b03..b44165e 100644
> --- a/include/util.h
> +++ b/include/util.h
> @@ -83,8 +83,7 @@ extern void printk(const char *format, ...);
> 
>  #define pr_perror(fmt, ...)                                    \
>         do {                                                    \
> -               pr_err("%s: " fmt,  strerror(errno),            \
> -                       ##__VA_ARGS__);                         \
> +               pr_err(fmt ": %m\n", ##__VA_ARGS__);            \
>         } while (0)
> 
>  #ifndef BUG_ON_HANDLER
> @@ -131,7 +130,7 @@ static inline int write_img_buf(int fd, void *ptr, int size)
>                 return 0;
> 
>         if (ret < 0)
> -               pr_perror("Can't write img file\n");
> +               pr_perror("Can't write img file");
>         else
>                 pr_err("Img trimmed %d/%d\n", ret, size);
>         return -1;
> @@ -156,7 +155,7 @@ static inline int read_img_buf_eof(int fd, void *ptr, int size)
>                 return 0;
> 
>         if (ret < 0)
> -               pr_perror("Can't read img file\n");
> +               pr_perror("Can't read img file");
>         else
>                 pr_err("Img trimmed %d/%d\n", ret, size);
>         return -1;
> diff --git a/log.c b/log.c
> index a080cb0..8d1929a 100644
> --- a/log.c
> +++ b/log.c
> @@ -40,7 +40,7 @@ int init_log(const char *name)
>         if (name) {
>                 fd = open(name, O_CREAT | O_WRONLY);
>                 if (fd == -1) {
> -                       pr_perror("Can't create log file %s\n", name);
> +                       pr_perror("Can't create log file %s", name);
>                         return -1;
>                 }
>         }
> diff --git a/namespaces.c b/namespaces.c
> index 7aa6f6c..43e7dc3 100644
> --- a/namespaces.c
> +++ b/namespaces.c
> @@ -13,13 +13,13 @@ int switch_ns(int pid, int type, char *ns)
>         snprintf(buf, sizeof(buf), "/proc/%d/ns/%s", pid, ns);
>         nsfd = open(buf, O_RDONLY);
>         if (nsfd < 0) {
> -               pr_perror("Can't open ipcns file\n");
> +               pr_perror("Can't open ipcns file");
>                 goto out;
>         }
> 
>         ret = setns(nsfd, type);
>         if (ret < 0)
> -               pr_perror("Can't setns %d/%s\n", pid, ns);
> +               pr_perror("Can't setns %d/%s", pid, ns);
> 
>         close(nsfd);
>  out:
> @@ -61,7 +61,7 @@ int dump_namespaces(int ns_pid)
> 
>         pid = fork();
>         if (pid < 0) {
> -               pr_perror("Can't fork ns dumper\n");
> +               pr_perror("Can't fork ns dumper");
>                 return -1;
>         }
> 
> @@ -72,7 +72,7 @@ int dump_namespaces(int ns_pid)
> 
>         ret = waitpid(pid, &status, 0);
>         if (ret != pid) {
> -               pr_perror("Can't wait ns dumper\n");
> +               pr_perror("Can't wait ns dumper");
>                 return -1;
>         }
> 
> diff --git a/parasite-syscall.c b/parasite-syscall.c
> index 480e07e..6a3f797 100644
> --- a/parasite-syscall.c
> +++ b/parasite-syscall.c
> @@ -349,7 +349,7 @@ static int parasite_prep_file(int type, struct parasite_dump_file_args *fa,
>                 return -1;
> 
>         if (fchmod(fdset->fds[type], CR_FD_PERM_DUMP)) {
> -               pr_perror("Can't change permissions on %d file\n", type);
> +               pr_perror("Can't change permissions on %d file", type);
>                 return -1;
>         }
> 
> diff --git a/proc_parse.c b/proc_parse.c
> index ebe1c90..85c4493 100644
> --- a/proc_parse.c
> +++ b/proc_parse.c
> @@ -30,7 +30,7 @@ int parse_maps(pid_t pid, int pid_dir, struct list_head *vma_area_list, bool use
> 
>         maps = fopen_proc(pid_dir, "maps");
>         if (!maps) {
> -               pr_perror("Can't open %d's maps\n", pid);
> +               pr_perror("Can't open %d's maps", pid);
>                 goto err;
>         }
> 
> @@ -72,7 +72,7 @@ int parse_maps(pid_t pid, int pid_dir, struct list_head *vma_area_list, bool use
>                         vma_area->vm_file_fd = openat(dirfd(map_files_dir), path, O_RDONLY);
>                         if (vma_area->vm_file_fd < 0) {
>                                 if (errno != ENOENT) {
> -                                       pr_perror("Failed opening %d's map %Lu\n", pid, start);
> +                                       pr_perror("Failed opening %d's map %Lu", pid, start);
>                                         goto err;
>                                 }
>                         }
> @@ -115,7 +115,7 @@ int parse_maps(pid_t pid, int pid_dir, struct list_head *vma_area_list, bool use
>                 if (vma_area->vm_file_fd >= 0) {
> 
>                         if (fstat(vma_area->vm_file_fd, &st_buf) < 0) {
> -                               pr_perror("Failed fstat on %d's map %Lu\n", pid, start);
> +                               pr_perror("Failed fstat on %d's map %Lu", pid, start);
>                                 goto err;
>                         }
>                         if (!S_ISREG(st_buf.st_mode)) {
> @@ -296,7 +296,7 @@ int parse_pid_status(int pid_dir, struct proc_status_creds *cr)
> 
>         f = fopen_proc(pid_dir, "status");
>         if (f == NULL) {
> -               pr_perror("Can't open proc status\n");
> +               pr_perror("Can't open proc status");
>                 return -1;
>         }
> 
> diff --git a/ptrace.c b/ptrace.c
> index b106ec2..1b3d583 100644
> --- a/ptrace.c
> +++ b/ptrace.c
> @@ -39,13 +39,13 @@ int seize_task(pid_t pid)
>         ret = ptrace(PTRACE_SEIZE, pid, NULL,
>                        (void *)(unsigned long)PTRACE_SEIZE_DEVEL);
>         if (ret < 0) {
> -               pr_perror("Can't seize task\n");
> +               pr_perror("Can't seize task");
>                 goto err;
>         }
> 
>         ret = ptrace(PTRACE_INTERRUPT, pid, NULL, NULL);
>         if (ret < 0) {
> -               pr_perror("Can't interrupt task\n");
> +               pr_perror("Can't interrupt task");
>                 goto err;
>         }
> 
> diff --git a/sockets.c b/sockets.c
> index bd5e769..fd306ec 100644
> --- a/sockets.c
> +++ b/sockets.c
> @@ -453,7 +453,7 @@ static int unix_collect_one(struct unix_diag_msg *m, struct rtattr **tb)
> 
>                         uv = RTA_DATA(tb[UNIX_DIAG_VFS]);
>                         if (stat(name, &st)) {
> -                               pr_perror("Can't stat socket %d(%s)\n",
> +                               pr_perror("Can't stat socket %d(%s)",
>                                                 m->udiag_ino, name);
>                                 goto err;
>                         }
> @@ -560,7 +560,7 @@ static int collect_sockets_nl(int nl, void *req, int size,
>         iov.iov_len     = size;
> 
>         if (sendmsg(nl, &msg, 0) < 0) {
> -               pr_perror("Can't send request message\n");
> +               pr_perror("Can't send request message");
>                 goto err;
>         }
> 
> @@ -581,7 +581,7 @@ static int collect_sockets_nl(int nl, void *req, int size,
>                         if (errno == EINTR)
>                                 continue;
>                         else {
> -                               pr_perror("Error receiving nl report\n");
> +                               pr_perror("Error receiving nl report");
>                                 goto err;
>                         }
>                 }
> @@ -682,7 +682,7 @@ try_again:
>                                 attempts--;
>                                 goto try_again; /* FIXME - use avagin@'s waiters */
>                         }
> -                       pr_perror("Can't restore connection (c)\n");
> +                       pr_perror("Can't restore connection (c)");
>                         return -1;
>                 }
> 
> @@ -727,7 +727,7 @@ static int run_accept_jobs(void)
>                 unix_show_job("Run acc", aj->fd, -1);
>                 fd = accept(aj->fd, NULL, NULL);
>                 if (fd < 0) {
> -                       pr_perror("Can't restore connection (s)\n");
> +                       pr_perror("Can't restore connection (s)");
>                         return -1;
>                 }
> 
> @@ -784,7 +784,7 @@ static int run_connect_jobs_dgram(void)
>                 }
> 
>                 if (connect(d->fd, (struct sockaddr *)&b->addr, sizeof(b->addr)) < 0) {
> -                       pr_perror("Can't connect peer %d on fd %d\n",
> +                       pr_perror("Can't connect peer %d on fd %d",
>                                   d->peer, d->fd);
>                         goto err;
>                 }
> @@ -840,7 +840,7 @@ static int open_unix_sk_dgram(int sk, struct unix_sk_entry *ue, int img_fd)
>                         unlink(addr.sun_path);
>                 if (bind(sk, (struct sockaddr *)&addr,
>                          sizeof(addr.sun_family) + ue->namelen) < 0) {
> -                       pr_perror("Can't bind socket\n");
> +                       pr_perror("Can't bind socket");
>                         goto err;
>                 }
> 
> @@ -914,12 +914,12 @@ static int open_unix_sk_stream(int sk, struct unix_sk_entry *ue, int img_fd)
>                         unlink(addr.sun_path);
>                 if (bind(sk, (struct sockaddr *)&addr,
>                          sizeof(addr.sun_family) + ue->namelen) < 0) {
> -                       pr_perror("Can't bind socket\n");
> +                       pr_perror("Can't bind socket");
>                         goto err;
>                 }
> 
>                 if (listen(sk, ue->backlog) < 0) {
> -                       pr_perror("Can't listen socket\n");
> +                       pr_perror("Can't listen socket");
>                         goto err;
>                 }
> 
> @@ -962,12 +962,12 @@ static int open_unix_sk_stream(int sk, struct unix_sk_entry *ue, int img_fd)
> 
>                         prep_conn_addr(ue->id, &addr, &len);
>                         if (bind(sk, (struct sockaddr *)&addr, len) < 0) {
> -                               pr_perror("Can't bind socket\n");
> +                               pr_perror("Can't bind socket");
>                                 goto err;
>                         }
> 
>                         if (listen(sk, 1) < 0) {
> -                               pr_perror("Can't listen socket\n");
> +                               pr_perror("Can't listen socket");
>                                 goto err;
>                         }
> 
> @@ -1034,7 +1034,7 @@ static int open_unix_sk(struct unix_sk_entry *ue, int *img_fd)
> 
>         sk = socket(PF_UNIX, ue->type, 0);
>         if (sk < 0) {
> -               pr_perror("Can't create unix socket\n");
> +               pr_perror("Can't create unix socket");
>                 return -1;
>         }
> 
> @@ -1113,7 +1113,7 @@ static int open_inet_sk(struct inet_sk_entry *ie, int *img_fd)
> 
>         sk = socket(ie->family, ie->type, ie->proto);
>         if (sk < 0) {
> -               pr_perror("Can't create unix socket\n");
> +               pr_perror("Can't create unix socket");
>                 return -1;
>         }
> 
> @@ -1127,12 +1127,12 @@ static int open_inet_sk(struct inet_sk_entry *ie, int *img_fd)
>         memcpy(&addr.sin_addr.s_addr, ie->src_addr, sizeof(unsigned int) * 4);
> 
>         if (bind(sk, (struct sockaddr *) &addr, sizeof(addr)) == -1) {
> -               pr_perror("Inet socket bind failed\n");
> +               pr_perror("Inet socket bind failed");
>                 goto err;
>         }
> 
>         if (listen(sk, ie->backlog) == -1) {
> -               pr_perror("listen() failed on %d\n", sk);
> +               pr_perror("listen() failed on %d", sk);
>                 goto err;
>         }
> 
> diff --git a/util.c b/util.c
> index de22151..5ee6e50 100644
> --- a/util.c
> +++ b/util.c
> @@ -100,7 +100,7 @@ int close_safe(int *fd)
>                 if (!ret)
>                         *fd = -1;
>                 else
> -                       pr_perror("Unable to close fd: %d\n", *fd);
> +                       pr_perror("Unable to close fd: %d", *fd);
>         }
> 
>         return ret;
> @@ -128,7 +128,7 @@ int reopen_fd_as_safe(int new_fd, int old_fd, bool allow_reuse_fd)
> 
>                 tmp = dup2(old_fd, new_fd);
>                 if (tmp < 0) {
> -                       pr_perror("Dup %d -> %d failed\n", old_fd, new_fd);
> +                       pr_perror("Dup %d -> %d failed", old_fd, new_fd);
>                         return tmp;
>                 }
> 
> @@ -146,7 +146,7 @@ int move_img_fd(int *img_fd, int want_fd)
> 
>                 tmp = dup(*img_fd);
>                 if (tmp < 0) {
> -                       pr_perror("Can't dup file\n");
> +                       pr_perror("Can't dup file");
>                         return -1;
>                 }
> 
> @@ -213,7 +213,7 @@ int open_pid_proc(pid_t pid)
>         sprintf(path, "/proc/%d", pid);
>         fd = open(path, O_RDONLY);
>         if (fd < 0)
> -               pr_perror("Can't open %s\n", path);
> +               pr_perror("Can't open %s", path);
>         return fd;
>  }
> 
> diff --git a/uts_ns.c b/uts_ns.c
> index bb4fcb4..6226f9e 100644
> --- a/uts_ns.c
> +++ b/uts_ns.c
> @@ -30,7 +30,7 @@ int dump_uts_ns(int ns_pid, struct cr_fdset *fdset)
> 
>         ret = uname(&ubuf);
>         if (ret < 0) {
> -               pr_perror("Error calling uname\n");
> +               pr_perror("Error calling uname");
>                 return ret;
>         }
> 
> @@ -66,7 +66,7 @@ static int prepare_uts_str(int fd, char *n)
>                                 "/proc/sys/kernel/%s", n);
>                 fd = open(path, O_WRONLY);
>                 if (fd < 0) {
> -                       pr_perror("Can't open %s\n", path);
> +                       pr_perror("Can't open %s", path);
>                         return -1;
>                 }
> 
> @@ -75,7 +75,7 @@ static int prepare_uts_str(int fd, char *n)
>                 ret = write(fd, str, len);
>                 close(fd);
>                 if (ret != len) {
> -                       pr_perror("Can't write %s to %s\n",
> +                       pr_perror("Can't write %s to %s",
>                                         str, path);
>                         return -1;
>                 }
> --
> 1.7.4.4
> 
> _______________________________________________
> CRIU mailing list
> CRIU at openvz.org
> https://openvz.org/mailman/listinfo/criu
> .
> 



More information about the CRIU mailing list