Lines Matching refs:info
60 struct ext4_getfsmap_info *info);
74 static bool ext4_getfsmap_rec_before_low_key(struct ext4_getfsmap_info *info, in ext4_getfsmap_rec_before_low_key() argument
77 return rec->fmr_physical < info->gfi_low.fmr_physical; in ext4_getfsmap_rec_before_low_key()
85 struct ext4_getfsmap_info *info, in ext4_getfsmap_helper() argument
102 if (ext4_getfsmap_rec_before_low_key(info, rec)) { in ext4_getfsmap_helper()
104 if (info->gfi_next_fsblk < rec_fsblk) in ext4_getfsmap_helper()
105 info->gfi_next_fsblk = rec_fsblk; in ext4_getfsmap_helper()
110 if (info->gfi_head->fmh_count == 0) { in ext4_getfsmap_helper()
111 if (info->gfi_head->fmh_entries == UINT_MAX) in ext4_getfsmap_helper()
114 if (rec_fsblk > info->gfi_next_fsblk) in ext4_getfsmap_helper()
115 info->gfi_head->fmh_entries++; in ext4_getfsmap_helper()
117 if (info->gfi_last) in ext4_getfsmap_helper()
120 info->gfi_head->fmh_entries++; in ext4_getfsmap_helper()
123 if (info->gfi_next_fsblk < rec_fsblk) in ext4_getfsmap_helper()
124 info->gfi_next_fsblk = rec_fsblk; in ext4_getfsmap_helper()
133 if (rec_fsblk > info->gfi_next_fsblk) { in ext4_getfsmap_helper()
134 if (info->gfi_head->fmh_entries >= info->gfi_head->fmh_count) in ext4_getfsmap_helper()
137 ext4_get_group_no_and_offset(sb, info->gfi_next_fsblk, in ext4_getfsmap_helper()
139 trace_ext4_fsmap_mapping(sb, info->gfi_dev, agno, in ext4_getfsmap_helper()
141 rec_fsblk - info->gfi_next_fsblk, in ext4_getfsmap_helper()
144 fmr.fmr_device = info->gfi_dev; in ext4_getfsmap_helper()
145 fmr.fmr_physical = info->gfi_next_fsblk; in ext4_getfsmap_helper()
147 fmr.fmr_length = rec_fsblk - info->gfi_next_fsblk; in ext4_getfsmap_helper()
149 error = info->gfi_formatter(&fmr, info->gfi_format_arg); in ext4_getfsmap_helper()
152 info->gfi_head->fmh_entries++; in ext4_getfsmap_helper()
155 if (info->gfi_last) in ext4_getfsmap_helper()
159 if (info->gfi_head->fmh_entries >= info->gfi_head->fmh_count) in ext4_getfsmap_helper()
163 trace_ext4_fsmap_mapping(sb, info->gfi_dev, agno, EXT4_C2B(sbi, cno), in ext4_getfsmap_helper()
166 fmr.fmr_device = info->gfi_dev; in ext4_getfsmap_helper()
171 error = info->gfi_formatter(&fmr, info->gfi_format_arg); in ext4_getfsmap_helper()
174 info->gfi_head->fmh_entries++; in ext4_getfsmap_helper()
178 if (info->gfi_next_fsblk < rec_fsblk) in ext4_getfsmap_helper()
179 info->gfi_next_fsblk = rec_fsblk; in ext4_getfsmap_helper()
194 struct ext4_getfsmap_info *info = priv; in ext4_getfsmap_datadev_helper() local
206 if (info->gfi_lastfree.fmr_owner) { in ext4_getfsmap_datadev_helper()
208 if (ext4_fsmap_next_pblk(&info->gfi_lastfree) == fsb) { in ext4_getfsmap_datadev_helper()
209 info->gfi_lastfree.fmr_length += fslen; in ext4_getfsmap_datadev_helper()
217 error = ext4_getfsmap_helper(sb, info, &info->gfi_lastfree); in ext4_getfsmap_datadev_helper()
220 info->gfi_lastfree.fmr_owner = 0; in ext4_getfsmap_datadev_helper()
224 list_for_each_entry_safe(p, tmp, &info->gfi_meta_list, fmr_list) { in ext4_getfsmap_datadev_helper()
225 if (p->fmr_physical + p->fmr_length <= info->gfi_next_fsblk) { in ext4_getfsmap_datadev_helper()
229 error = ext4_getfsmap_helper(sb, info, p); in ext4_getfsmap_datadev_helper()
247 info->gfi_lastfree = irec; in ext4_getfsmap_datadev_helper()
252 return ext4_getfsmap_helper(sb, info, &irec); in ext4_getfsmap_datadev_helper()
257 struct ext4_getfsmap_info *info) in ext4_getfsmap_logdev() argument
263 info->gfi_low = keys[0]; in ext4_getfsmap_logdev()
264 info->gfi_low.fmr_length = 0; in ext4_getfsmap_logdev()
266 memset(&info->gfi_high, 0xFF, sizeof(info->gfi_high)); in ext4_getfsmap_logdev()
268 trace_ext4_fsmap_low_key(sb, info->gfi_dev, 0, in ext4_getfsmap_logdev()
269 info->gfi_low.fmr_physical, in ext4_getfsmap_logdev()
270 info->gfi_low.fmr_length, in ext4_getfsmap_logdev()
271 info->gfi_low.fmr_owner); in ext4_getfsmap_logdev()
273 trace_ext4_fsmap_high_key(sb, info->gfi_dev, 0, in ext4_getfsmap_logdev()
274 info->gfi_high.fmr_physical, in ext4_getfsmap_logdev()
275 info->gfi_high.fmr_length, in ext4_getfsmap_logdev()
276 info->gfi_high.fmr_owner); in ext4_getfsmap_logdev()
287 return ext4_getfsmap_helper(sb, info, &irec); in ext4_getfsmap_logdev()
468 struct ext4_getfsmap_info *info) in ext4_getfsmap_datadev() argument
503 info->gfi_low = keys[0]; in ext4_getfsmap_datadev()
504 info->gfi_low.fmr_physical = EXT4_C2B(sbi, first_cluster); in ext4_getfsmap_datadev()
505 info->gfi_low.fmr_length = 0; in ext4_getfsmap_datadev()
507 memset(&info->gfi_high, 0xFF, sizeof(info->gfi_high)); in ext4_getfsmap_datadev()
510 error = ext4_getfsmap_find_fixed_metadata(sb, &info->gfi_meta_list); in ext4_getfsmap_datadev()
515 for (info->gfi_agno = start_ag; in ext4_getfsmap_datadev()
516 info->gfi_agno <= end_ag; in ext4_getfsmap_datadev()
517 info->gfi_agno++) { in ext4_getfsmap_datadev()
522 if (info->gfi_agno == end_ag) { in ext4_getfsmap_datadev()
523 info->gfi_high = keys[1]; in ext4_getfsmap_datadev()
524 info->gfi_high.fmr_physical = EXT4_C2B(sbi, in ext4_getfsmap_datadev()
526 info->gfi_high.fmr_length = 0; in ext4_getfsmap_datadev()
529 trace_ext4_fsmap_low_key(sb, info->gfi_dev, info->gfi_agno, in ext4_getfsmap_datadev()
530 info->gfi_low.fmr_physical, in ext4_getfsmap_datadev()
531 info->gfi_low.fmr_length, in ext4_getfsmap_datadev()
532 info->gfi_low.fmr_owner); in ext4_getfsmap_datadev()
534 trace_ext4_fsmap_high_key(sb, info->gfi_dev, info->gfi_agno, in ext4_getfsmap_datadev()
535 info->gfi_high.fmr_physical, in ext4_getfsmap_datadev()
536 info->gfi_high.fmr_length, in ext4_getfsmap_datadev()
537 info->gfi_high.fmr_owner); in ext4_getfsmap_datadev()
539 error = ext4_mballoc_query_range(sb, info->gfi_agno, in ext4_getfsmap_datadev()
540 EXT4_B2C(sbi, info->gfi_low.fmr_physical), in ext4_getfsmap_datadev()
541 EXT4_B2C(sbi, info->gfi_high.fmr_physical), in ext4_getfsmap_datadev()
542 ext4_getfsmap_datadev_helper, info); in ext4_getfsmap_datadev()
550 if (info->gfi_agno == start_ag) in ext4_getfsmap_datadev()
551 memset(&info->gfi_low, 0, sizeof(info->gfi_low)); in ext4_getfsmap_datadev()
555 if (info->gfi_lastfree.fmr_owner) { in ext4_getfsmap_datadev()
556 error = ext4_getfsmap_helper(sb, info, &info->gfi_lastfree); in ext4_getfsmap_datadev()
562 info->gfi_last = true; in ext4_getfsmap_datadev()
563 error = ext4_getfsmap_datadev_helper(sb, end_ag, last_cluster, 0, info); in ext4_getfsmap_datadev()
568 ext4_getfsmap_free_fixed_metadata(&info->gfi_meta_list); in ext4_getfsmap_datadev()
634 struct ext4_getfsmap_info info = { NULL }; in ext4_getfsmap() local
679 info.gfi_next_fsblk = head->fmh_keys[0].fmr_physical + in ext4_getfsmap()
681 info.gfi_formatter = formatter; in ext4_getfsmap()
682 info.gfi_format_arg = arg; in ext4_getfsmap()
683 info.gfi_head = head; in ext4_getfsmap()
707 info.gfi_dev = handlers[i].gfd_dev; in ext4_getfsmap()
708 info.gfi_last = false; in ext4_getfsmap()
709 info.gfi_agno = -1; in ext4_getfsmap()
710 error = handlers[i].gfd_fn(sb, dkeys, &info); in ext4_getfsmap()
713 info.gfi_next_fsblk = 0; in ext4_getfsmap()