btrfs-progs: restore: convert to error message helpers

- convert to error() helpers, remove trailing \n
- switch messages printing %d as errno to %m
- rewording

Signed-off-by: David Sterba <dsterba@suse.com>
This commit is contained in:
David Sterba 2021-06-11 23:24:30 +02:00
parent b1f374dd1d
commit afe055f438
1 changed files with 42 additions and 55 deletions

View File

@ -310,8 +310,8 @@ static int copy_one_inline(struct btrfs_root *root, int fd,
if (compress == BTRFS_COMPRESS_NONE) {
done = pwrite(fd, buf, len, pos);
if (done < len) {
fprintf(stderr, "Short inline write, wanted %d, did "
"%zd: %d\n", len, done, errno);
error("short inline write, wanted %d, did %zd: %m",
len, done);
return -1;
}
return 0;
@ -334,8 +334,8 @@ static int copy_one_inline(struct btrfs_root *root, int fd,
done = pwrite(fd, outbuf, ram_size, pos);
free(outbuf);
if (done < ram_size) {
fprintf(stderr, "Short compressed inline write, wanted %llu, "
"did %zd: %d\n", ram_size, done, errno);
error("short compressed inline write, wanted %llu, did %zd: %m",
ram_size, done);
return -1;
}
@ -731,7 +731,7 @@ static int copy_file(struct btrfs_root *root, int fd, struct btrfs_key *key,
do {
ret = next_leaf(root, &path);
if (ret < 0) {
fprintf(stderr, "Error searching %d\n", ret);
error("search to next leaf failed: %d", ret);
goto out;
} else if (ret) {
/* No more leaves to search */
@ -853,8 +853,7 @@ static int copy_symlink(struct btrfs_root *root, struct btrfs_key *key,
if (ret == 2) {
ret = unlink(path_name);
if (ret) {
fprintf(stderr, "failed to unlink '%s' for overwrite\n",
path_name);
error("failed to unlink '%s' for overwrite: %m", path_name);
return ret;
}
}
@ -868,7 +867,7 @@ static int copy_symlink(struct btrfs_root *root, struct btrfs_key *key,
leaf = path.nodes[0];
if (!leaf) {
fprintf(stderr, "Error getting leaf for symlink '%s'\n", file);
error("failed to get leaf for symlink '%s'", file);
ret = -1;
goto out;
}
@ -879,7 +878,7 @@ static int copy_symlink(struct btrfs_root *root, struct btrfs_key *key,
len = btrfs_file_extent_inline_item_len(leaf,
btrfs_item_nr(path.slots[0]));
if (len >= PATH_MAX) {
fprintf(stderr, "Symlink '%s' target length %d is longer than PATH_MAX\n",
error("symlink '%s' target length %d is longer than PATH_MAX",
fs_name, len);
ret = -1;
goto out;
@ -894,8 +893,7 @@ static int copy_symlink(struct btrfs_root *root, struct btrfs_key *key,
if (!dry_run) {
ret = symlink(symlink_target, path_name);
if (ret < 0) {
fprintf(stderr, "Failed to restore symlink '%s': %m\n",
path_name);
error("failed to restore symlink '%s': %m", path_name);
goto out;
}
}
@ -918,7 +916,7 @@ static int copy_symlink(struct btrfs_root *root, struct btrfs_key *key,
ret = btrfs_lookup_inode(NULL, root, &path, key, 0);
if (ret) {
fprintf(stderr, "Failed to lookup inode for '%s'\n", file);
error("failed to lookup inode for '%s'", file);
goto out;
}
@ -929,7 +927,7 @@ static int copy_symlink(struct btrfs_root *root, struct btrfs_key *key,
btrfs_inode_gid(path.nodes[0], inode_item),
AT_SYMLINK_NOFOLLOW);
if (ret) {
fprintf(stderr, "Failed to change owner: %m\n");
error("failed to change owner of '%s': %m", file);
goto out;
}
@ -943,7 +941,7 @@ static int copy_symlink(struct btrfs_root *root, struct btrfs_key *key,
ret = utimensat(AT_FDCWD, file, times, AT_SYMLINK_NOFOLLOW);
if (ret)
fprintf(stderr, "Failed to set times: %m\n");
error("failed to set times for '%s': %m", file);
out:
btrfs_release_path(&path);
return ret;
@ -970,7 +968,7 @@ static int search_dir(struct btrfs_root *root, struct btrfs_key *key,
key->type = BTRFS_DIR_INDEX_KEY;
ret = btrfs_search_slot(NULL, root, key, &path, 0, 0);
if (ret < 0) {
fprintf(stderr, "Error searching %d\n", ret);
error("search for next directory entry failed: %d", ret);
goto out;
}
@ -982,8 +980,7 @@ static int search_dir(struct btrfs_root *root, struct btrfs_key *key,
"No leaf after search, looking for the next leaf\n");
ret = next_leaf(root, &path);
if (ret < 0) {
fprintf(stderr, "Error getting next leaf %d\n",
ret);
error("search for next leaf failed: %d", ret);
goto out;
} else if (ret > 0) {
/* No more leaves to search */
@ -1007,8 +1004,7 @@ static int search_dir(struct btrfs_root *root, struct btrfs_key *key,
do {
ret = next_leaf(root, &path);
if (ret < 0) {
fprintf(stderr, "Error searching %d\n",
ret);
error("search for next leaf faile: %d", ret);
goto out;
} else if (ret > 0) {
/* No more leaves to search */
@ -1062,8 +1058,7 @@ static int search_dir(struct btrfs_root *root, struct btrfs_key *key,
goto next;
fd = open(path_name, O_CREAT|O_WRONLY, 0644);
if (fd < 0) {
fprintf(stderr, "Error creating %s: %d\n",
path_name, errno);
error("creating '%s' failed: %m", path_name);
if (ignore_errors)
goto next;
ret = -1;
@ -1073,8 +1068,7 @@ static int search_dir(struct btrfs_root *root, struct btrfs_key *key,
ret = copy_file(root, fd, &location, path_name);
close(fd);
if (ret) {
fprintf(stderr, "Error copying data for %s\n",
path_name);
error("copying data for %s failed", path_name);
if (ignore_errors)
goto next;
goto out;
@ -1084,7 +1078,7 @@ static int search_dir(struct btrfs_root *root, struct btrfs_key *key,
char *dir = strdup(fs_name);
if (!dir) {
fprintf(stderr, "Ran out of memory\n");
error("ran out of memory");
ret = -ENOMEM;
goto out;
}
@ -1105,10 +1099,8 @@ static int search_dir(struct btrfs_root *root, struct btrfs_key *key,
&location);
if (IS_ERR(search_root)) {
free(dir);
fprintf(stderr, "Error reading "
"subvolume %s: %lu\n",
path_name,
PTR_ERR(search_root));
error("reading subvolume %s failed: %lu",
path_name, PTR_ERR(search_root));
if (ignore_errors)
goto next;
ret = PTR_ERR(search_root);
@ -1122,8 +1114,7 @@ static int search_dir(struct btrfs_root *root, struct btrfs_key *key,
if (search_root->root_key.offset != 0 &&
get_snaps == 0) {
free(dir);
printf("Skipping snapshot %s\n",
filename);
printf("Skipping snapshot %s\n", filename);
goto next;
}
location.objectid = BTRFS_FIRST_FREE_OBJECTID;
@ -1138,8 +1129,7 @@ static int search_dir(struct btrfs_root *root, struct btrfs_key *key,
ret = mkdir(path_name, 0755);
if (ret && errno != EEXIST) {
free(dir);
fprintf(stderr, "Error mkdiring %s: %d\n",
path_name, errno);
error("failed mkdir %s: %m", path_name);
if (ignore_errors)
goto next;
ret = -1;
@ -1150,8 +1140,8 @@ static int search_dir(struct btrfs_root *root, struct btrfs_key *key,
output_rootdir, dir, mreg);
free(dir);
if (ret) {
fprintf(stderr, "Error searching %s\n",
path_name);
error("searching directory %s failed: %d",
path_name, ret);
if (ignore_errors)
goto next;
goto out;
@ -1174,7 +1164,7 @@ next:
snprintf(path_name, PATH_MAX, "%s%s", output_rootdir, in_dir);
fd = open(path_name, O_RDONLY);
if (fd < 0) {
fprintf(stderr, "ERROR: Failed to access %s to restore metadata\n",
error("failed to access '%s' to restore metadata: %m",
path_name);
if (!ignore_errors) {
ret = -1;
@ -1218,7 +1208,7 @@ static int do_list_roots(struct btrfs_root *root)
key.type = BTRFS_ROOT_ITEM_KEY;
ret = btrfs_search_slot(NULL, root, &key, &path, 0, 0);
if (ret < 0) {
fprintf(stderr, "Failed to do search %d\n", ret);
error("failed search next root item: %d", ret);
btrfs_release_path(&path);
return -1;
}
@ -1299,7 +1289,7 @@ static struct btrfs_root *open_fs(const char *dev, u64 root_location,
root->node = read_tree_block(fs_info, root_location,
generation);
if (!extent_buffer_uptodate(root->node)) {
fprintf(stderr, "Error opening tree root\n");
error("opening tree root failed");
close_ctree(root);
return NULL;
}
@ -1313,8 +1303,7 @@ static struct btrfs_root *open_fs(const char *dev, u64 root_location,
key.offset = (u64)-1;
fs_info->fs_root = btrfs_read_fs_root_no_cache(fs_info, &key);
if (IS_ERR(fs_info->fs_root)) {
fprintf(stderr, "Couldn't read fs root: %ld\n",
PTR_ERR(fs_info->fs_root));
error("could not read fs root: %ld", PTR_ERR(fs_info->fs_root));
close_ctree(fs_info->tree_root);
return NULL;
}
@ -1342,12 +1331,12 @@ static int find_first_dir(struct btrfs_root *root, u64 *objectid)
key.offset = 0;
ret = btrfs_search_slot(NULL, root, &key, &path, 0, 0);
if (ret < 0) {
fprintf(stderr, "Error searching %d\n", ret);
error("searching next directory entry failed: %d", ret);
goto out;
}
if (!path.nodes[0]) {
fprintf(stderr, "No leaf!\n");
error("no leaf when looking for directory");
goto out;
}
again:
@ -1366,11 +1355,10 @@ again:
do {
ret = next_leaf(root, &path);
if (ret < 0) {
fprintf(stderr, "Error getting next leaf %d\n",
ret);
error("search for next leaf failed: %d", ret);
goto out;
} else if (ret > 0) {
fprintf(stderr, "No more leaves\n");
error("no more leaves to search");
goto out;
}
} while (!path.nodes[0]);
@ -1476,8 +1464,8 @@ static int cmd_restore(const struct cmd_struct *cmd, int argc, char **argv)
case 'u':
super_mirror = arg_strtou64(optarg);
if (super_mirror >= BTRFS_SUPER_MIRROR_MAX) {
fprintf(stderr, "Super mirror not "
"valid\n");
error("super mirror %d not valid",
super_mirror);
exit(1);
}
break;
@ -1487,7 +1475,7 @@ static int cmd_restore(const struct cmd_struct *cmd, int argc, char **argv)
case 'r':
root_objectid = arg_strtou64(optarg);
if (!is_fstree(root_objectid)) {
fprintf(stderr, "objectid %llu is not a valid fs/file tree\n",
error("objectid %llu is not a valid fs/file tree",
root_objectid);
exit(1);
}
@ -1524,16 +1512,16 @@ static int cmd_restore(const struct cmd_struct *cmd, int argc, char **argv)
usage(cmd);
if (fs_location && root_objectid) {
fprintf(stderr, "don't use -f and -r at the same time.\n");
error("can't use -f and -r at the same time");
return 1;
}
if ((ret = check_mounted(argv[optind])) < 0) {
errno = -ret;
fprintf(stderr, "Could not check mount status: %m\n");
error("could not check mount status: %m");
return 1;
} else if (ret) {
fprintf(stderr, "%s is currently mounted. Aborting.\n", argv[optind]);
error("%s is currently mounted, cannot continue", argv[optind]);
return 1;
}
@ -1548,7 +1536,7 @@ static int cmd_restore(const struct cmd_struct *cmd, int argc, char **argv)
free_extent_buffer(root->node);
root->node = read_tree_block(root->fs_info, fs_location, 0);
if (!extent_buffer_uptodate(root->node)) {
fprintf(stderr, "Failed to read fs location\n");
error("failed to read fs location");
ret = 1;
goto out;
}
@ -1557,7 +1545,7 @@ static int cmd_restore(const struct cmd_struct *cmd, int argc, char **argv)
memset(path_name, 0, PATH_MAX);
if (strlen(argv[optind + 1]) >= PATH_MAX) {
fprintf(stderr, "ERROR: path too long\n");
error("path '%s' too long", argv[optind + 1]);
ret = 1;
goto out;
}
@ -1579,8 +1567,7 @@ static int cmd_restore(const struct cmd_struct *cmd, int argc, char **argv)
root = btrfs_read_fs_root(orig_root->fs_info, &key);
if (IS_ERR(root)) {
errno = -PTR_ERR(root);
fprintf(stderr, "fail to read root %llu: %m\n",
root_objectid);
error("failed to read root %llu: %m", root_objectid);
root = orig_root;
ret = 1;
goto out;
@ -1601,7 +1588,7 @@ static int cmd_restore(const struct cmd_struct *cmd, int argc, char **argv)
ret = regcomp(&match_reg, match_regstr, match_cflags);
if (ret) {
regerror(ret, &match_reg, reg_err, sizeof(reg_err));
fprintf(stderr, "Regex compile failed: %s\n", reg_err);
error("regex compilation failed: %s", reg_err);
goto out;
}
mreg = &match_reg;