Lines Matching refs:entry
190 ext4_xattr_check_names(struct ext4_xattr_entry *entry, void *end, in ext4_xattr_check_names() argument
193 struct ext4_xattr_entry *e = entry; in ext4_xattr_check_names()
202 while (!IS_LAST_ENTRY(entry)) { in ext4_xattr_check_names()
203 if (entry->e_value_size != 0 && in ext4_xattr_check_names()
204 (value_start + le16_to_cpu(entry->e_value_offs) < in ext4_xattr_check_names()
206 value_start + le16_to_cpu(entry->e_value_offs) + in ext4_xattr_check_names()
207 le32_to_cpu(entry->e_value_size) > end)) in ext4_xattr_check_names()
209 entry = EXT4_XATTR_NEXT(entry); in ext4_xattr_check_names()
236 ext4_xattr_check_entry(struct ext4_xattr_entry *entry, size_t size) in ext4_xattr_check_entry() argument
238 size_t value_size = le32_to_cpu(entry->e_value_size); in ext4_xattr_check_entry()
240 if (entry->e_value_block != 0 || value_size > size || in ext4_xattr_check_entry()
241 le16_to_cpu(entry->e_value_offs) + value_size > size) in ext4_xattr_check_entry()
250 struct ext4_xattr_entry *entry; in ext4_xattr_find_entry() local
257 entry = *pentry; in ext4_xattr_find_entry()
258 for (; !IS_LAST_ENTRY(entry); entry = EXT4_XATTR_NEXT(entry)) { in ext4_xattr_find_entry()
259 cmp = name_index - entry->e_name_index; in ext4_xattr_find_entry()
261 cmp = name_len - entry->e_name_len; in ext4_xattr_find_entry()
263 cmp = memcmp(name, entry->e_name, name_len); in ext4_xattr_find_entry()
267 *pentry = entry; in ext4_xattr_find_entry()
268 if (!cmp && ext4_xattr_check_entry(entry, size)) in ext4_xattr_find_entry()
278 struct ext4_xattr_entry *entry; in ext4_xattr_block_get() local
304 entry = BFIRST(bh); in ext4_xattr_block_get()
305 error = ext4_xattr_find_entry(&entry, name_index, name, bh->b_size, 1); in ext4_xattr_block_get()
310 size = le32_to_cpu(entry->e_value_size); in ext4_xattr_block_get()
315 memcpy(buffer, bh->b_data + le16_to_cpu(entry->e_value_offs), in ext4_xattr_block_get()
330 struct ext4_xattr_entry *entry; in ext4_xattr_ibody_get() local
344 entry = IFIRST(header); in ext4_xattr_ibody_get()
346 error = ext4_xattr_check_names(entry, end, entry); in ext4_xattr_ibody_get()
349 error = ext4_xattr_find_entry(&entry, name_index, name, in ext4_xattr_ibody_get()
350 end - (void *)entry, 0); in ext4_xattr_ibody_get()
353 size = le32_to_cpu(entry->e_value_size); in ext4_xattr_ibody_get()
359 le16_to_cpu(entry->e_value_offs), size); in ext4_xattr_ibody_get()
398 ext4_xattr_list_entries(struct dentry *dentry, struct ext4_xattr_entry *entry, in ext4_xattr_list_entries() argument
403 for (; !IS_LAST_ENTRY(entry); entry = EXT4_XATTR_NEXT(entry)) { in ext4_xattr_list_entries()
405 ext4_xattr_handler(entry->e_name_index); in ext4_xattr_list_entries()
409 rest, entry->e_name, in ext4_xattr_list_entries()
410 entry->e_name_len); in ext4_xattr_list_entries()
1230 static void ext4_xattr_shift_entries(struct ext4_xattr_entry *entry, in ext4_xattr_shift_entries() argument
1234 struct ext4_xattr_entry *last = entry; in ext4_xattr_shift_entries()
1259 struct ext4_xattr_entry *entry, *last, *first; in ext4_expand_extra_isize_ea() local
1278 entry = IFIRST(header); in ext4_expand_extra_isize_ea()
1285 base = start = entry; in ext4_expand_extra_isize_ea()
1288 last = entry; in ext4_expand_extra_isize_ea()
1293 entry = IFIRST(header); in ext4_expand_extra_isize_ea()
1294 ext4_xattr_shift_entries(entry, EXT4_I(inode)->i_extra_isize in ext4_expand_extra_isize_ea()
1363 entry = NULL; in ext4_expand_extra_isize_ea()
1372 entry = last; in ext4_expand_extra_isize_ea()
1378 if (entry == NULL) { in ext4_expand_extra_isize_ea()
1380 entry = small_entry; in ext4_expand_extra_isize_ea()
1395 offs = le16_to_cpu(entry->e_value_offs); in ext4_expand_extra_isize_ea()
1396 size = le32_to_cpu(entry->e_value_size); in ext4_expand_extra_isize_ea()
1397 entry_size = EXT4_XATTR_LEN(entry->e_name_len); in ext4_expand_extra_isize_ea()
1398 i.name_index = entry->e_name_index, in ext4_expand_extra_isize_ea()
1400 b_entry_name = kmalloc(entry->e_name_len + 1, GFP_NOFS); in ext4_expand_extra_isize_ea()
1408 memcpy(b_entry_name, entry->e_name, entry->e_name_len); in ext4_expand_extra_isize_ea()
1409 b_entry_name[entry->e_name_len] = '\0'; in ext4_expand_extra_isize_ea()
1425 entry = IFIRST(header); in ext4_expand_extra_isize_ea()
1431 ext4_xattr_shift_entries(entry, EXT4_I(inode)->i_extra_isize - in ext4_expand_extra_isize_ea()
1654 struct ext4_xattr_entry *entry) in ext4_xattr_hash_entry() argument
1657 char *name = entry->e_name; in ext4_xattr_hash_entry()
1660 for (n = 0; n < entry->e_name_len; n++) { in ext4_xattr_hash_entry()
1666 if (entry->e_value_block == 0 && entry->e_value_size != 0) { in ext4_xattr_hash_entry()
1668 le16_to_cpu(entry->e_value_offs)); in ext4_xattr_hash_entry()
1669 for (n = (le32_to_cpu(entry->e_value_size) + in ext4_xattr_hash_entry()
1676 entry->e_hash = cpu_to_le32(hash); in ext4_xattr_hash_entry()
1690 struct ext4_xattr_entry *entry) in ext4_xattr_rehash() argument
1695 ext4_xattr_hash_entry(header, entry); in ext4_xattr_rehash()