summaryrefslogtreecommitdiff
path: root/lib/common
diff options
context:
space:
mode:
Diffstat (limited to 'lib/common')
-rw-r--r--lib/common/statistics.c18
1 files changed, 11 insertions, 7 deletions
diff --git a/lib/common/statistics.c b/lib/common/statistics.c
index 2f729cb..079c1b1 100644
--- a/lib/common/statistics.c
+++ b/lib/common/statistics.c
@@ -13,22 +13,23 @@ void sqfs_print_statistics(const sqfs_super_t *super,
const sqfs_block_writer_t *wr)
{
const sqfs_block_processor_stats_t *proc_stats;
- const sqfs_block_writer_stats_t *wr_stats;
+ sqfs_u64 bytes_written, blocks_written;
char read_sz[32], written_sz[32];
size_t ratio;
proc_stats = sqfs_block_processor_get_stats(blk);
- wr_stats = sqfs_block_writer_get_stats(wr);
+ blocks_written = sqfs_block_writer_get_block_count(wr);
+
+ bytes_written = super->inode_table_start - sizeof(*super);
if (proc_stats->input_bytes_read > 0) {
- ratio = (100 * wr_stats->bytes_written) /
- proc_stats->input_bytes_read;
+ ratio = (100 * bytes_written) / proc_stats->input_bytes_read;
} else {
ratio = 100;
}
print_size(proc_stats->input_bytes_read, read_sz, false);
- print_size(wr_stats->bytes_written, written_sz, false);
+ print_size(bytes_written, written_sz, false);
fputs("---------------------------------------------------\n", stdout);
printf("Data bytes read: %s\n", read_sz);
@@ -36,11 +37,14 @@ void sqfs_print_statistics(const sqfs_super_t *super,
printf("Data compression ratio: " PRI_SZ "%%\n", ratio);
fputc('\n', stdout);
- printf("Data blocks written: " PRI_U64 "\n", wr_stats->blocks_written);
+ printf("Data blocks written: " PRI_U64 "\n", blocks_written);
printf("Out of which where fragment blocks: " PRI_U64 "\n",
proc_stats->frag_block_count);
+
printf("Duplicate blocks omitted: " PRI_U64 "\n",
- wr_stats->blocks_submitted - wr_stats->blocks_written);
+ proc_stats->data_block_count + proc_stats->frag_block_count -
+ blocks_written);
+
printf("Sparse blocks omitted: " PRI_U64 "\n",
proc_stats->sparse_block_count);
fputc('\n', stdout);