Lines Matching full:de
652 struct ext4_dir_entry_2 *de, in dx_show_leaf() argument
656 char *base = (char *) de; in dx_show_leaf()
660 while ((char *) de < base + size) in dx_show_leaf()
662 if (de->inode) in dx_show_leaf()
673 name = de->name; in dx_show_leaf()
674 len = de->name_len; in dx_show_leaf()
677 ext4fs_dirhash(dir, de->name, in dx_show_leaf()
678 de->name_len, &h); in dx_show_leaf()
681 (unsigned) ((char *) de in dx_show_leaf()
710 h.hash = EXT4_DIRENT_HASH(de); in dx_show_leaf()
712 ext4fs_dirhash(dir, de->name, in dx_show_leaf()
713 de->name_len, &h); in dx_show_leaf()
715 h.hash, (unsigned) ((char *) de in dx_show_leaf()
721 int len = de->name_len; in dx_show_leaf()
722 char *name = de->name; in dx_show_leaf()
723 ext4fs_dirhash(dir, de->name, de->name_len, &h); in dx_show_leaf()
725 (unsigned) ((char *) de - base)); in dx_show_leaf()
728 space += ext4_dir_rec_len(de->name_len, dir); in dx_show_leaf()
731 de = ext4_next_entry(de, size); in dx_show_leaf()
1065 struct ext4_dir_entry_2 *de, *top; in htree_dirblock_to_tree() local
1076 de = (struct ext4_dir_entry_2 *) bh->b_data; in htree_dirblock_to_tree()
1078 top = (struct ext4_dir_entry_2 *) ((char *) de + in htree_dirblock_to_tree()
1097 for (; de < top; de = ext4_next_entry(de, dir->i_sb->s_blocksize)) { in htree_dirblock_to_tree()
1098 if (ext4_check_dir_entry(dir, NULL, de, bh, in htree_dirblock_to_tree()
1101 + ((char *)de - bh->b_data))) { in htree_dirblock_to_tree()
1106 if (de->name_len && de->inode) { in htree_dirblock_to_tree()
1107 hinfo->hash = EXT4_DIRENT_HASH(de); in htree_dirblock_to_tree()
1108 hinfo->minor_hash = EXT4_DIRENT_MINOR_HASH(de); in htree_dirblock_to_tree()
1114 ext4fs_dirhash(dir, de->name, de->name_len, hinfo); in htree_dirblock_to_tree()
1120 if (de->inode == 0) in htree_dirblock_to_tree()
1123 tmp_str.name = de->name; in htree_dirblock_to_tree()
1124 tmp_str.len = de->name_len; in htree_dirblock_to_tree()
1126 hinfo->hash, hinfo->minor_hash, de, in htree_dirblock_to_tree()
1130 struct fscrypt_str de_name = FSTR_INIT(de->name, in htree_dirblock_to_tree()
1131 de->name_len); in htree_dirblock_to_tree()
1142 hinfo->hash, hinfo->minor_hash, de, in htree_dirblock_to_tree()
1171 struct ext4_dir_entry_2 *de; in ext4_htree_fill_tree() local
1217 de = (struct ext4_dir_entry_2 *) frames[0].bh->b_data; in ext4_htree_fill_tree()
1218 tmp_str.name = de->name; in ext4_htree_fill_tree()
1219 tmp_str.len = de->name_len; in ext4_htree_fill_tree()
1221 de, &tmp_str); in ext4_htree_fill_tree()
1227 de = (struct ext4_dir_entry_2 *) frames[0].bh->b_data; in ext4_htree_fill_tree()
1228 de = ext4_next_entry(de, dir->i_sb->s_blocksize); in ext4_htree_fill_tree()
1229 tmp_str.name = de->name; in ext4_htree_fill_tree()
1230 tmp_str.len = de->name_len; in ext4_htree_fill_tree()
1232 de, &tmp_str); in ext4_htree_fill_tree()
1301 struct ext4_dir_entry_2 *de = (struct ext4_dir_entry_2 *)bh->b_data; in dx_make_map() local
1309 while ((char *) de < base + buflen) { in dx_make_map()
1310 if (ext4_check_dir_entry(dir, NULL, de, bh, base, buflen, in dx_make_map()
1311 ((char *)de) - base)) in dx_make_map()
1313 if (de->name_len && de->inode) { in dx_make_map()
1315 h.hash = EXT4_DIRENT_HASH(de); in dx_make_map()
1317 ext4fs_dirhash(dir, de->name, de->name_len, &h); in dx_make_map()
1320 map_tail->offs = ((char *) de - base)>>2; in dx_make_map()
1321 map_tail->size = le16_to_cpu(de->rec_len); in dx_make_map()
1325 de = ext4_next_entry(de, dir->i_sb->s_blocksize); in dx_make_map()
1469 struct ext4_dir_entry_2 *de) in ext4_match() argument
1473 if (!de->inode) in ext4_match()
1489 if (fname->hinfo.hash != EXT4_DIRENT_HASH(de) || in ext4_match()
1491 EXT4_DIRENT_MINOR_HASH(de)) { in ext4_match()
1496 return !ext4_ci_compare(parent, &cf, de->name, in ext4_match()
1497 de->name_len, true); in ext4_match()
1499 return !ext4_ci_compare(parent, fname->usr_fname, de->name, in ext4_match()
1500 de->name_len, false); in ext4_match()
1504 return fscrypt_match_name(&f, de->name, de->name_len); in ext4_match()
1514 struct ext4_dir_entry_2 * de; in ext4_search_dir() local
1518 de = (struct ext4_dir_entry_2 *)search_buf; in ext4_search_dir()
1520 while ((char *) de < dlimit - EXT4_BASE_DIR_LEN) { in ext4_search_dir()
1523 if (de->name + de->name_len <= dlimit && in ext4_search_dir()
1524 ext4_match(dir, fname, de)) { in ext4_search_dir()
1527 if (ext4_check_dir_entry(dir, NULL, de, bh, search_buf, in ext4_search_dir()
1530 *res_dir = de; in ext4_search_dir()
1534 de_len = ext4_rec_len_from_disk(de->rec_len, in ext4_search_dir()
1539 de = (struct ext4_dir_entry_2 *) ((char *) de + de_len); in ext4_search_dir()
1545 struct ext4_dir_entry *de) in is_dx_internal_node() argument
1553 if (de->inode == 0 && in is_dx_internal_node()
1554 ext4_rec_len_from_disk(de->rec_len, sb->s_blocksize) == in is_dx_internal_node()
1814 struct ext4_dir_entry_2 *de; in ext4_lookup() local
1820 bh = ext4_lookup_entry(dir, dentry, &de); in ext4_lookup()
1825 __u32 ino = le32_to_cpu(de->inode); in ext4_lookup()
1871 struct ext4_dir_entry_2 * de; in ext4_get_parent() local
1874 bh = ext4_find_entry(d_inode(child), &dotdot_name, &de, NULL); in ext4_get_parent()
1879 ino = le32_to_cpu(de->inode); in ext4_get_parent()
1903 struct ext4_dir_entry_2 *de = (struct ext4_dir_entry_2 *) in dx_move_dirents() local
1905 rec_len = ext4_dir_rec_len(de->name_len, dir); in dx_move_dirents()
1907 memcpy (to, de, rec_len); in dx_move_dirents()
1912 de->inode = 0; in dx_move_dirents()
1913 memset(&de->name_len, 0, ext4_rec_len_from_disk(de->rec_len, in dx_move_dirents()
1931 struct ext4_dir_entry_2 *next, *to, *prev, *de = (struct ext4_dir_entry_2 *) base; in dx_pack_dirents() local
1934 prev = to = de; in dx_pack_dirents()
1935 while ((char*)de < base + blocksize) { in dx_pack_dirents()
1936 next = ext4_next_entry(de, blocksize); in dx_pack_dirents()
1937 if (de->inode && de->name_len) { in dx_pack_dirents()
1938 rec_len = ext4_dir_rec_len(de->name_len, dir); in dx_pack_dirents()
1939 if (de > to) in dx_pack_dirents()
1940 memmove(to, de, rec_len); in dx_pack_dirents()
1945 de = next; in dx_pack_dirents()
1953 * Returns pointer to de in block into which the new entry will be inserted.
1968 struct ext4_dir_entry_2 *de = NULL, *de2; in do_split() local
2036 de = dx_pack_dirents(dir, data1, blocksize); in do_split()
2037 de->rec_len = ext4_rec_len_to_disk(data1 + (blocksize - csum_size) - in do_split()
2038 (char *) de, in do_split()
2056 de = de2; in do_split()
2067 return de; in do_split()
2083 struct ext4_dir_entry_2 *de; in ext4_find_dest_de() local
2089 de = buf; in ext4_find_dest_de()
2091 while ((char *) de <= top) { in ext4_find_dest_de()
2092 if (ext4_check_dir_entry(dir, NULL, de, bh, in ext4_find_dest_de()
2095 if (ext4_match(dir, fname, de)) in ext4_find_dest_de()
2097 nlen = ext4_dir_rec_len(de->name_len, dir); in ext4_find_dest_de()
2098 rlen = ext4_rec_len_from_disk(de->rec_len, buf_size); in ext4_find_dest_de()
2099 if ((de->inode ? rlen - nlen : rlen) >= reclen) in ext4_find_dest_de()
2101 de = (struct ext4_dir_entry_2 *)((char *)de + rlen); in ext4_find_dest_de()
2104 if ((char *) de > top) in ext4_find_dest_de()
2107 *dest_de = de; in ext4_find_dest_de()
2113 struct ext4_dir_entry_2 *de, in ext4_insert_dentry() argument
2120 nlen = ext4_dir_rec_len(de->name_len, dir); in ext4_insert_dentry()
2121 rlen = ext4_rec_len_from_disk(de->rec_len, buf_size); in ext4_insert_dentry()
2122 if (de->inode) { in ext4_insert_dentry()
2124 (struct ext4_dir_entry_2 *)((char *)de + nlen); in ext4_insert_dentry()
2126 de->rec_len = ext4_rec_len_to_disk(nlen, buf_size); in ext4_insert_dentry()
2127 de = de1; in ext4_insert_dentry()
2129 de->file_type = EXT4_FT_UNKNOWN; in ext4_insert_dentry()
2130 de->inode = cpu_to_le32(inode->i_ino); in ext4_insert_dentry()
2131 ext4_set_de_type(inode->i_sb, de, inode->i_mode); in ext4_insert_dentry()
2132 de->name_len = fname_len(fname); in ext4_insert_dentry()
2133 memcpy(de->name, fname_name(fname), fname_len(fname)); in ext4_insert_dentry()
2137 EXT4_DIRENT_HASHES(de)->hash = cpu_to_le32(hinfo->hash); in ext4_insert_dentry()
2138 EXT4_DIRENT_HASHES(de)->minor_hash = in ext4_insert_dentry()
2144 * Add a new entry into a directory (leaf) block. If de is non-NULL,
2146 * enough for new directory entry. If de is NULL, then
2153 struct inode *inode, struct ext4_dir_entry_2 *de, in add_dirent_to_buf() argument
2163 if (!de) { in add_dirent_to_buf()
2165 blocksize - csum_size, fname, &de); in add_dirent_to_buf()
2178 ext4_insert_dentry(dir, inode, de, blocksize, fname); in add_dirent_to_buf()
2214 struct ext4_dir_entry_2 *de, *de2; in make_indexed_dir() local
2240 de = (struct ext4_dir_entry_2 *)((char *)fde + in make_indexed_dir()
2242 if ((char *) de >= (((char *) root) + blocksize)) { in make_indexed_dir()
2247 len = ((char *) root) + (blocksize - csum_size) - (char *) de; in make_indexed_dir()
2258 memcpy(data2, de, len); in make_indexed_dir()
2259 memset(de, 0, len); /* wipe old data */ in make_indexed_dir()
2260 de = (struct ext4_dir_entry_2 *) data2; in make_indexed_dir()
2262 while ((char *)(de2 = ext4_next_entry(de, blocksize)) < top) { in make_indexed_dir()
2263 if (ext4_check_dir_entry(dir, NULL, de, bh2, data2, len, in make_indexed_dir()
2265 (char *) de))) { in make_indexed_dir()
2270 de = de2; in make_indexed_dir()
2272 de->rec_len = ext4_rec_len_to_disk(data2 + (blocksize - csum_size) - in make_indexed_dir()
2273 (char *) de, blocksize); in make_indexed_dir()
2279 de = (struct ext4_dir_entry_2 *) (&root->dotdot); in make_indexed_dir()
2280 de->rec_len = ext4_rec_len_to_disk( in make_indexed_dir()
2319 de = do_split(handle,dir, &bh2, frame, &fname->hinfo); in make_indexed_dir()
2320 if (IS_ERR(de)) { in make_indexed_dir()
2321 retval = PTR_ERR(de); in make_indexed_dir()
2325 retval = add_dirent_to_buf(handle, fname, dir, inode, de, bh2); in make_indexed_dir()
2345 * NOTE!! The inode part of 'de' is left at 0 - which means you
2354 struct ext4_dir_entry_2 *de; in ext4_add_entry() local
2445 de = (struct ext4_dir_entry_2 *) bh->b_data; in ext4_add_entry()
2446 de->inode = 0; in ext4_add_entry()
2447 de->rec_len = ext4_rec_len_to_disk(blocksize - csum_size, blocksize); in ext4_add_entry()
2452 retval = add_dirent_to_buf(handle, &fname, dir, inode, de, bh); in ext4_add_entry()
2471 struct ext4_dir_entry_2 *de; in ext4_dx_add_entry() local
2615 de = do_split(handle, dir, &bh, frame, &fname->hinfo); in ext4_dx_add_entry()
2616 if (IS_ERR(de)) { in ext4_dx_add_entry()
2617 err = PTR_ERR(de); in ext4_dx_add_entry()
2620 err = add_dirent_to_buf(handle, fname, dir, inode, de, bh); in ext4_dx_add_entry()
2647 struct ext4_dir_entry_2 *de, *pde; in ext4_generic_delete_entry() local
2653 de = entry_buf; in ext4_generic_delete_entry()
2655 if (ext4_check_dir_entry(dir, NULL, de, bh, in ext4_generic_delete_entry()
2658 if (de == de_del) { in ext4_generic_delete_entry()
2663 ext4_rec_len_from_disk(de->rec_len, in ext4_generic_delete_entry()
2668 memset(de, 0, ext4_rec_len_from_disk(de->rec_len, in ext4_generic_delete_entry()
2672 de->inode = 0; in ext4_generic_delete_entry()
2673 memset(&de->name_len, 0, in ext4_generic_delete_entry()
2674 ext4_rec_len_from_disk(de->rec_len, in ext4_generic_delete_entry()
2683 i += ext4_rec_len_from_disk(de->rec_len, blocksize); in ext4_generic_delete_entry()
2684 pde = de; in ext4_generic_delete_entry()
2685 de = ext4_next_entry(de, blocksize); in ext4_generic_delete_entry()
2906 struct ext4_dir_entry_2 *de, in ext4_init_dot_dotdot() argument
2910 de->inode = cpu_to_le32(inode->i_ino); in ext4_init_dot_dotdot()
2911 de->name_len = 1; in ext4_init_dot_dotdot()
2912 de->rec_len = ext4_rec_len_to_disk(ext4_dir_rec_len(de->name_len, NULL), in ext4_init_dot_dotdot()
2914 strcpy(de->name, "."); in ext4_init_dot_dotdot()
2915 ext4_set_de_type(inode->i_sb, de, S_IFDIR); in ext4_init_dot_dotdot()
2917 de = ext4_next_entry(de, blocksize); in ext4_init_dot_dotdot()
2918 de->inode = cpu_to_le32(parent_ino); in ext4_init_dot_dotdot()
2919 de->name_len = 2; in ext4_init_dot_dotdot()
2921 de->rec_len = ext4_rec_len_to_disk(blocksize - in ext4_init_dot_dotdot()
2925 de->rec_len = ext4_rec_len_to_disk( in ext4_init_dot_dotdot()
2926 ext4_dir_rec_len(de->name_len, NULL), in ext4_init_dot_dotdot()
2928 strcpy(de->name, ".."); in ext4_init_dot_dotdot()
2929 ext4_set_de_type(inode->i_sb, de, S_IFDIR); in ext4_init_dot_dotdot()
2931 return ext4_next_entry(de, blocksize); in ext4_init_dot_dotdot()
2938 struct ext4_dir_entry_2 *de; in ext4_init_new_dir() local
2959 de = (struct ext4_dir_entry_2 *)dir_block->b_data; in ext4_init_new_dir()
2960 ext4_init_dot_dotdot(inode, de, blocksize, csum_size, dir->i_ino, 0); in ext4_init_new_dir()
3047 struct ext4_dir_entry_2 *de; in ext4_empty_dir() local
3072 de = (struct ext4_dir_entry_2 *) bh->b_data; in ext4_empty_dir()
3073 if (ext4_check_dir_entry(inode, NULL, de, bh, bh->b_data, bh->b_size, in ext4_empty_dir()
3075 le32_to_cpu(de->inode) != inode->i_ino || strcmp(".", de->name)) { in ext4_empty_dir()
3080 offset = ext4_rec_len_from_disk(de->rec_len, sb->s_blocksize); in ext4_empty_dir()
3081 de = ext4_next_entry(de, sb->s_blocksize); in ext4_empty_dir()
3082 if (ext4_check_dir_entry(inode, NULL, de, bh, bh->b_data, bh->b_size, in ext4_empty_dir()
3084 le32_to_cpu(de->inode) == 0 || strcmp("..", de->name)) { in ext4_empty_dir()
3089 offset += ext4_rec_len_from_disk(de->rec_len, sb->s_blocksize); in ext4_empty_dir()
3103 de = (struct ext4_dir_entry_2 *) (bh->b_data + in ext4_empty_dir()
3105 if (ext4_check_dir_entry(inode, NULL, de, bh, in ext4_empty_dir()
3107 le32_to_cpu(de->inode)) { in ext4_empty_dir()
3111 offset += ext4_rec_len_from_disk(de->rec_len, sb->s_blocksize); in ext4_empty_dir()
3122 struct ext4_dir_entry_2 *de; in ext4_rmdir() local
3138 bh = ext4_find_entry(dir, &dentry->d_name, &de, NULL); in ext4_rmdir()
3147 if (le32_to_cpu(de->inode) != inode->i_ino) in ext4_rmdir()
3165 retval = ext4_delete_entry(handle, dir, de, bh); in ext4_rmdir()
3212 struct ext4_dir_entry_2 *de; in __ext4_unlink() local
3215 bh = ext4_find_entry(dir, d_name, &de, NULL); in __ext4_unlink()
3222 if (le32_to_cpu(de->inode) != inode->i_ino) { in __ext4_unlink()
3238 retval = ext4_delete_entry(handle, dir, de, bh); in __ext4_unlink()
3504 struct ext4_dir_entry_2 *de; in ext4_get_first_dir_block() local
3516 de = (struct ext4_dir_entry_2 *) bh->b_data; in ext4_get_first_dir_block()
3517 if (ext4_check_dir_entry(inode, NULL, de, bh, bh->b_data, in ext4_get_first_dir_block()
3519 le32_to_cpu(de->inode) != inode->i_ino || in ext4_get_first_dir_block()
3520 strcmp(".", de->name)) { in ext4_get_first_dir_block()
3526 offset = ext4_rec_len_from_disk(de->rec_len, in ext4_get_first_dir_block()
3528 de = ext4_next_entry(de, inode->i_sb->s_blocksize); in ext4_get_first_dir_block()
3529 if (ext4_check_dir_entry(inode, NULL, de, bh, bh->b_data, in ext4_get_first_dir_block()
3531 le32_to_cpu(de->inode) == 0 || strcmp("..", de->name)) { in ext4_get_first_dir_block()
3537 *parent_de = de; in ext4_get_first_dir_block()
3555 struct ext4_dir_entry_2 *de; member
3616 ent->de->inode = cpu_to_le32(ino); in ext4_setent()
3618 ent->de->file_type = file_type; in ext4_setent()
3641 * old->de could have moved from under us during make indexed dir, in ext4_resetent()
3642 * so the old->de may no longer valid and need to find it again in ext4_resetent()
3645 old.bh = ext4_find_entry(old.dir, &old.dentry->d_name, &old.de, NULL); in ext4_resetent()
3664 struct ext4_dir_entry_2 *de; in ext4_find_delete_entry() local
3666 bh = ext4_find_entry(dir, d_name, &de, NULL); in ext4_find_delete_entry()
3670 retval = ext4_delete_entry(handle, dir, de, bh); in ext4_find_delete_entry()
3681 * ent->de could have moved from under us during htree split, so make in ext4_rename_delete()
3686 if (le32_to_cpu(ent->de->inode) != ent->inode->i_ino || in ext4_rename_delete()
3687 ent->de->name_len != ent->dentry->d_name.len || in ext4_rename_delete()
3688 strncmp(ent->de->name, ent->dentry->d_name.name, in ext4_rename_delete()
3689 ent->de->name_len) || in ext4_rename_delete()
3694 retval = ext4_delete_entry(handle, ent->dir, ent->de, ent->bh); in ext4_rename_delete()
3809 old.bh = ext4_find_entry(old.dir, &old.dentry->d_name, &old.de, NULL); in ext4_rename()
3819 if (!old.bh || le32_to_cpu(old.de->inode) != old.inode->i_ino) in ext4_rename()
3823 &new.de, &new.inlined); in ext4_rename()
3854 old_file_type = old.de->file_type; in ext4_rename()
4043 &old.de, &old.inlined); in ext4_cross_rename()
4053 if (!old.bh || le32_to_cpu(old.de->inode) != old.inode->i_ino) in ext4_cross_rename()
4057 &new.de, &new.inlined); in ext4_cross_rename()
4065 if (!new.bh || le32_to_cpu(new.de->inode) != new.inode->i_ino) in ext4_cross_rename()
4106 new_file_type = new.de->file_type; in ext4_cross_rename()
4107 retval = ext4_setent(handle, &new, old.inode->i_ino, old.de->file_type); in ext4_cross_rename()