[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