Lines Matching refs:le

20 				  struct ATTR_LIST_ENTRY *le)  in al_is_valid_le()  argument
22 if (!le || !ni->attr_list.le || !ni->attr_list.size) in al_is_valid_le()
25 return PtrOffset(ni->attr_list.le, le) + le16_to_cpu(le->size) <= in al_is_valid_le()
32 kfree(ni->attr_list.le); in al_destroy()
33 ni->attr_list.le = NULL; in al_destroy()
48 void *le = NULL; in ntfs_load_attr_list() local
55 le = kmalloc(al_aligned(lsize), GFP_NOFS); in ntfs_load_attr_list()
56 if (!le) { in ntfs_load_attr_list()
60 memcpy(le, resident_data(attr), lsize); in ntfs_load_attr_list()
78 le = kmalloc(al_aligned(lsize), GFP_NOFS); in ntfs_load_attr_list()
79 if (!le) { in ntfs_load_attr_list()
84 err = ntfs_read_run_nb(ni->mi.sbi, &ni->attr_list.run, 0, le, in ntfs_load_attr_list()
91 ni->attr_list.le = le; in ntfs_load_attr_list()
96 ni->attr_list.le = le; in ntfs_load_attr_list()
110 struct ATTR_LIST_ENTRY *le) in al_enumerate() argument
115 if (!le) { in al_enumerate()
116 le = ni->attr_list.le; in al_enumerate()
118 sz = le16_to_cpu(le->size); in al_enumerate()
123 le = Add2Ptr(le, sz); in al_enumerate()
127 off = PtrOffset(ni->attr_list.le, le); in al_enumerate()
133 sz = le16_to_cpu(le->size); in al_enumerate()
138 sz < le->name_off + le->name_len * sizeof(short)) { in al_enumerate()
142 return le; in al_enumerate()
153 struct ATTR_LIST_ENTRY *le, in al_find_le() argument
158 return al_find_ex(ni, le, attr->type, attr_name(attr), attr->name_len, in al_find_le()
170 struct ATTR_LIST_ENTRY *le, in al_find_ex() argument
177 while ((le = al_enumerate(ni, le))) { in al_find_ex()
179 int diff = le32_to_cpu(le->type) - type_in; in al_find_ex()
188 if (le->name_len != name_len) in al_find_ex()
191 le_vcn = le64_to_cpu(le->vcn); in al_find_ex()
196 diff = ntfs_cmp_names(le_name(le), name_len, name, in al_find_ex()
207 return le; in al_find_ex()
210 return le; in al_find_ex()
215 ret = le; in al_find_ex()
231 struct ATTR_LIST_ENTRY *le = NULL, *prev; in al_find_le_to_insert() local
235 while ((le = al_enumerate(ni, prev = le))) { in al_find_le_to_insert()
236 int diff = le32_to_cpu(le->type) - type_in; in al_find_le_to_insert()
242 return le; in al_find_le_to_insert()
244 if (!le->vcn) { in al_find_le_to_insert()
248 diff = ntfs_cmp_names(le_name(le), le->name_len, name, in al_find_le_to_insert()
255 return le; in al_find_le_to_insert()
258 if (le64_to_cpu(le->vcn) >= vcn) in al_find_le_to_insert()
259 return le; in al_find_le_to_insert()
262 return prev ? Add2Ptr(prev, le16_to_cpu(prev->size)) : ni->attr_list.le; in al_find_le_to_insert()
276 struct ATTR_LIST_ENTRY *le; in al_add_le() local
293 le = al_find_le_to_insert(ni, type, name, name_len, svcn); in al_add_le()
294 off = PtrOffset(al->le, le); in al_add_le()
302 memcpy(ptr, al->le, off); in al_add_le()
303 memcpy(Add2Ptr(ptr, off + sz), le, old_size - off); in al_add_le()
304 le = Add2Ptr(ptr, off); in al_add_le()
305 kfree(al->le); in al_add_le()
306 al->le = ptr; in al_add_le()
308 memmove(Add2Ptr(le, sz), le, old_size - off); in al_add_le()
310 *new_le = le; in al_add_le()
314 le->type = type; in al_add_le()
315 le->size = cpu_to_le16(sz); in al_add_le()
316 le->name_len = name_len; in al_add_le()
317 le->name_off = offsetof(struct ATTR_LIST_ENTRY, name); in al_add_le()
318 le->vcn = cpu_to_le64(svcn); in al_add_le()
319 le->ref = *ref; in al_add_le()
320 le->id = id; in al_add_le()
321 memcpy(le->name, name, sizeof(short) * name_len); in al_add_le()
327 memmove(le, Add2Ptr(le, sz), old_size - off); in al_add_le()
335 err = ntfs_sb_write_run(ni->mi.sbi, &al->run, 0, al->le, in al_add_le()
348 bool al_remove_le(struct ntfs_inode *ni, struct ATTR_LIST_ENTRY *le) in al_remove_le() argument
354 if (!al_is_valid_le(ni, le)) in al_remove_le()
358 size = le16_to_cpu(le->size); in al_remove_le()
359 off = PtrOffset(al->le, le); in al_remove_le()
361 memmove(le, Add2Ptr(le, size), al->size - (off + size)); in al_remove_le()
377 struct ATTR_LIST_ENTRY *le; in al_delete_le() local
382 le = al_find_ex(ni, NULL, type, name, name_len, &vcn); in al_delete_le()
383 if (!le) in al_delete_le()
386 off = PtrOffset(al->le, le); in al_delete_le()
391 if (le->type != type) in al_delete_le()
393 if (le->name_len != name_len) in al_delete_le()
395 if (name_len && ntfs_cmp_names(le_name(le), name_len, name, name_len, in al_delete_le()
398 if (le64_to_cpu(le->vcn) != vcn) in al_delete_le()
406 if (ref && memcmp(ref, &le->ref, sizeof(*ref))) { in al_delete_le()
407 off += le16_to_cpu(le->size); in al_delete_le()
408 le = Add2Ptr(al->le, off); in al_delete_le()
413 size = le16_to_cpu(le->size); in al_delete_le()
415 memmove(le, Add2Ptr(le, size), al->size - (off + size)); in al_delete_le()
442 memcpy(resident_data(attr), al->le, al->size); in al_update()
444 err = ntfs_sb_write_run(ni->mi.sbi, &al->run, 0, al->le, in al_update()