summaryrefslogtreecommitdiff
path: root/cmds-send.c
diff options
context:
space:
mode:
authorDavid Sterba <dsterba@suse.com>2016-01-11 11:01:47 +0100
committerDavid Sterba <dsterba@suse.com>2016-01-12 15:02:52 +0100
commite67f03887f501f0dc1ab20956aab91dfe9e02422 (patch)
tree0a4093f764c357472c0fa74bbb4837251d27e461 /cmds-send.c
parent7330c881c80a213f1c15c976e593908ca54c1221 (diff)
btrfs-progs: cmd send: switch to common error message wrapper
Message texts were adjusted. Signed-off-by: David Sterba <dsterba@suse.com>
Diffstat (limited to 'cmds-send.c')
-rw-r--r--cmds-send.c117
1 files changed, 44 insertions, 73 deletions
diff --git a/cmds-send.c b/cmds-send.c
index 581b25e5..0dd493aa 100644
--- a/cmds-send.c
+++ b/cmds-send.c
@@ -198,14 +198,12 @@ static int write_buf(int fd, const void *buf, int size)
ret = write(fd, (char*)buf + pos, size - pos);
if (ret < 0) {
ret = -errno;
- fprintf(stderr, "ERROR: failed to dump stream. %s\n",
- strerror(-ret));
+ error("failed to dump stream: %s", strerror(-ret));
goto out;
}
if (!ret) {
ret = -EIO;
- fprintf(stderr, "ERROR: failed to dump stream. %s\n",
- strerror(-ret));
+ error("failed to dump stream: %s", strerror(-ret));
goto out;
}
pos += ret;
@@ -227,8 +225,8 @@ static void *dump_thread(void *arg_)
readed = read(s->send_fd, buf, sizeof(buf));
if (readed < 0) {
ret = -errno;
- fprintf(stderr, "ERROR: failed to read stream from "
- "kernel. %s\n", strerror(-ret));
+ error("failed to read stream from kernel: %s\n",
+ strerror(-ret));
goto out;
}
if (!readed) {
@@ -262,15 +260,14 @@ static int do_send(struct btrfs_send *send, u64 parent_root_id,
subvol_fd = openat(send->mnt_fd, subvol, O_RDONLY | O_NOATIME);
if (subvol_fd < 0) {
ret = -errno;
- fprintf(stderr, "ERROR: open %s failed. %s\n", subvol,
- strerror(-ret));
+ error("cannot open %s: %s", subvol, strerror(-ret));
goto out;
}
ret = pipe(pipefd);
if (ret < 0) {
ret = -errno;
- fprintf(stderr, "ERROR: pipe failed. %s\n", strerror(-ret));
+ error("pipe failed: %s", strerror(-ret));
goto out;
}
@@ -283,8 +280,7 @@ static int do_send(struct btrfs_send *send, u64 parent_root_id,
send);
if (ret) {
ret = -ret;
- fprintf(stderr, "ERROR: thread setup failed: %s\n",
- strerror(-ret));
+ error("thread setup failed: %s", strerror(-ret));
goto out;
}
@@ -299,8 +295,7 @@ static int do_send(struct btrfs_send *send, u64 parent_root_id,
ret = ioctl(subvol_fd, BTRFS_IOC_SEND, &io_send);
if (ret) {
ret = -errno;
- fprintf(stderr, "ERROR: send ioctl failed with %d: %s\n", ret,
- strerror(-ret));
+ error("send ioctl failed with %d: %s", ret, strerror(-ret));
if (ret == -EINVAL && (!is_first_subvol || !is_last_subvol))
fprintf(stderr,
"Try upgrading your kernel or don't use -e.\n");
@@ -318,14 +313,13 @@ static int do_send(struct btrfs_send *send, u64 parent_root_id,
ret = pthread_join(t_read, &t_err);
if (ret) {
ret = -ret;
- fprintf(stderr, "ERROR: pthread_join failed: %s\n",
- strerror(-ret));
+ error("pthread_join failed: %s", strerror(-ret));
goto out;
}
if (t_err) {
ret = (long int)t_err;
- fprintf(stderr, "ERROR: failed to process send stream, ret=%ld "
- "(%s)\n", (long int)t_err, strerror(-ret));
+ error("failed to process send stream, ret=%ld (%s)",
+ (long int)t_err, strerror(-ret));
goto out;
}
@@ -361,16 +355,13 @@ static int init_root_path(struct btrfs_send *s, const char *subvol)
ret = find_mount_root(subvol, &s->root_path);
if (ret < 0) {
- fprintf(stderr,
- "ERROR: failed to determine mount point for %s: %s\n",
+ error("failed to determine mount point for %s: %s",
subvol, strerror(-ret));
ret = -EINVAL;
goto out;
}
if (ret > 0) {
- fprintf(stderr,
- "ERROR: %s doesn't belong to btrfs mount point\n",
- subvol);
+ error("%s doesn't belong to btrfs mount point", subvol);
ret = -EINVAL;
goto out;
}
@@ -378,15 +369,14 @@ static int init_root_path(struct btrfs_send *s, const char *subvol)
s->mnt_fd = open(s->root_path, O_RDONLY | O_NOATIME);
if (s->mnt_fd < 0) {
ret = -errno;
- fprintf(stderr, "ERROR: can't open '%s': %s\n", s->root_path,
- strerror(-ret));
+ error("cannot open '%s': %s", s->root_path, strerror(-ret));
goto out;
}
ret = subvol_uuid_search_init(s->mnt_fd, &s->sus);
if (ret < 0) {
- fprintf(stderr, "ERROR: failed to initialize subvol search. "
- "%s\n", strerror(-ret));
+ error("failed to initialize subvol search: %s",
+ strerror(-ret));
goto out;
}
@@ -404,16 +394,15 @@ static int is_subvol_ro(struct btrfs_send *s, char *subvol)
fd = openat(s->mnt_fd, subvol, O_RDONLY | O_NOATIME);
if (fd < 0) {
ret = -errno;
- fprintf(stderr, "ERROR: failed to open %s. %s\n",
- subvol, strerror(-ret));
+ error("cannot open %s: %s", subvol, strerror(-ret));
goto out;
}
ret = ioctl(fd, BTRFS_IOC_SUBVOL_GETFLAGS, &flags);
if (ret < 0) {
ret = -errno;
- fprintf(stderr, "ERROR: failed to get flags for subvolume. "
- "%s\n", strerror(-ret));
+ error("failed to get flags for subvolume %s: %s",
+ subvol, strerror(-ret));
goto out;
}
@@ -469,8 +458,7 @@ int cmd_send(int argc, char **argv)
subvol = realpath(optarg, NULL);
if (!subvol) {
ret = -errno;
- fprintf(stderr, "ERROR: realpath %s failed. "
- "%s\n", optarg, strerror(-ret));
+ error("realpath %s failed: %s\n", optarg, strerror(-ret));
goto out;
}
@@ -481,8 +469,7 @@ int cmd_send(int argc, char **argv)
ret = get_root_id(&send, get_subvol_name(send.root_path, subvol),
&root_id);
if (ret < 0) {
- fprintf(stderr, "ERROR: could not resolve "
- "root_id for %s\n", subvol);
+ error("cannot resolve rootid for %s", subvol);
goto out;
}
@@ -491,15 +478,13 @@ int cmd_send(int argc, char **argv)
goto out;
if (!ret) {
ret = -EINVAL;
- fprintf(stderr,
- "ERROR: cloned subvol %s is not read-only.\n",
- subvol);
+ error("cloned subvolume %s is not read-only", subvol);
goto out;
}
ret = add_clone_source(&send, root_id);
if (ret < 0) {
- fprintf(stderr, "ERROR: not enough memory\n");
+ error("not enough memory");
goto out;
}
subvol_uuid_search_finit(&send.sus);
@@ -515,24 +500,21 @@ int cmd_send(int argc, char **argv)
break;
case 'f':
if (arg_copy_path(outname, optarg, sizeof(outname))) {
- fprintf(stderr,
- "ERROR: output file path too long (%zu)\n",
- strlen(optarg));
+ error("output file path too long (%zu)", strlen(optarg));
ret = 1;
goto out;
}
break;
case 'p':
if (snapshot_parent) {
- fprintf(stderr, "ERROR: you cannot have more than one parent (-p)\n");
+ error("you cannot have more than one parent (-p)");
ret = 1;
goto out;
}
snapshot_parent = realpath(optarg, NULL);
if (!snapshot_parent) {
ret = -errno;
- fprintf(stderr, "ERROR: realpath %s failed. "
- "%s\n", optarg, strerror(-ret));
+ error("realpath %s failed: %s", optarg, strerror(-ret));
goto out;
}
@@ -541,8 +523,7 @@ int cmd_send(int argc, char **argv)
goto out;
if (!ret) {
ret = -EINVAL;
- fprintf(stderr,
- "ERROR: parent %s is not read-only.\n",
+ error("parent subvolume %s is not read-only",
snapshot_parent);
goto out;
}
@@ -550,8 +531,7 @@ int cmd_send(int argc, char **argv)
full_send = 0;
break;
case 'i':
- fprintf(stderr,
- "ERROR: -i was removed, use -c instead\n");
+ error("option -i was removed, use -c instead");
ret = 1;
goto out;
case GETOPT_VAL_SEND_NO_DATA:
@@ -559,7 +539,7 @@ int cmd_send(int argc, char **argv)
break;
case '?':
default:
- fprintf(stderr, "ERROR: send args invalid.\n");
+ error("send arguments invalid");
ret = 1;
goto out;
}
@@ -572,16 +552,14 @@ int cmd_send(int argc, char **argv)
send.dump_fd = creat(outname, 0600);
if (send.dump_fd == -1) {
ret = -errno;
- fprintf(stderr, "ERROR: can't create '%s': %s\n",
- outname, strerror(-ret));
+ error("cannot create '%s': %s", outname, strerror(-ret));
goto out;
}
}
if (isatty(send.dump_fd)) {
- fprintf(stderr,
- "ERROR: not dumping send stream into a terminal, "
- "redirect it into a file\n");
+ error(
+ "not dumping send stream into a terminal, redirect it into a file");
ret = 1;
goto out;
}
@@ -592,7 +570,7 @@ int cmd_send(int argc, char **argv)
subvol = realpath(argv[optind], NULL);
if (!subvol) {
ret = -errno;
- fprintf(stderr, "ERROR: unable to resolve %s\n", argv[optind]);
+ error("unable to resolve %s", argv[optind]);
goto out;
}
@@ -605,14 +583,13 @@ int cmd_send(int argc, char **argv)
get_subvol_name(send.root_path, snapshot_parent),
&parent_root_id);
if (ret < 0) {
- fprintf(stderr, "ERROR: could not resolve root_id "
- "for %s\n", snapshot_parent);
+ error("could not resolve rootid for %s", snapshot_parent);
goto out;
}
ret = add_clone_source(&send, parent_root_id);
if (ret < 0) {
- fprintf(stderr, "ERROR: not enough memory\n");
+ error("not enough memory");
goto out;
}
}
@@ -622,28 +599,25 @@ int cmd_send(int argc, char **argv)
subvol = realpath(argv[i], NULL);
if (!subvol) {
ret = -errno;
- fprintf(stderr, "ERROR: unable to resolve %s\n", argv[i]);
+ error("unable to resolve %s", argv[i]);
goto out;
}
ret = find_mount_root(subvol, &mount_root);
if (ret < 0) {
- fprintf(stderr, "ERROR: find_mount_root failed on %s: "
- "%s\n", subvol,
+ error("find_mount_root failed on %s: %s", subvol,
strerror(-ret));
goto out;
}
if (ret > 0) {
- fprintf(stderr,
- "ERROR: %s doesn't belong to btrfs mount point\n",
+ error("%s does not belong to btrfs mount point",
subvol);
ret = -EINVAL;
goto out;
}
if (strcmp(send.root_path, mount_root) != 0) {
ret = -EINVAL;
- fprintf(stderr, "ERROR: all subvols must be from the "
- "same fs.\n");
+ error("all subvolumes must be from the same filesystem");
goto out;
}
free(mount_root);
@@ -653,8 +627,7 @@ int cmd_send(int argc, char **argv)
goto out;
if (!ret) {
ret = -EINVAL;
- fprintf(stderr, "ERROR: %s is not read-only.\n",
- subvol);
+ error("subvolum %s is not read-only", subvol);
goto out;
}
}
@@ -674,15 +647,14 @@ int cmd_send(int argc, char **argv)
subvol = realpath(subvol, NULL);
if (!subvol) {
ret = -errno;
- fprintf(stderr, "ERROR: realpath %s failed. "
- "%s\n", argv[i], strerror(-ret));
+ error("realpath %s failed: %s", argv[i], strerror(-ret));
goto out;
}
if (!full_send && !parent_root_id) {
ret = find_good_parent(&send, root_id, &parent_root_id);
if (ret < 0) {
- fprintf(stderr, "ERROR: parent determination failed for %lld\n",
+ error("parent determination failed for %lld",
root_id);
goto out;
}
@@ -693,8 +665,7 @@ int cmd_send(int argc, char **argv)
goto out;
if (!ret) {
ret = -EINVAL;
- fprintf(stderr, "ERROR: %s is not read-only.\n",
- subvol);
+ error("subvolume %s is not read-only", subvol);
goto out;
}
@@ -715,7 +686,7 @@ int cmd_send(int argc, char **argv)
/* done with this subvol, so add it to the clone sources */
ret = add_clone_source(&send, root_id);
if (ret < 0) {
- fprintf(stderr, "ERROR: not enough memory\n");
+ error("not enough memory");
goto out;
}