Lines Matching refs:ei
26 struct extent_info ei; in sanity_check_extent_cache() local
29 get_read_extent_info(&ei, i_ext); in sanity_check_extent_cache()
31 if (!ei.len) in sanity_check_extent_cache()
34 if (!f2fs_is_valid_blkaddr(sbi, ei.blk, DATA_GENERIC_ENHANCE) || in sanity_check_extent_cache()
35 !f2fs_is_valid_blkaddr(sbi, ei.blk + ei.len - 1, in sanity_check_extent_cache()
39 ei.blk, ei.fofs, ei.len); in sanity_check_extent_cache()
47 if (FDEV(devi).start_blk != ei.blk || in sanity_check_extent_cache()
48 FDEV(devi).end_blk != ei.blk + ei.len - 1) in sanity_check_extent_cache()
62 __func__, inode->i_ino, ei.blk, ei.fofs, ei.len); in sanity_check_extent_cache()
70 __func__, inode->i_ino, ei.blk, ei.fofs, ei.len); in sanity_check_extent_cache()
74 static void __set_extent_info(struct extent_info *ei, in __set_extent_info() argument
80 ei->fofs = fofs; in __set_extent_info()
81 ei->len = len; in __set_extent_info()
84 ei->blk = blk; in __set_extent_info()
88 ei->c_len = 0; in __set_extent_info()
91 ei->age = age; in __set_extent_info()
92 ei->last_blocks = last_blocks; in __set_extent_info()
142 if (en->ei.len <= et->largest.len) in __try_update_largest_extent()
145 et->largest = en->ei; in __try_update_largest_extent()
189 if (cached_en && cached_en->ei.fofs <= fofs && in __lookup_extent_node()
190 cached_en->ei.fofs + cached_en->ei.len > fofs) in __lookup_extent_node()
197 if (fofs < en->ei.fofs) in __lookup_extent_node()
199 else if (fofs >= en->ei.fofs + en->ei.len) in __lookup_extent_node()
237 if (en && en->ei.fofs <= fofs && en->ei.fofs + en->ei.len > fofs) in __lookup_extent_node_ret()
246 if (fofs < en->ei.fofs) { in __lookup_extent_node_ret()
248 } else if (fofs >= en->ei.fofs + en->ei.len) { in __lookup_extent_node_ret()
261 if (parent && fofs > en->ei.fofs) in __lookup_extent_node_ret()
266 if (parent && fofs < en->ei.fofs) in __lookup_extent_node_ret()
272 if (fofs == en->ei.fofs) { in __lookup_extent_node_ret()
278 if (fofs == en->ei.fofs + en->ei.len - 1) { in __lookup_extent_node_ret()
291 struct extent_tree *et, struct extent_info *ei, in __attach_extent_node() argument
302 en->ei = *ei; in __attach_extent_node()
417 struct extent_info ei = {0}; in f2fs_init_read_extent_tree() local
432 get_read_extent_info(&ei, i_ext); in f2fs_init_read_extent_tree()
435 if (atomic_read(&et->node_cnt) || !ei.len) in f2fs_init_read_extent_tree()
439 et->largest = ei; in f2fs_init_read_extent_tree()
443 en = __attach_extent_node(sbi, et, &ei, NULL, in f2fs_init_read_extent_tree()
446 et->largest = en->ei; in f2fs_init_read_extent_tree()
481 struct extent_info *ei, enum extent_type type) in __lookup_extent_tree() argument
499 *ei = et->largest; in __lookup_extent_tree()
519 *ei = en->ei; in __lookup_extent_tree()
532 trace_f2fs_lookup_read_extent_tree_end(inode, pgofs, ei); in __lookup_extent_tree()
534 trace_f2fs_lookup_age_extent_tree_end(inode, pgofs, ei); in __lookup_extent_tree()
539 struct extent_tree *et, struct extent_info *ei, in __try_merge_extent_node() argument
546 if (prev_ex && __is_back_mergeable(ei, &prev_ex->ei, et->type)) { in __try_merge_extent_node()
547 prev_ex->ei.len += ei->len; in __try_merge_extent_node()
548 ei = &prev_ex->ei; in __try_merge_extent_node()
552 if (next_ex && __is_front_mergeable(ei, &next_ex->ei, et->type)) { in __try_merge_extent_node()
553 next_ex->ei.fofs = ei->fofs; in __try_merge_extent_node()
554 next_ex->ei.len += ei->len; in __try_merge_extent_node()
556 next_ex->ei.blk = ei->blk; in __try_merge_extent_node()
578 struct extent_tree *et, struct extent_info *ei, in __insert_extent_tree() argument
601 if (ei->fofs < en->ei.fofs) { in __insert_extent_tree()
603 } else if (ei->fofs >= en->ei.fofs + en->ei.len) { in __insert_extent_tree()
612 en = __attach_extent_node(sbi, et, ei, parent, p, leftmost); in __insert_extent_tree()
657 struct extent_info ei, dei, prev; in __update_extent_tree_range() local
702 while (en && en->ei.fofs < end) { in __update_extent_tree_range()
708 dei = en->ei; in __update_extent_tree_range()
714 en->ei.len = fofs - en->ei.fofs; in __update_extent_tree_range()
724 __set_extent_info(&ei, in __update_extent_tree_range()
729 en1 = __insert_extent_tree(sbi, et, &ei, in __update_extent_tree_range()
733 __set_extent_info(&en->ei, in __update_extent_tree_range()
734 end, en->ei.len - (end - dei.fofs), in __update_extent_tree_range()
735 en->ei.blk + (end - dei.fofs), true, in __update_extent_tree_range()
774 __set_extent_info(&ei, fofs, len, tei->blk, false, in __update_extent_tree_range()
776 if (!__try_merge_extent_node(sbi, et, &ei, prev_en, next_en)) in __update_extent_tree_range()
777 __insert_extent_tree(sbi, et, &ei, in __update_extent_tree_range()
799 __set_extent_info(&ei, fofs, len, 0, false, in __update_extent_tree_range()
801 if (!__try_merge_extent_node(sbi, et, &ei, prev_en, next_en)) in __update_extent_tree_range()
802 __insert_extent_tree(sbi, et, &ei, in __update_extent_tree_range()
823 struct extent_info ei; in f2fs_update_read_extent_tree_range_compressed() local
844 __set_extent_info(&ei, fofs, llen, blkaddr, true, 0, 0, EX_READ); in f2fs_update_read_extent_tree_range_compressed()
845 ei.c_len = c_len; in f2fs_update_read_extent_tree_range_compressed()
847 if (!__try_merge_extent_node(sbi, et, &ei, prev_en, next_en)) in f2fs_update_read_extent_tree_range_compressed()
848 __insert_extent_tree(sbi, et, &ei, in f2fs_update_read_extent_tree_range_compressed()
875 static int __get_new_block_age(struct inode *inode, struct extent_info *ei, in __get_new_block_age() argument
882 struct extent_info tei = *ei; /* only fofs and len are valid */ in __get_new_block_age()
889 if ((f_size >> PAGE_SHIFT) == ei->fofs && f_size & (PAGE_SIZE - 1) && in __get_new_block_age()
893 if (__lookup_extent_tree(inode, ei->fofs, &tei, EX_BLOCK_AGE)) { in __get_new_block_age()
903 ei->age = __calculate_block_age(sbi, cur_age, tei.age); in __get_new_block_age()
905 ei->age = cur_age; in __get_new_block_age()
906 ei->last_blocks = cur_blocks; in __get_new_block_age()
907 WARN_ON(ei->age > cur_blocks); in __get_new_block_age()
925 ei->age = 0; in __get_new_block_age()
926 ei->last_blocks = cur_blocks; in __get_new_block_age()
932 struct extent_info ei = {}; in __update_extent_cache() local
937 ei.fofs = f2fs_start_bidx_of_node(ofs_of_node(dn->node_folio), dn->inode) + in __update_extent_cache()
939 ei.len = 1; in __update_extent_cache()
943 ei.blk = NULL_ADDR; in __update_extent_cache()
945 ei.blk = dn->data_blkaddr; in __update_extent_cache()
947 if (__get_new_block_age(dn->inode, &ei, dn->data_blkaddr)) in __update_extent_cache()
950 __update_extent_tree_range(dn->inode, &ei, type); in __update_extent_cache()
1034 struct extent_info *ei) in f2fs_lookup_read_extent_cache() argument
1039 return __lookup_extent_tree(inode, pgofs, ei, EX_READ); in f2fs_lookup_read_extent_cache()
1045 struct extent_info ei = {}; in f2fs_lookup_read_extent_cache_block() local
1047 if (!f2fs_lookup_read_extent_cache(inode, index, &ei)) in f2fs_lookup_read_extent_cache_block()
1049 *blkaddr = ei.blk + index - ei.fofs; in f2fs_lookup_read_extent_cache_block()
1061 struct extent_info ei = { in f2fs_update_read_extent_cache_range() local
1070 __update_extent_tree_range(dn->inode, &ei, EX_READ); in f2fs_update_read_extent_cache_range()
1083 struct extent_info *ei) in f2fs_lookup_age_extent_cache() argument
1088 return __lookup_extent_tree(inode, pgofs, ei, EX_BLOCK_AGE); in f2fs_lookup_age_extent_cache()
1099 struct extent_info ei = { in f2fs_update_age_extent_cache_range() local
1107 __update_extent_tree_range(dn->inode, &ei, EX_BLOCK_AGE); in f2fs_update_age_extent_cache_range()