Lines Matching full:de
283 static int dx_make_map(struct inode *dir, struct ext4_dir_entry_2 *de,
623 struct ext4_dir_entry_2 *de, in dx_show_leaf() argument
627 char *base = (char *) de; in dx_show_leaf()
631 while ((char *) de < base + size) in dx_show_leaf()
633 if (de->inode) in dx_show_leaf()
644 name = de->name; in dx_show_leaf()
645 len = de->name_len; in dx_show_leaf()
654 ext4fs_dirhash(dir, de->name, in dx_show_leaf()
655 de->name_len, &h); in dx_show_leaf()
658 (unsigned) ((char *) de in dx_show_leaf()
686 ext4fs_dirhash(dir, de->name, in dx_show_leaf()
687 de->name_len, &h); in dx_show_leaf()
689 h.hash, (unsigned) ((char *) de in dx_show_leaf()
695 int len = de->name_len; in dx_show_leaf()
696 char *name = de->name; in dx_show_leaf()
697 ext4fs_dirhash(dir, de->name, de->name_len, &h); in dx_show_leaf()
699 (unsigned) ((char *) de - base)); in dx_show_leaf()
702 space += EXT4_DIR_REC_LEN(de->name_len); in dx_show_leaf()
705 de = ext4_next_entry(de, size); in dx_show_leaf()
997 struct ext4_dir_entry_2 *de, *top; in htree_dirblock_to_tree() local
1007 de = (struct ext4_dir_entry_2 *) bh->b_data; in htree_dirblock_to_tree()
1008 top = (struct ext4_dir_entry_2 *) ((char *) de + in htree_dirblock_to_tree()
1026 for (; de < top; de = ext4_next_entry(de, dir->i_sb->s_blocksize)) { in htree_dirblock_to_tree()
1027 if (ext4_check_dir_entry(dir, NULL, de, bh, in htree_dirblock_to_tree()
1030 + ((char *)de - bh->b_data))) { in htree_dirblock_to_tree()
1034 ext4fs_dirhash(dir, de->name, de->name_len, hinfo); in htree_dirblock_to_tree()
1039 if (de->inode == 0) in htree_dirblock_to_tree()
1042 tmp_str.name = de->name; in htree_dirblock_to_tree()
1043 tmp_str.len = de->name_len; in htree_dirblock_to_tree()
1045 hinfo->hash, hinfo->minor_hash, de, in htree_dirblock_to_tree()
1049 struct fscrypt_str de_name = FSTR_INIT(de->name, in htree_dirblock_to_tree()
1050 de->name_len); in htree_dirblock_to_tree()
1061 hinfo->hash, hinfo->minor_hash, de, in htree_dirblock_to_tree()
1090 struct ext4_dir_entry_2 *de; in ext4_htree_fill_tree() local
1132 de = (struct ext4_dir_entry_2 *) frames[0].bh->b_data; in ext4_htree_fill_tree()
1133 tmp_str.name = de->name; in ext4_htree_fill_tree()
1134 tmp_str.len = de->name_len; in ext4_htree_fill_tree()
1136 de, &tmp_str); in ext4_htree_fill_tree()
1142 de = (struct ext4_dir_entry_2 *) frames[0].bh->b_data; in ext4_htree_fill_tree()
1143 de = ext4_next_entry(de, dir->i_sb->s_blocksize); in ext4_htree_fill_tree()
1144 tmp_str.name = de->name; in ext4_htree_fill_tree()
1145 tmp_str.len = de->name_len; in ext4_htree_fill_tree()
1147 de, &tmp_str); in ext4_htree_fill_tree()
1211 static int dx_make_map(struct inode *dir, struct ext4_dir_entry_2 *de, in dx_make_map() argument
1216 char *base = (char *) de; in dx_make_map()
1219 while ((char *) de < base + blocksize) { in dx_make_map()
1220 if (de->name_len && de->inode) { in dx_make_map()
1221 ext4fs_dirhash(dir, de->name, de->name_len, &h); in dx_make_map()
1224 map_tail->offs = ((char *) de - base)>>2; in dx_make_map()
1225 map_tail->size = le16_to_cpu(de->rec_len); in dx_make_map()
1230 de = ext4_next_entry(de, blocksize); in dx_make_map()
1347 const struct ext4_dir_entry_2 *de) in ext4_match() argument
1351 const struct qstr entry = {.name = de->name, .len = de->name_len}; in ext4_match()
1354 if (!de->inode) in ext4_match()
1375 return fscrypt_match_name(&f, de->name, de->name_len); in ext4_match()
1385 struct ext4_dir_entry_2 * de; in ext4_search_dir() local
1389 de = (struct ext4_dir_entry_2 *)search_buf; in ext4_search_dir()
1391 while ((char *) de < dlimit) { in ext4_search_dir()
1394 if ((char *) de + de->name_len <= dlimit && in ext4_search_dir()
1395 ext4_match(dir, fname, de)) { in ext4_search_dir()
1398 if (ext4_check_dir_entry(dir, NULL, de, bh, search_buf, in ext4_search_dir()
1401 *res_dir = de; in ext4_search_dir()
1405 de_len = ext4_rec_len_from_disk(de->rec_len, in ext4_search_dir()
1410 de = (struct ext4_dir_entry_2 *) ((char *) de + de_len); in ext4_search_dir()
1416 struct ext4_dir_entry *de) in is_dx_internal_node() argument
1424 if (de->inode == 0 && in is_dx_internal_node()
1425 ext4_rec_len_from_disk(de->rec_len, sb->s_blocksize) == in is_dx_internal_node()
1684 struct ext4_dir_entry_2 *de; in ext4_lookup() local
1690 bh = ext4_lookup_entry(dir, dentry, &de); in ext4_lookup()
1695 __u32 ino = le32_to_cpu(de->inode); in ext4_lookup()
1742 struct ext4_dir_entry_2 * de; in ext4_get_parent() local
1745 bh = ext4_find_entry(d_inode(child), &dotdot, &de, NULL); in ext4_get_parent()
1750 ino = le32_to_cpu(de->inode); in ext4_get_parent()
1773 struct ext4_dir_entry_2 *de = (struct ext4_dir_entry_2 *) in dx_move_dirents() local
1775 rec_len = EXT4_DIR_REC_LEN(de->name_len); in dx_move_dirents()
1776 memcpy (to, de, rec_len); in dx_move_dirents()
1779 de->inode = 0; in dx_move_dirents()
1792 struct ext4_dir_entry_2 *next, *to, *prev, *de = (struct ext4_dir_entry_2 *) base; in dx_pack_dirents() local
1795 prev = to = de; in dx_pack_dirents()
1796 while ((char*)de < base + blocksize) { in dx_pack_dirents()
1797 next = ext4_next_entry(de, blocksize); in dx_pack_dirents()
1798 if (de->inode && de->name_len) { in dx_pack_dirents()
1799 rec_len = EXT4_DIR_REC_LEN(de->name_len); in dx_pack_dirents()
1800 if (de > to) in dx_pack_dirents()
1801 memmove(to, de, rec_len); in dx_pack_dirents()
1806 de = next; in dx_pack_dirents()
1814 * Returns pointer to de in block into which the new entry will be inserted.
1828 struct ext4_dir_entry_2 *de = NULL, *de2; in do_split() local
1891 de = dx_pack_dirents(data1, blocksize); in do_split()
1892 de->rec_len = ext4_rec_len_to_disk(data1 + (blocksize - csum_size) - in do_split()
1893 (char *) de, in do_split()
1911 de = de2; in do_split()
1922 return de; in do_split()
1938 struct ext4_dir_entry_2 *de; in ext4_find_dest_de() local
1944 de = (struct ext4_dir_entry_2 *)buf; in ext4_find_dest_de()
1946 while ((char *) de <= top) { in ext4_find_dest_de()
1947 if (ext4_check_dir_entry(dir, NULL, de, bh, in ext4_find_dest_de()
1950 if (ext4_match(dir, fname, de)) in ext4_find_dest_de()
1952 nlen = EXT4_DIR_REC_LEN(de->name_len); in ext4_find_dest_de()
1953 rlen = ext4_rec_len_from_disk(de->rec_len, buf_size); in ext4_find_dest_de()
1954 if ((de->inode ? rlen - nlen : rlen) >= reclen) in ext4_find_dest_de()
1956 de = (struct ext4_dir_entry_2 *)((char *)de + rlen); in ext4_find_dest_de()
1959 if ((char *) de > top) in ext4_find_dest_de()
1962 *dest_de = de; in ext4_find_dest_de()
1967 struct ext4_dir_entry_2 *de, in ext4_insert_dentry() argument
1974 nlen = EXT4_DIR_REC_LEN(de->name_len); in ext4_insert_dentry()
1975 rlen = ext4_rec_len_from_disk(de->rec_len, buf_size); in ext4_insert_dentry()
1976 if (de->inode) { in ext4_insert_dentry()
1978 (struct ext4_dir_entry_2 *)((char *)de + nlen); in ext4_insert_dentry()
1980 de->rec_len = ext4_rec_len_to_disk(nlen, buf_size); in ext4_insert_dentry()
1981 de = de1; in ext4_insert_dentry()
1983 de->file_type = EXT4_FT_UNKNOWN; in ext4_insert_dentry()
1984 de->inode = cpu_to_le32(inode->i_ino); in ext4_insert_dentry()
1985 ext4_set_de_type(inode->i_sb, de, inode->i_mode); in ext4_insert_dentry()
1986 de->name_len = fname_len(fname); in ext4_insert_dentry()
1987 memcpy(de->name, fname_name(fname), fname_len(fname)); in ext4_insert_dentry()
1991 * Add a new entry into a directory (leaf) block. If de is non-NULL,
1993 * enough for new directory entry. If de is NULL, then
2000 struct inode *inode, struct ext4_dir_entry_2 *de, in add_dirent_to_buf() argument
2010 if (!de) { in add_dirent_to_buf()
2012 blocksize - csum_size, fname, &de); in add_dirent_to_buf()
2024 ext4_insert_dentry(inode, de, blocksize, fname); in add_dirent_to_buf()
2060 struct ext4_dir_entry_2 *de, *de2; in make_indexed_dir() local
2085 de = (struct ext4_dir_entry_2 *)((char *)fde + in make_indexed_dir()
2087 if ((char *) de >= (((char *) root) + blocksize)) { in make_indexed_dir()
2092 len = ((char *) root) + (blocksize - csum_size) - (char *) de; in make_indexed_dir()
2103 memcpy(data2, de, len); in make_indexed_dir()
2104 de = (struct ext4_dir_entry_2 *) data2; in make_indexed_dir()
2106 while ((char *)(de2 = ext4_next_entry(de, blocksize)) < top) in make_indexed_dir()
2107 de = de2; in make_indexed_dir()
2108 de->rec_len = ext4_rec_len_to_disk(data2 + (blocksize - csum_size) - in make_indexed_dir()
2109 (char *) de, blocksize); in make_indexed_dir()
2115 de = (struct ext4_dir_entry_2 *) (&root->dotdot); in make_indexed_dir()
2116 de->rec_len = ext4_rec_len_to_disk(blocksize - EXT4_DIR_REC_LEN(2), in make_indexed_dir()
2146 de = do_split(handle,dir, &bh2, frame, &fname->hinfo); in make_indexed_dir()
2147 if (IS_ERR(de)) { in make_indexed_dir()
2148 retval = PTR_ERR(de); in make_indexed_dir()
2152 retval = add_dirent_to_buf(handle, fname, dir, inode, de, bh2); in make_indexed_dir()
2172 * NOTE!! The inode part of 'de' is left at 0 - which means you
2181 struct ext4_dir_entry_2 *de; in ext4_add_entry() local
2269 de = (struct ext4_dir_entry_2 *) bh->b_data; in ext4_add_entry()
2270 de->inode = 0; in ext4_add_entry()
2271 de->rec_len = ext4_rec_len_to_disk(blocksize - csum_size, blocksize); in ext4_add_entry()
2276 retval = add_dirent_to_buf(handle, &fname, dir, inode, de, bh); in ext4_add_entry()
2295 struct ext4_dir_entry_2 *de; in ext4_dx_add_entry() local
2438 de = do_split(handle, dir, &bh, frame, &fname->hinfo); in ext4_dx_add_entry()
2439 if (IS_ERR(de)) { in ext4_dx_add_entry()
2440 err = PTR_ERR(de); in ext4_dx_add_entry()
2443 err = add_dirent_to_buf(handle, fname, dir, inode, de, bh); in ext4_dx_add_entry()
2470 struct ext4_dir_entry_2 *de, *pde; in ext4_generic_delete_entry() local
2476 de = (struct ext4_dir_entry_2 *)entry_buf; in ext4_generic_delete_entry()
2478 if (ext4_check_dir_entry(dir, NULL, de, bh, in ext4_generic_delete_entry()
2481 if (de == de_del) { in ext4_generic_delete_entry()
2486 ext4_rec_len_from_disk(de->rec_len, in ext4_generic_delete_entry()
2490 de->inode = 0; in ext4_generic_delete_entry()
2494 i += ext4_rec_len_from_disk(de->rec_len, blocksize); in ext4_generic_delete_entry()
2495 pde = de; in ext4_generic_delete_entry()
2496 de = ext4_next_entry(de, blocksize); in ext4_generic_delete_entry()
2715 struct ext4_dir_entry_2 *de, in ext4_init_dot_dotdot() argument
2719 de->inode = cpu_to_le32(inode->i_ino); in ext4_init_dot_dotdot()
2720 de->name_len = 1; in ext4_init_dot_dotdot()
2721 de->rec_len = ext4_rec_len_to_disk(EXT4_DIR_REC_LEN(de->name_len), in ext4_init_dot_dotdot()
2723 strcpy(de->name, "."); in ext4_init_dot_dotdot()
2724 ext4_set_de_type(inode->i_sb, de, S_IFDIR); in ext4_init_dot_dotdot()
2726 de = ext4_next_entry(de, blocksize); in ext4_init_dot_dotdot()
2727 de->inode = cpu_to_le32(parent_ino); in ext4_init_dot_dotdot()
2728 de->name_len = 2; in ext4_init_dot_dotdot()
2730 de->rec_len = ext4_rec_len_to_disk(blocksize - in ext4_init_dot_dotdot()
2734 de->rec_len = ext4_rec_len_to_disk( in ext4_init_dot_dotdot()
2735 EXT4_DIR_REC_LEN(de->name_len), blocksize); in ext4_init_dot_dotdot()
2736 strcpy(de->name, ".."); in ext4_init_dot_dotdot()
2737 ext4_set_de_type(inode->i_sb, de, S_IFDIR); in ext4_init_dot_dotdot()
2739 return ext4_next_entry(de, blocksize); in ext4_init_dot_dotdot()
2746 struct ext4_dir_entry_2 *de; in ext4_init_new_dir() local
2767 de = (struct ext4_dir_entry_2 *)dir_block->b_data; in ext4_init_new_dir()
2768 ext4_init_dot_dotdot(inode, de, blocksize, csum_size, dir->i_ino, 0); in ext4_init_new_dir()
2854 struct ext4_dir_entry_2 *de; in ext4_empty_dir() local
2878 de = (struct ext4_dir_entry_2 *) bh->b_data; in ext4_empty_dir()
2879 if (ext4_check_dir_entry(inode, NULL, de, bh, bh->b_data, bh->b_size, in ext4_empty_dir()
2881 le32_to_cpu(de->inode) != inode->i_ino || strcmp(".", de->name)) { in ext4_empty_dir()
2886 offset = ext4_rec_len_from_disk(de->rec_len, sb->s_blocksize); in ext4_empty_dir()
2887 de = ext4_next_entry(de, sb->s_blocksize); in ext4_empty_dir()
2888 if (ext4_check_dir_entry(inode, NULL, de, bh, bh->b_data, bh->b_size, in ext4_empty_dir()
2890 le32_to_cpu(de->inode) == 0 || strcmp("..", de->name)) { in ext4_empty_dir()
2895 offset += ext4_rec_len_from_disk(de->rec_len, sb->s_blocksize); in ext4_empty_dir()
2909 de = (struct ext4_dir_entry_2 *) (bh->b_data + in ext4_empty_dir()
2911 if (ext4_check_dir_entry(inode, NULL, de, bh, in ext4_empty_dir()
2916 if (le32_to_cpu(de->inode)) { in ext4_empty_dir()
2920 offset += ext4_rec_len_from_disk(de->rec_len, sb->s_blocksize); in ext4_empty_dir()
3105 struct ext4_dir_entry_2 *de; in ext4_rmdir() local
3121 bh = ext4_find_entry(dir, &dentry->d_name, &de, NULL); in ext4_rmdir()
3130 if (le32_to_cpu(de->inode) != inode->i_ino) in ext4_rmdir()
3148 retval = ext4_delete_entry(handle, dir, de, bh); in ext4_rmdir()
3195 struct ext4_dir_entry_2 *de; in __ext4_unlink() local
3198 bh = ext4_find_entry(dir, d_name, &de, NULL); in __ext4_unlink()
3205 if (le32_to_cpu(de->inode) != inode->i_ino) { in __ext4_unlink()
3221 retval = ext4_delete_entry(handle, dir, de, bh); in __ext4_unlink()
3528 struct ext4_dir_entry_2 *de; member
3587 ent->de->inode = cpu_to_le32(ino); in ext4_setent()
3589 ent->de->file_type = file_type; in ext4_setent()
3613 struct ext4_dir_entry_2 *de; in ext4_find_delete_entry() local
3615 bh = ext4_find_entry(dir, d_name, &de, NULL); in ext4_find_delete_entry()
3619 retval = ext4_delete_entry(handle, dir, de, bh); in ext4_find_delete_entry()
3630 * ent->de could have moved from under us during htree split, so make in ext4_rename_delete()
3635 if (le32_to_cpu(ent->de->inode) != ent->inode->i_ino || in ext4_rename_delete()
3636 ent->de->name_len != ent->dentry->d_name.len || in ext4_rename_delete()
3637 strncmp(ent->de->name, ent->dentry->d_name.name, in ext4_rename_delete()
3638 ent->de->name_len) || in ext4_rename_delete()
3643 retval = ext4_delete_entry(handle, ent->dir, ent->de, ent->bh); in ext4_rename_delete()
3756 old.bh = ext4_find_entry(old.dir, &old.dentry->d_name, &old.de, NULL); in ext4_rename()
3766 if (!old.bh || le32_to_cpu(old.de->inode) != old.inode->i_ino) in ext4_rename()
3770 &new.de, &new.inlined); in ext4_rename()
3830 old_file_type = old.de->file_type; in ext4_rename()
3976 &old.de, &old.inlined); in ext4_cross_rename()
3986 if (!old.bh || le32_to_cpu(old.de->inode) != old.inode->i_ino) in ext4_cross_rename()
3990 &new.de, &new.inlined); in ext4_cross_rename()
3998 if (!new.bh || le32_to_cpu(new.de->inode) != new.inode->i_ino) in ext4_cross_rename()
4039 new_file_type = new.de->file_type; in ext4_cross_rename()
4040 retval = ext4_setent(handle, &new, old.inode->i_ino, old.de->file_type); in ext4_cross_rename()