btrfs-progs: inspect: use pr_verbose for messages

Replace printf by the level-aware helper. No change for commands that
don't have the global -q/-v options, otherwise the output can be
quieted.

Signed-off-by: David Sterba <dsterba@suse.com>
This commit is contained in:
David Sterba 2022-10-04 16:50:09 +02:00
parent 285e9786da
commit a2ab9a56ce
4 changed files with 99 additions and 99 deletions

View file

@ -46,8 +46,8 @@ static int load_and_dump_sb(char *filename, int fd, u64 sb_bytenr, int full,
error("error = '%m', errno = %d", errno);
return 1;
}
printf("superblock: bytenr=%llu, device=%s\n", sb_bytenr, filename);
printf("---------------------------------------------------------\n");
pr_verbose(LOG_DEFAULT, "superblock: bytenr=%llu, device=%s\n", sb_bytenr, filename);
pr_verbose(LOG_DEFAULT, "---------------------------------------------------------\n");
if (btrfs_super_magic(&sb) != BTRFS_MAGIC && !force) {
error("bad magic on superblock on %s at %llu (use --force to dump it anyway)",
filename, (unsigned long long)sb_bytenr);

View file

@ -100,32 +100,32 @@ static void print_old_roots(struct btrfs_super_block *super)
for (i = 0; i < BTRFS_NUM_BACKUP_ROOTS; i++) {
backup = super->super_roots + i;
printf("btrfs root backup slot %d\n", i);
printf("\ttree root gen %llu block %llu\n",
pr_verbose(LOG_DEFAULT, "btrfs root backup slot %d\n", i);
pr_verbose(LOG_DEFAULT, "\ttree root gen %llu block %llu\n",
(unsigned long long)btrfs_backup_tree_root_gen(backup),
(unsigned long long)btrfs_backup_tree_root(backup));
printf("\t\t%s gen %llu block %llu\n", extent_tree_str,
pr_verbose(LOG_DEFAULT, "\t\t%s gen %llu block %llu\n", extent_tree_str,
(unsigned long long)btrfs_backup_extent_root_gen(backup),
(unsigned long long)btrfs_backup_extent_root(backup));
printf("\t\tchunk root gen %llu block %llu\n",
pr_verbose(LOG_DEFAULT, "\t\tchunk root gen %llu block %llu\n",
(unsigned long long)btrfs_backup_chunk_root_gen(backup),
(unsigned long long)btrfs_backup_chunk_root(backup));
printf("\t\tdevice root gen %llu block %llu\n",
pr_verbose(LOG_DEFAULT, "\t\tdevice root gen %llu block %llu\n",
(unsigned long long)btrfs_backup_dev_root_gen(backup),
(unsigned long long)btrfs_backup_dev_root(backup));
printf("\t\tcsum root gen %llu block %llu\n",
pr_verbose(LOG_DEFAULT, "\t\tcsum root gen %llu block %llu\n",
(unsigned long long)btrfs_backup_csum_root_gen(backup),
(unsigned long long)btrfs_backup_csum_root(backup));
printf("\t\tfs root gen %llu block %llu\n",
pr_verbose(LOG_DEFAULT, "\t\tfs root gen %llu block %llu\n",
(unsigned long long)btrfs_backup_fs_root_gen(backup),
(unsigned long long)btrfs_backup_fs_root(backup));
printf("\t\t%llu used %llu total %llu devices\n",
pr_verbose(LOG_DEFAULT, "\t\t%llu used %llu total %llu devices\n",
(unsigned long long)btrfs_backup_bytes_used(backup),
(unsigned long long)btrfs_backup_total_bytes(backup),
(unsigned long long)btrfs_backup_num_devices(backup));
@ -486,7 +486,7 @@ static int cmd_inspect_dump_tree(const struct cmd_struct *cmd,
dev_optind++;
}
printf("%s\n", PACKAGE_STRING);
pr_verbose(LOG_DEFAULT, "%s\n", PACKAGE_STRING);
ocf.filename = argv[optind];
ocf.flags = open_ctree_flags;
@ -512,32 +512,32 @@ static int cmd_inspect_dump_tree(const struct cmd_struct *cmd,
if (!(extent_only || uuid_tree_only || tree_id)) {
if (roots_only) {
printf("root tree: %llu level %d\n",
pr_verbose(LOG_DEFAULT, "root tree: %llu level %d\n",
(unsigned long long)info->tree_root->node->start,
btrfs_header_level(info->tree_root->node));
printf("chunk tree: %llu level %d\n",
pr_verbose(LOG_DEFAULT, "chunk tree: %llu level %d\n",
(unsigned long long)info->chunk_root->node->start,
btrfs_header_level(info->chunk_root->node));
if (info->log_root_tree)
printf("log root tree: %llu level %d\n",
pr_verbose(LOG_DEFAULT, "log root tree: %llu level %d\n",
info->log_root_tree->node->start,
btrfs_header_level(
info->log_root_tree->node));
} else {
if (info->tree_root->node) {
printf("root tree\n");
pr_verbose(LOG_DEFAULT, "root tree\n");
btrfs_print_tree(info->tree_root->node,
BTRFS_PRINT_TREE_FOLLOW | print_mode);
}
if (info->chunk_root->node) {
printf("chunk tree\n");
pr_verbose(LOG_DEFAULT, "chunk tree\n");
btrfs_print_tree(info->chunk_root->node,
BTRFS_PRINT_TREE_FOLLOW | print_mode);
}
if (info->log_root_tree) {
printf("log root tree\n");
pr_verbose(LOG_DEFAULT, "log root tree\n");
btrfs_print_tree(info->log_root_tree->node,
BTRFS_PRINT_TREE_FOLLOW | print_mode);
}
@ -558,7 +558,7 @@ again:
error("cannot print root tree, invalid pointer");
goto close_root;
}
printf("root tree\n");
pr_verbose(LOG_DEFAULT, "root tree\n");
btrfs_print_tree(info->tree_root->node,
BTRFS_PRINT_TREE_FOLLOW | print_mode);
goto close_root;
@ -569,7 +569,7 @@ again:
error("cannot print chunk tree, invalid pointer");
goto close_root;
}
printf("chunk tree\n");
pr_verbose(LOG_DEFAULT, "chunk tree\n");
btrfs_print_tree(info->chunk_root->node,
BTRFS_PRINT_TREE_FOLLOW | print_mode);
goto close_root;
@ -580,7 +580,7 @@ again:
error("cannot print log root tree, invalid pointer");
goto close_root;
}
printf("log root tree\n");
pr_verbose(LOG_DEFAULT, "log root tree\n");
btrfs_print_tree(info->log_root_tree->node,
BTRFS_PRINT_TREE_FOLLOW | print_mode);
goto close_root;
@ -591,7 +591,7 @@ again:
error("cannot print block group tree, invalid pointer");
goto close_root;
}
printf("block group tree\n");
pr_verbose(LOG_DEFAULT, "block group tree\n");
btrfs_print_tree(info->block_group_root->node,
BTRFS_PRINT_TREE_FOLLOW | print_mode);
goto close_root;
@ -637,112 +637,112 @@ again:
switch (found_key.objectid) {
case BTRFS_ROOT_TREE_OBJECTID:
if (!skip)
printf("root");
pr_verbose(LOG_DEFAULT, "root");
break;
case BTRFS_EXTENT_TREE_OBJECTID:
if (!device_only && !uuid_tree_only)
skip = 0;
if (!skip)
printf("extent");
pr_verbose(LOG_DEFAULT, "extent");
break;
case BTRFS_CHUNK_TREE_OBJECTID:
if (!skip) {
printf("chunk");
pr_verbose(LOG_DEFAULT, "chunk");
}
break;
case BTRFS_DEV_TREE_OBJECTID:
if (!uuid_tree_only)
skip = 0;
if (!skip)
printf("device");
pr_verbose(LOG_DEFAULT, "device");
break;
case BTRFS_FS_TREE_OBJECTID:
if (!skip) {
printf("fs");
pr_verbose(LOG_DEFAULT, "fs");
}
break;
case BTRFS_ROOT_TREE_DIR_OBJECTID:
skip = 0;
printf("directory");
pr_verbose(LOG_DEFAULT, "directory");
break;
case BTRFS_CSUM_TREE_OBJECTID:
if (!skip) {
printf("checksum");
pr_verbose(LOG_DEFAULT, "checksum");
}
break;
case BTRFS_ORPHAN_OBJECTID:
if (!skip) {
printf("orphan");
pr_verbose(LOG_DEFAULT, "orphan");
}
break;
case BTRFS_TREE_LOG_OBJECTID:
if (!skip) {
printf("log");
pr_verbose(LOG_DEFAULT, "log");
}
break;
case BTRFS_TREE_LOG_FIXUP_OBJECTID:
if (!skip) {
printf("log fixup");
pr_verbose(LOG_DEFAULT, "log fixup");
}
break;
case BTRFS_TREE_RELOC_OBJECTID:
if (!skip) {
printf("reloc");
pr_verbose(LOG_DEFAULT, "reloc");
}
break;
case BTRFS_DATA_RELOC_TREE_OBJECTID:
if (!skip) {
printf("data reloc");
pr_verbose(LOG_DEFAULT, "data reloc");
}
break;
case BTRFS_EXTENT_CSUM_OBJECTID:
if (!skip) {
printf("extent checksum");
pr_verbose(LOG_DEFAULT, "extent checksum");
}
break;
case BTRFS_QUOTA_TREE_OBJECTID:
if (!skip) {
printf("quota");
pr_verbose(LOG_DEFAULT, "quota");
}
break;
case BTRFS_UUID_TREE_OBJECTID:
if (!extent_only && !device_only)
skip = 0;
if (!skip)
printf("uuid");
pr_verbose(LOG_DEFAULT, "uuid");
break;
case BTRFS_FREE_SPACE_TREE_OBJECTID:
if (!skip)
printf("free space");
pr_verbose(LOG_DEFAULT, "free space");
break;
case BTRFS_MULTIPLE_OBJECTIDS:
if (!skip) {
printf("multiple");
pr_verbose(LOG_DEFAULT, "multiple");
}
break;
case BTRFS_BLOCK_GROUP_TREE_OBJECTID:
if (!skip)
printf("block group");
pr_verbose(LOG_DEFAULT, "block group");
break;
default:
if (!skip) {
printf("file");
pr_verbose(LOG_DEFAULT, "file");
}
}
if (extent_only && !skip) {
printf(" tree ");
pr_verbose(LOG_DEFAULT, " tree ");
btrfs_print_key(&disk_key);
printf("\n");
pr_verbose(LOG_DEFAULT, "\n");
print_extents(buf);
} else if (!skip) {
printf(" tree ");
pr_verbose(LOG_DEFAULT, " tree ");
btrfs_print_key(&disk_key);
if (roots_only) {
printf(" %llu level %d\n",
pr_verbose(LOG_DEFAULT, " %llu level %d\n",
(unsigned long long)buf->start,
btrfs_header_level(buf));
} else {
printf(" \n");
pr_verbose(LOG_DEFAULT, " \n");
btrfs_print_tree(buf,
BTRFS_PRINT_TREE_FOLLOW | print_mode);
}
@ -766,13 +766,13 @@ no_node:
if (root_backups)
print_old_roots(info->super_copy);
printf("total bytes %llu\n",
pr_verbose(LOG_DEFAULT, "total bytes %llu\n",
(unsigned long long)btrfs_super_total_bytes(info->super_copy));
printf("bytes used %llu\n",
pr_verbose(LOG_DEFAULT, "bytes used %llu\n",
(unsigned long long)btrfs_super_bytes_used(info->super_copy));
uuidbuf[BTRFS_UUID_UNPARSED_SIZE - 1] = '\0';
uuid_unparse(info->super_copy->fsid, uuidbuf);
printf("uuid %s\n", uuidbuf);
pr_verbose(LOG_DEFAULT, "uuid %s\n", uuidbuf);
close_root:
ret = close_ctree(root);
out:

View file

@ -231,7 +231,7 @@ static void print_seek_histogram(struct root_stats *stat)
/* Make a tick count as 5% of the total seeks */
tick_interval = stat->total_seeks / 20;
printf("\tSeek histogram\n");
pr_verbose(LOG_DEFAULT, "\tSeek histogram\n");
for (; n; n = rb_next(n)) {
u64 ticks, gticks = 0;
@ -251,14 +251,14 @@ static void print_seek_histogram(struct root_stats *stat)
if (group_count) {
gticks = group_count / tick_interval;
printf("\t\t%*llu - %*llu: %*llu ", digits, group_start,
pr_verbose(LOG_DEFAULT, "\t\t%*llu - %*llu: %*llu ", digits, group_start,
digits, group_end, digits, group_count);
if (gticks) {
for (i = 0; i < gticks; i++)
printf("#");
printf("\n");
pr_verbose(LOG_DEFAULT, "#");
pr_verbose(LOG_DEFAULT, "\n");
} else {
printf("|\n");
pr_verbose(LOG_DEFAULT, "|\n");
}
group_count = 0;
}
@ -266,24 +266,24 @@ static void print_seek_histogram(struct root_stats *stat)
if (ticks <= 2)
continue;
printf("\t\t%*llu - %*llu: %*llu ", digits, seek->distance,
pr_verbose(LOG_DEFAULT, "\t\t%*llu - %*llu: %*llu ", digits, seek->distance,
digits, seek->distance, digits, seek->count);
for (i = 0; i < ticks; i++)
printf("#");
printf("\n");
pr_verbose(LOG_DEFAULT, "#");
pr_verbose(LOG_DEFAULT, "\n");
}
if (group_count) {
u64 gticks;
gticks = group_count / tick_interval;
printf("\t\t%*llu - %*llu: %*llu ", digits, group_start,
pr_verbose(LOG_DEFAULT, "\t\t%*llu - %*llu: %*llu ", digits, group_start,
digits, group_end, digits, group_count);
if (gticks) {
for (i = 0; i < gticks; i++)
printf("#");
printf("\n");
pr_verbose(LOG_DEFAULT, "#");
pr_verbose(LOG_DEFAULT, "\n");
} else {
printf("|\n");
pr_verbose(LOG_DEFAULT, "|\n");
}
group_count = 0;
}
@ -361,59 +361,59 @@ out_print:
}
if (no_pretty || size_fail) {
printf("\tTotal size: %llu\n", stat.total_bytes);
printf("\t\tInline data: %llu\n", stat.total_inline);
printf("\tTotal seeks: %llu\n", stat.total_seeks);
printf("\t\tForward seeks: %llu\n", stat.forward_seeks);
printf("\t\tBackward seeks: %llu\n", stat.backward_seeks);
printf("\t\tAvg seek len: %llu\n", stat.total_seeks ?
pr_verbose(LOG_DEFAULT, "\tTotal size: %llu\n", stat.total_bytes);
pr_verbose(LOG_DEFAULT, "\t\tInline data: %llu\n", stat.total_inline);
pr_verbose(LOG_DEFAULT, "\tTotal seeks: %llu\n", stat.total_seeks);
pr_verbose(LOG_DEFAULT, "\t\tForward seeks: %llu\n", stat.forward_seeks);
pr_verbose(LOG_DEFAULT, "\t\tBackward seeks: %llu\n", stat.backward_seeks);
pr_verbose(LOG_DEFAULT, "\t\tAvg seek len: %llu\n", stat.total_seeks ?
stat.total_seek_len / stat.total_seeks : 0);
print_seek_histogram(&stat);
printf("\tTotal clusters: %llu\n", stat.total_clusters);
printf("\t\tAvg cluster size: %llu\n", stat.total_cluster_size /
pr_verbose(LOG_DEFAULT, "\tTotal clusters: %llu\n", stat.total_clusters);
pr_verbose(LOG_DEFAULT, "\t\tAvg cluster size: %llu\n", stat.total_cluster_size /
stat.total_clusters);
printf("\t\tMin cluster size: %llu\n", stat.min_cluster_size);
printf("\t\tMax cluster size: %llu\n", stat.max_cluster_size);
printf("\tTotal disk spread: %llu\n", stat.highest_bytenr -
pr_verbose(LOG_DEFAULT, "\t\tMin cluster size: %llu\n", stat.min_cluster_size);
pr_verbose(LOG_DEFAULT, "\t\tMax cluster size: %llu\n", stat.max_cluster_size);
pr_verbose(LOG_DEFAULT, "\tTotal disk spread: %llu\n", stat.highest_bytenr -
stat.lowest_bytenr);
printf("\tTotal read time: %d s %d us\n", (int)diff.tv_sec,
pr_verbose(LOG_DEFAULT, "\tTotal read time: %d s %d us\n", (int)diff.tv_sec,
(int)diff.tv_usec);
} else {
printf("\tTotal size: %s\n", pretty_size(stat.total_bytes));
printf("\t\tInline data: %s\n", pretty_size(stat.total_inline));
printf("\tTotal seeks: %llu\n", stat.total_seeks);
printf("\t\tForward seeks: %llu\n", stat.forward_seeks);
printf("\t\tBackward seeks: %llu\n", stat.backward_seeks);
printf("\t\tAvg seek len: %s\n", stat.total_seeks ?
pr_verbose(LOG_DEFAULT, "\tTotal size: %s\n", pretty_size(stat.total_bytes));
pr_verbose(LOG_DEFAULT, "\t\tInline data: %s\n", pretty_size(stat.total_inline));
pr_verbose(LOG_DEFAULT, "\tTotal seeks: %llu\n", stat.total_seeks);
pr_verbose(LOG_DEFAULT, "\t\tForward seeks: %llu\n", stat.forward_seeks);
pr_verbose(LOG_DEFAULT, "\t\tBackward seeks: %llu\n", stat.backward_seeks);
pr_verbose(LOG_DEFAULT, "\t\tAvg seek len: %s\n", stat.total_seeks ?
pretty_size(stat.total_seek_len / stat.total_seeks) :
pretty_size(0));
print_seek_histogram(&stat);
printf("\tTotal clusters: %llu\n", stat.total_clusters);
printf("\t\tAvg cluster size: %s\n",
pr_verbose(LOG_DEFAULT, "\tTotal clusters: %llu\n", stat.total_clusters);
pr_verbose(LOG_DEFAULT, "\t\tAvg cluster size: %s\n",
pretty_size((stat.total_cluster_size /
stat.total_clusters)));
printf("\t\tMin cluster size: %s\n",
pr_verbose(LOG_DEFAULT, "\t\tMin cluster size: %s\n",
pretty_size(stat.min_cluster_size));
printf("\t\tMax cluster size: %s\n",
pr_verbose(LOG_DEFAULT, "\t\tMax cluster size: %s\n",
pretty_size(stat.max_cluster_size));
printf("\tTotal disk spread: %s\n",
pr_verbose(LOG_DEFAULT, "\tTotal disk spread: %s\n",
pretty_size(stat.highest_bytenr -
stat.lowest_bytenr));
printf("\tTotal read time: %d s %d us\n", (int)diff.tv_sec,
pr_verbose(LOG_DEFAULT, "\tTotal read time: %d s %d us\n", (int)diff.tv_sec,
(int)diff.tv_usec);
}
printf("\tLevels: %d\n", level + 1);
printf("\tTotal nodes: %llu\n", stat.total_nodes);
pr_verbose(LOG_DEFAULT, "\tLevels: %d\n", level + 1);
pr_verbose(LOG_DEFAULT, "\tTotal nodes: %llu\n", stat.total_nodes);
for (i = 0; i < level + 1; i++) {
printf("\t\tOn level %d: %8llu", i, stat.node_counts[i]);
pr_verbose(LOG_DEFAULT, "\t\tOn level %d: %8llu", i, stat.node_counts[i]);
if (i > 0) {
u64 fanout;
fanout = stat.node_counts[i - 1];
fanout /= stat.node_counts[i];
printf(" (avg fanout %llu)", fanout);
pr_verbose(LOG_DEFAULT, " (avg fanout %llu)", fanout);
}
printf("\n");
pr_verbose(LOG_DEFAULT, "\n");
}
out:
while ((n = rb_first(&stat.seek_root)) != NULL) {
@ -479,19 +479,19 @@ static int cmd_inspect_tree_stats(const struct cmd_struct *cmd,
exit(1);
}
printf("Calculating size of root tree\n");
pr_verbose(LOG_DEFAULT, "Calculating size of root tree\n");
key.objectid = BTRFS_ROOT_TREE_OBJECTID;
ret = calc_root_size(root, &key, 0);
if (ret)
goto out;
printf("Calculating size of extent tree\n");
pr_verbose(LOG_DEFAULT, "Calculating size of extent tree\n");
key.objectid = BTRFS_EXTENT_TREE_OBJECTID;
ret = calc_root_size(root, &key, 0);
if (ret)
goto out;
printf("Calculating size of csum tree\n");
pr_verbose(LOG_DEFAULT, "Calculating size of csum tree\n");
key.objectid = BTRFS_CSUM_TREE_OBJECTID;
ret = calc_root_size(root, &key, 0);
if (ret)
@ -499,7 +499,7 @@ static int cmd_inspect_tree_stats(const struct cmd_struct *cmd,
key.objectid = BTRFS_FS_TREE_OBJECTID;
key.offset = (u64)-1;
printf("Calculating size of fs tree\n");
pr_verbose(LOG_DEFAULT, "Calculating size of fs tree\n");
ret = calc_root_size(root, &key, 1);
if (ret)
goto out;

View file

@ -74,9 +74,9 @@ static int __ino_to_path_fd(u64 inum, int fd, const char *prepend)
ptr += fspath->val[i];
str = (char *)(unsigned long)ptr;
if (prepend)
printf("%s/%s\n", prepend, str);
pr_verbose(LOG_DEFAULT, "%s/%s\n", prepend, str);
else
printf("%s\n", str);
pr_verbose(LOG_DEFAULT, "%s\n", str);
}
out:
@ -296,7 +296,7 @@ static int cmd_inspect_logical_resolve(const struct cmd_struct *cmd,
if (path_fd != fd)
close_file_or_dir(path_fd, dirs);
} else {
printf("inode %llu offset %llu root %llu\n", inum,
pr_verbose(LOG_DEFAULT, "inode %llu offset %llu root %llu\n", inum,
offset, root);
}
}
@ -344,7 +344,7 @@ static int cmd_inspect_subvolid_resolve(const struct cmd_struct *cmd,
}
path[PATH_MAX - 1] = '\0';
printf("%s\n", path);
pr_verbose(LOG_DEFAULT, "%s\n", path);
out:
close_file_or_dir(fd, dirstream);
@ -384,7 +384,7 @@ static int cmd_inspect_rootid(const struct cmd_struct *cmd,
goto out;
}
printf("%llu\n", (unsigned long long)rootid);
pr_verbose(LOG_DEFAULT, "%llu\n", (unsigned long long)rootid);
out:
close_file_or_dir(fd, dirstream);
@ -632,7 +632,7 @@ static int print_min_dev_size(int fd, u64 devid)
}
adjust_dev_min_size(&extents, &holes, &min_size);
printf("%llu bytes (%s)\n", min_size, pretty_size(min_size));
pr_verbose(LOG_DEFAULT, "%llu bytes (%s)\n", min_size, pretty_size(min_size));
ret = 0;
out:
free_dev_extent_list(&extents);