Lines Matching defs:ni

19 static inline bool al_is_valid_le(const struct ntfs_inode *ni,
22 if (!le || !ni->attr_list.le || !ni->attr_list.size)
25 return PtrOffset(ni->attr_list.le, le) + le16_to_cpu(le->size) <=
26 ni->attr_list.size;
29 void al_destroy(struct ntfs_inode *ni)
31 run_close(&ni->attr_list.run);
32 kvfree(ni->attr_list.le);
33 ni->attr_list.le = NULL;
34 ni->attr_list.size = 0;
35 ni->attr_list.dirty = false;
44 int ntfs_load_attr_list(struct ntfs_inode *ni, struct ATTRIB *attr)
50 if (ni->attr_list.size)
70 run_init(&ni->attr_list.run);
77 err = run_unpack_ex(&ni->attr_list.run, ni->mi.sbi, ni->mi.rno,
100 err = ntfs_read_run_nb(ni->mi.sbi, &ni->attr_list.run, 0, le,
106 ni->attr_list.size = lsize;
107 ni->attr_list.le = le;
112 ni->attr_list.le = le;
113 al_destroy(ni);
125 struct ATTR_LIST_ENTRY *al_enumerate(struct ntfs_inode *ni,
133 le = ni->attr_list.le;
144 off = PtrOffset(ni->attr_list.le, le);
145 if (off + le_min_size > ni->attr_list.size) {
153 if (sz < le_min_size || off + sz > ni->attr_list.size ||
168 struct ATTR_LIST_ENTRY *al_find_le(struct ntfs_inode *ni,
174 return al_find_ex(ni, le, attr->type, attr_name(attr), attr->name_len,
185 struct ATTR_LIST_ENTRY *al_find_ex(struct ntfs_inode *ni,
193 while ((le = al_enumerate(ni, le))) {
213 name_len, ni->mi.sbi->upcase,
242 static struct ATTR_LIST_ENTRY *al_find_le_to_insert(struct ntfs_inode *ni,
251 while ((le = al_enumerate(ni, prev = le))) {
265 name_len, ni->mi.sbi->upcase,
278 return prev ? Add2Ptr(prev, le16_to_cpu(prev->size)) : ni->attr_list.le;
286 int al_add_le(struct ntfs_inode *ni, enum ATTR_TYPE type, const __le16 *name,
297 typeof(ni->attr_list) *al = &ni->attr_list;
309 le = al_find_le_to_insert(ni, type, name, name_len, svcn);
339 err = attr_set_size(ni, ATTR_LIST, NULL, 0, &al->run, new_size,
351 err = ntfs_sb_write_run(ni->mi.sbi, &al->run, 0, al->le,
364 bool al_remove_le(struct ntfs_inode *ni, struct ATTR_LIST_ENTRY *le)
368 typeof(ni->attr_list) *al = &ni->attr_list;
370 if (!al_is_valid_le(ni, le))
388 bool al_delete_le(struct ntfs_inode *ni, enum ATTR_TYPE type, CLST vcn,
394 typeof(ni->attr_list) *al = &ni->attr_list;
397 le = al_find_ex(ni, NULL, type, name, name_len, &vcn);
411 ni->mi.sbi->upcase, true))
438 int al_update(struct ntfs_inode *ni, int sync)
442 typeof(ni->attr_list) *al = &ni->attr_list;
451 err = attr_set_size(ni, ATTR_LIST, NULL, 0, &al->run, al->size, NULL,
459 err = ntfs_sb_write_run(ni->mi.sbi, &al->run, 0, al->le,
467 ni->mi.dirty = true;