Home | History | Annotate | Download | only in debugfs

Lines Matching refs:info

54 static void init_chunk_info(ext2_filsys fs, struct chunk_info *info)
58 info->blocksize_bits = ul_log2((unsigned long)fs->blocksize);
59 if (info->chunkbytes) {
60 info->chunkbits = ul_log2(info->chunkbytes);
61 info->blks_in_chunk = info->chunkbytes >> info->blocksize_bits;
63 info->chunkbits = ul_log2(DEFAULT_CHUNKSIZE);
64 info->blks_in_chunk = DEFAULT_CHUNKSIZE >> info->blocksize_bits;
67 info->min = ~0UL;
68 info->max = info->avg = 0;
69 info->real_free_chunks = 0;
72 info->histogram.fc_chunks[i] = 0;
73 info->histogram.fc_blocks[i] = 0;
77 static void update_chunk_stats(struct chunk_info *info,
85 info->histogram.fc_chunks[idx]++;
86 info->histogram.fc_blocks[idx] += chunk_size;
88 if (chunk_size > info->max)
89 info->max = chunk_size;
90 if (chunk_size < info->min)
91 info->min = chunk_size;
92 info->avg += chunk_size;
93 info->real_free_chunks++;
96 static void scan_block_bitmap(ext2_filsys fs, struct chunk_info *info)
99 unsigned long long chunks = (blocks_count + info->blks_in_chunk) >>
100 (info->chunkbits - info->blocksize_bits);
111 if (chunk_start_blk + info->blks_in_chunk > blocks_count)
114 num_blks = info->blks_in_chunk;
134 update_chunk_stats(info, last_chunk_size);
139 if (chunk_free == info->blks_in_chunk)
140 info->free_chunks++;
143 update_chunk_stats(info, last_chunk_size);
146 static errcode_t get_chunk_info(ext2_filsys fs, struct chunk_info *info,
155 scan_block_bitmap(fs, info);
162 if (info->chunkbytes) {
164 info->chunkbytes, info->blks_in_chunk);
166 info->blks_in_chunk) >>
167 (info->chunkbits - info->blocksize_bits);
169 total_chunks, info->free_chunks,
170 (double)info->free_chunks * 100 / total_chunks);
174 if (info->real_free_chunks) {
176 info->min = info->min * scale;
177 info->max = info->max * scale;
178 info->avg = info->avg / info->real_free_chunks * scale;
180 info->min = 0;
184 "Avg. free extent: %lu KB\n", info->min, info->max, info->avg);
185 fprintf(f, "Num. free extent: %lu\n", info->real_free_chunks);
191 end = 1 << (i + info->blocksize_bits - units);
192 if (info->histogram.fc_chunks[i] != 0) {
200 info->histogram.fc_chunks[i],
201 info->histogram.fc_blocks[i],
202 (double)info->histogram.fc_blocks[i] * 100 /
242 com_err(fs->device_name, retval, "while collecting chunk info");