Lines Matching refs:ie
32 struct ntfs_volume *vol, const struct index_entry *ie, in ntfs_index_entry_inconsistent() argument
55 if (ie_start > (u8 *)ie || in ntfs_index_entry_inconsistent()
56 ie_end <= (u8 *)ie + le16_to_cpu(ie->length) || in ntfs_index_entry_inconsistent()
57 le16_to_cpu(ie->length) > le32_to_cpu(ih->allocated_size) || in ntfs_index_entry_inconsistent()
58 le16_to_cpu(ie->length) > icx->block_size) { in ntfs_index_entry_inconsistent()
66 if (ie->key_length && in ntfs_index_entry_inconsistent()
67 ((le16_to_cpu(ie->key_length) + offsetof(struct index_entry, key)) > in ntfs_index_entry_inconsistent()
68 le16_to_cpu(ie->length))) { in ntfs_index_entry_inconsistent()
76 ie->key.file_name.file_name_length * sizeof(__le16)) > in ntfs_index_entry_inconsistent()
77 le16_to_cpu(ie->length)) { in ntfs_index_entry_inconsistent()
84 if (ie->data.vi.data_length && in ntfs_index_entry_inconsistent()
85 ((le16_to_cpu(ie->data.vi.data_offset) + in ntfs_index_entry_inconsistent()
86 le16_to_cpu(ie->data.vi.data_length)) > in ntfs_index_entry_inconsistent()
87 le16_to_cpu(ie->length))) { in ntfs_index_entry_inconsistent()
273 static __le64 *ntfs_ie_get_vcn_addr(struct index_entry *ie) in ntfs_ie_get_vcn_addr() argument
275 return (__le64 *)((u8 *)ie + le16_to_cpu(ie->length) - sizeof(s64)); in ntfs_ie_get_vcn_addr()
281 static s64 ntfs_ie_get_vcn(struct index_entry *ie) in ntfs_ie_get_vcn() argument
283 return le64_to_cpup(ntfs_ie_get_vcn_addr(ie)); in ntfs_ie_get_vcn()
291 static struct index_entry *ntfs_ie_get_next(struct index_entry *ie) in ntfs_ie_get_next() argument
293 return (struct index_entry *)((char *)ie + le16_to_cpu(ie->length)); in ntfs_ie_get_next()
301 static int ntfs_ie_end(struct index_entry *ie) in ntfs_ie_end() argument
303 return ie->flags & INDEX_ENTRY_END || !ie->length; in ntfs_ie_end()
309 static struct index_entry *ntfs_ie_get_last(struct index_entry *ie, char *ies_end) in ntfs_ie_get_last() argument
313 while ((char *)ie < ies_end && !ntfs_ie_end(ie)) in ntfs_ie_get_last()
314 ie = ntfs_ie_get_next(ie); in ntfs_ie_get_last()
316 return ie; in ntfs_ie_get_last()
321 struct index_entry *ie; in ntfs_ie_get_by_pos() local
325 ie = ntfs_ie_get_first(ih); in ntfs_ie_get_by_pos()
328 ie = ntfs_ie_get_next(ie); in ntfs_ie_get_by_pos()
330 return ie; in ntfs_ie_get_by_pos()
333 static struct index_entry *ntfs_ie_prev(struct index_header *ih, struct index_entry *ie) in ntfs_ie_prev() argument
342 while (tmp != ie) { in ntfs_ie_prev()
353 struct index_entry *ie; in ntfs_ih_numof_entries() local
359 ie = ntfs_ie_get_first(ih); in ntfs_ih_numof_entries()
360 for (n = 0; !ntfs_ie_end(ie) && (u8 *)ie < end; n++) in ntfs_ih_numof_entries()
361 ie = ntfs_ie_get_next(ie); in ntfs_ih_numof_entries()
375 static void ntfs_ie_delete(struct index_header *ih, struct index_entry *ie) in ntfs_ie_delete() argument
381 new_size = le32_to_cpu(ih->index_length) - le16_to_cpu(ie->length); in ntfs_ie_delete()
383 memmove(ie, (u8 *)ie + le16_to_cpu(ie->length), in ntfs_ie_delete()
384 new_size - ((u8 *)ie - (u8 *)ih)); in ntfs_ie_delete()
387 static void ntfs_ie_set_vcn(struct index_entry *ie, s64 vcn) in ntfs_ie_set_vcn() argument
389 *ntfs_ie_get_vcn_addr(ie) = cpu_to_le64(vcn); in ntfs_ie_set_vcn()
395 static void ntfs_ie_insert(struct index_header *ih, struct index_entry *ie, in ntfs_ie_insert() argument
398 int ie_size = le16_to_cpu(ie->length); in ntfs_ie_insert()
405 memcpy(pos, ie, ie_size); in ntfs_ie_insert()
408 static struct index_entry *ntfs_ie_dup(struct index_entry *ie) in ntfs_ie_dup() argument
412 return kmemdup(ie, le16_to_cpu(ie->length), GFP_NOFS); in ntfs_ie_dup()
415 static struct index_entry *ntfs_ie_dup_novcn(struct index_entry *ie) in ntfs_ie_dup_novcn() argument
418 int size = le16_to_cpu(ie->length); in ntfs_ie_dup_novcn()
422 if (ie->flags & INDEX_ENTRY_NODE) in ntfs_ie_dup_novcn()
425 dup = kmemdup(ie, size, GFP_NOFS); in ntfs_ie_dup_novcn()
557 struct index_entry *ie; in ntfs_ie_lookup() local
569 for (ie = ntfs_ie_get_first(ih); ; ie = ntfs_ie_get_next(ie)) { in ntfs_ie_lookup()
571 if ((u8 *)ie + sizeof(struct index_entry_header) > index_end || in ntfs_ie_lookup()
572 (u8 *)ie + le16_to_cpu(ie->length) > index_end) { in ntfs_ie_lookup()
583 if (ntfs_ie_end(ie)) in ntfs_ie_lookup()
590 rc = ntfs_collate(icx->idx_ni->vol, icx->cr, key, key_len, &ie->key, in ntfs_ie_lookup()
591 le16_to_cpu(ie->key_length)); in ntfs_ie_lookup()
606 *ie_out = ie; in ntfs_ie_lookup()
618 if (!(ie->flags & INDEX_ENTRY_NODE)) { in ntfs_ie_lookup()
620 *ie_out = ie; in ntfs_ie_lookup()
625 *vcn = ntfs_ie_get_vcn(ie); in ntfs_ie_lookup()
733 struct index_entry *ie; in ntfs_index_lookup() local
771 err = ntfs_ie_lookup(key, key_len, icx, &ir->index, &vcn, &ie); in ntfs_index_lookup()
809 err = ntfs_ie_lookup(key, key_len, icx, &ib->index, &vcn, &ie); in ntfs_index_lookup()
838 icx->entry = ie; in ntfs_index_lookup()
839 icx->data = (u8 *)ie + offsetof(struct index_entry, key); in ntfs_index_lookup()
840 icx->data_len = le16_to_cpu(ie->key_length); in ntfs_index_lookup()
880 struct index_entry *ie, *ie_start; in ntfs_ie_get_median() local
886 ie = ie_start = ntfs_ie_get_first(ih); in ntfs_ie_get_median()
889 while ((u8 *)ie < ie_end && !ntfs_ie_end(ie)) { in ntfs_ie_get_median()
890 ie = ntfs_ie_get_next(ie); in ntfs_ie_get_median()
900 for (i = 0, ie = ie_start; i <= median; i++) in ntfs_ie_get_median()
901 ie = ntfs_ie_get_next(ie); in ntfs_ie_get_median()
903 return ie; in ntfs_ie_get_median()
1118 struct index_entry *ie) in ntfs_ib_cut_tail() argument
1131 ntfs_ie_set_vcn(ie_last, ntfs_ie_get_vcn(ie)); in ntfs_ib_cut_tail()
1133 unsafe_memcpy(ie, ie_last, le16_to_cpu(ie_last->length), in ntfs_ib_cut_tail()
1136 ib->index.index_length = cpu_to_le32(((char *)ie - ies_start) + in ntfs_ib_cut_tail()
1137 le16_to_cpu(ie->length) + le32_to_cpu(ib->index.entries_offset)); in ntfs_ib_cut_tail()
1173 struct index_entry *ie; in ntfs_ir_reparent() local
1225 ie = ntfs_ie_get_first(&ir->index); in ntfs_ir_reparent()
1226 ie->flags |= INDEX_ENTRY_NODE; in ntfs_ir_reparent()
1227 ie->length = cpu_to_le16(sizeof(struct index_entry_header) + sizeof(s64)); in ntfs_ir_reparent()
1232 le16_to_cpu(ie->length)); in ntfs_ir_reparent()
1262 ntfs_ie_set_vcn(ie, new_ib_vcn); in ntfs_ir_reparent()
1330 static int ntfs_ie_add_vcn(struct index_entry **ie) in ntfs_ie_add_vcn() argument
1332 struct index_entry *p, *old = *ie; in ntfs_ie_add_vcn()
1340 *ie = p; in ntfs_ie_add_vcn()
1347 struct index_entry *ie_node, *ie; in ntfs_ih_insert() local
1352 ie = ntfs_ie_dup(orig_ie); in ntfs_ih_insert()
1353 if (!ie) in ntfs_ih_insert()
1356 if (!(ie->flags & INDEX_ENTRY_NODE)) { in ntfs_ih_insert()
1357 ret = ntfs_ie_add_vcn(&ie); in ntfs_ih_insert()
1366 ntfs_ie_insert(ih, ie, ie_node); in ntfs_ih_insert()
1369 kfree(ie); in ntfs_ih_insert()
1420 static int ntfs_ib_insert(struct ntfs_index_context *icx, struct index_entry *ie, s64 new_vcn, in ntfs_ib_insert() argument
1442 if (idx_size + le16_to_cpu(ie->length) + sizeof(s64) > allocated_size) { in ntfs_ib_insert()
1448 err = ntfs_ih_insert(&ib->index, ie, new_vcn, ntfs_icx_parent_pos(icx)); in ntfs_ib_insert()
1536 int ntfs_ie_add(struct ntfs_index_context *icx, struct index_entry *ie) in ntfs_ie_add() argument
1543 ret = ntfs_index_lookup(&ie->key, le16_to_cpu(ie->key_length), icx); in ntfs_ie_add()
1561 new_size = le32_to_cpu(ih->index_length) + le16_to_cpu(ie->length); in ntfs_ie_add()
1580 ntfs_ie_insert(ih, ie, icx->entry); in ntfs_ie_add()
1596 struct index_entry *ie; in ntfs_index_add_filename() local
1609 ie = kzalloc(ie_size, GFP_NOFS); in ntfs_index_add_filename()
1610 if (!ie) in ntfs_index_add_filename()
1613 ie->data.dir.indexed_file = cpu_to_le64(mref); in ntfs_index_add_filename()
1614 ie->length = cpu_to_le16(ie_size); in ntfs_index_add_filename()
1615 ie->key_length = cpu_to_le16(fn_size); in ntfs_index_add_filename()
1617 unsafe_memcpy(&ie->key, fn, fn_size, in ntfs_index_add_filename()
1626 err = ntfs_ie_add(icx, ie); in ntfs_index_add_filename()
1629 kfree(ie); in ntfs_index_add_filename()
1634 struct index_entry *ie, struct index_block *ib) in ntfs_ih_takeout() argument
1644 ie_roam = ntfs_ie_dup_novcn(ie); in ntfs_ih_takeout()
1648 ntfs_ie_delete(ih, ie); in ntfs_ih_takeout()
1683 struct index_entry *ie; in ntfs_ir_leafify() local
1687 ie = ntfs_ie_get_first(ih); in ntfs_ir_leafify()
1688 ie->flags &= ~INDEX_ENTRY_NODE; in ntfs_ir_leafify()
1689 ie->length = cpu_to_le16(le16_to_cpu(ie->length) - sizeof(s64)); in ntfs_ir_leafify()
1706 struct index_entry *ie, *ie_prev; in ntfs_ih_reparent_end() local
1710 ie = ntfs_ie_get_by_pos(ih, ntfs_icx_parent_pos(icx)); in ntfs_ih_reparent_end()
1711 ie_prev = ntfs_ie_prev(ih, ie); in ntfs_ih_reparent_end()
1714 ntfs_ie_set_vcn(ie, ntfs_ie_get_vcn(ie_prev)); in ntfs_ih_reparent_end()
1723 struct index_entry *ie; in ntfs_index_rm_leaf() local
1750 ie = ntfs_ie_get_by_pos(parent_ih, ntfs_icx_parent_pos(icx)); in ntfs_index_rm_leaf()
1751 if (!ntfs_ie_end(ie)) { in ntfs_index_rm_leaf()
1752 ret = ntfs_ih_takeout(icx, parent_ih, ie, ib); in ntfs_index_rm_leaf()
1777 struct index_entry *ie_succ, *ie, *entry = icx->entry; in ntfs_index_rm_node() local
1821 ie = ntfs_ie_dup(ie_succ); in ntfs_index_rm_node()
1822 if (!ie) { in ntfs_index_rm_node()
1827 ret = ntfs_ie_add_vcn(&ie); in ntfs_index_rm_node()
1831 ntfs_ie_set_vcn(ie, ntfs_ie_get_vcn(icx->entry)); in ntfs_index_rm_node()
1838 delta = le16_to_cpu(ie->length) - le16_to_cpu(icx->entry->length); in ntfs_index_rm_node()
1859 ntfs_ie_insert(ih, ie, entry); in ntfs_index_rm_node()
1876 kfree(ie); in ntfs_index_rm_node()
1969 struct index_entry *ntfs_index_walk_down(struct index_entry *ie, struct ntfs_index_context *ictx) in ntfs_index_walk_down() argument
1976 entry = ie; in ntfs_index_walk_down()
2018 static struct index_entry *ntfs_index_walk_up(struct index_entry *ie, in ntfs_index_walk_up() argument
2021 struct index_entry *entry = ie; in ntfs_index_walk_up()
2088 struct index_entry *ntfs_index_next(struct index_entry *ie, struct ntfs_index_context *ictx) in ntfs_index_next() argument
2098 if (ie->flags & INDEX_ENTRY_END) in ntfs_index_next()
2099 next = ntfs_index_walk_up(ie, ictx); in ntfs_index_next()
2105 next = (struct index_entry *)((char *)ie + le16_to_cpu(ie->length)); in ntfs_index_next()