Lines Matching refs:info

51 void init_chunk_info(ext2_filsys fs, struct chunk_info *info)
55 info->blocksize_bits = ul_log2((unsigned long)fs->blocksize);
56 if (info->chunkbytes) {
57 info->chunkbits = ul_log2(info->chunkbytes);
58 info->blks_in_chunk = info->chunkbytes >> info->blocksize_bits;
60 info->chunkbits = ul_log2(DEFAULT_CHUNKSIZE);
61 info->blks_in_chunk = DEFAULT_CHUNKSIZE >> info->blocksize_bits;
64 info->min = ~0UL;
65 info->max = info->avg = 0;
66 info->real_free_chunks = 0;
69 info->histogram.fc_chunks[i] = 0;
70 info->histogram.fc_blocks[i] = 0;
74 void update_chunk_stats(struct chunk_info *info, unsigned long chunk_size)
81 info->histogram.fc_chunks[index]++;
82 info->histogram.fc_blocks[index] += chunk_size;
84 if (chunk_size > info->max)
85 info->max = chunk_size;
86 if (chunk_size < info->min)
87 info->min = chunk_size;
88 info->avg += chunk_size;
89 info->real_free_chunks++;
92 void scan_block_bitmap(ext2_filsys fs, struct chunk_info *info)
95 unsigned long long chunks = (blocks_count + info->blks_in_chunk) >>
96 (info->chunkbits - info->blocksize_bits);
107 if (chunk_start_blk + info->blks_in_chunk > blocks_count)
110 num_blks = info->blks_in_chunk;
130 update_chunk_stats(info, last_chunk_size);
135 if (chunk_free == info->blks_in_chunk)
136 info->free_chunks++;
139 update_chunk_stats(info, last_chunk_size);
142 errcode_t get_chunk_info(ext2_filsys fs, struct chunk_info *info)
150 scan_block_bitmap(fs, info);
157 if (info->chunkbytes) {
159 info->chunkbytes, info->blks_in_chunk);
161 info->blks_in_chunk) >>
162 (info->chunkbits - info->blocksize_bits);
164 total_chunks, info->free_chunks,
165 (double)info->free_chunks * 100 / total_chunks);
169 if (info->real_free_chunks) {
170 info->min = (info->min * fs->blocksize) >> 10;
171 info->max = (info->max * fs->blocksize) >> 10;
172 info->avg = (info->avg / info->real_free_chunks *
175 info->min = 0;
179 "Avg. free extent: %lu KB\n", info->min, info->max, info->avg);
180 printf("Num. free extent: %lu\n", info->real_free_chunks);
186 end = 1 << (i + info->blocksize_bits - units);
187 if (info->histogram.fc_chunks[i] != 0) {
195 info->histogram.fc_chunks[i],
196 info->histogram.fc_blocks[i],
197 (double)info->histogram.fc_blocks[i] * 100 /
237 com_err(fs->device_name, retval, "while collecting chunk info");