Lines Matching defs:emi

53 	struct ocfs2_extent_map_item *emi;
57 list_for_each_entry(emi, &em->em_list, ei_list) {
58 range = emi->ei_cpos + emi->ei_clusters;
60 if (cpos >= emi->ei_cpos && cpos < range) {
61 list_move(&emi->ei_list, &em->em_list);
63 *ret_emi = emi;
75 struct ocfs2_extent_map_item *emi;
79 __ocfs2_extent_map_lookup(&oi->ip_extent_map, cpos, &emi);
80 if (emi) {
81 coff = cpos - emi->ei_cpos;
82 *phys = emi->ei_phys + coff;
84 *len = emi->ei_clusters - coff;
86 *flags = emi->ei_flags;
91 if (emi == NULL)
102 struct ocfs2_extent_map_item *emi, *n;
109 list_for_each_entry_safe(emi, n, &em->em_list, ei_list) {
110 if (emi->ei_cpos >= cpos) {
112 list_move(&emi->ei_list, &tmp_list);
118 range = emi->ei_cpos + emi->ei_clusters;
121 emi->ei_clusters = cpos - emi->ei_cpos;
126 list_for_each_entry_safe(emi, n, &tmp_list, ei_list) {
127 list_del(&emi->ei_list);
128 kfree(emi);
167 * Try to merge emi with ins. Returns 1 if merge succeeds, zero
170 static int ocfs2_try_to_merge_extent_map(struct ocfs2_extent_map_item *emi,
176 if (ins->ei_phys == (emi->ei_phys + emi->ei_clusters) &&
177 ins->ei_cpos == (emi->ei_cpos + emi->ei_clusters) &&
178 ins->ei_flags == emi->ei_flags) {
179 emi->ei_clusters += ins->ei_clusters;
181 } else if ((ins->ei_phys + ins->ei_clusters) == emi->ei_phys &&
182 (ins->ei_cpos + ins->ei_clusters) == emi->ei_cpos &&
183 ins->ei_flags == emi->ei_flags) {
184 emi->ei_phys = ins->ei_phys;
185 emi->ei_cpos = ins->ei_cpos;
186 emi->ei_clusters += ins->ei_clusters;
195 if (ocfs2_ei_is_contained(emi, ins) ||
196 ocfs2_ei_is_contained(ins, emi)) {
197 ocfs2_copy_emi_fields(emi, ins);
218 struct ocfs2_extent_map_item *emi, *new_emi = NULL;
230 list_for_each_entry(emi, &em->em_list, ei_list) {
231 if (ocfs2_try_to_merge_extent_map(emi, &ins)) {
232 list_move(&emi->ei_list, &em->em_list);
262 emi = list_entry(em->em_list.prev,
264 list_move(&emi->ei_list, &em->em_list);
265 ocfs2_copy_emi_fields(emi, &ins);