Lines Matching refs:de

29 static int bin_search_in_dir_item(struct reiserfs_dir_entry *de, loff_t off)
31 struct item_head *ih = de->de_ih;
32 struct reiserfs_de_head *deh = de->de_deh;
49 de->de_entry_num = j;
53 de->de_entry_num = lbound;
58 * comment? maybe something like set de to point to what the path points to?
60 static inline void set_de_item_location(struct reiserfs_dir_entry *de,
63 de->de_bh = get_last_bh(path);
64 de->de_ih = tp_item_head(path);
65 de->de_deh = B_I_DEH(de->de_bh, de->de_ih);
66 de->de_item_num = PATH_LAST_POSITION(path);
72 inline void set_de_name_and_namelen(struct reiserfs_dir_entry *de)
74 struct reiserfs_de_head *deh = de->de_deh + de->de_entry_num;
76 BUG_ON(de->de_entry_num >= ih_entry_count(de->de_ih));
78 de->de_entrylen = entry_length(de->de_bh, de->de_ih, de->de_entry_num);
79 de->de_namelen = de->de_entrylen - (de_with_sd(deh) ? SD_SIZE : 0);
80 de->de_name = ih_item_body(de->de_bh, de->de_ih) + deh_location(deh);
81 if (de->de_name[de->de_namelen - 1] == 0)
82 de->de_namelen = strlen(de->de_name);
86 static inline void set_de_object_key(struct reiserfs_dir_entry *de)
88 BUG_ON(de->de_entry_num >= ih_entry_count(de->de_ih));
89 de->de_dir_id = deh_dir_id(&de->de_deh[de->de_entry_num]);
90 de->de_objectid = deh_objectid(&de->de_deh[de->de_entry_num]);
93 static inline void store_de_entry_key(struct reiserfs_dir_entry *de)
95 struct reiserfs_de_head *deh = de->de_deh + de->de_entry_num;
97 BUG_ON(de->de_entry_num >= ih_entry_count(de->de_ih));
100 de->de_entry_key.version = KEY_FORMAT_3_5;
101 de->de_entry_key.on_disk_key.k_dir_id =
102 le32_to_cpu(de->de_ih->ih_key.k_dir_id);
103 de->de_entry_key.on_disk_key.k_objectid =
104 le32_to_cpu(de->de_ih->ih_key.k_objectid);
105 set_cpu_key_k_offset(&de->de_entry_key, deh_offset(deh));
106 set_cpu_key_k_type(&de->de_entry_key, TYPE_DIRENTRY);
121 struct treepath *path, struct reiserfs_dir_entry *de)
149 set_de_item_location(de, path);
152 if (!is_direntry_le_ih(de->de_ih) ||
153 COMP_SHORT_KEYS(&de->de_ih->ih_key, key)) {
154 print_block(de->de_bh, 0, -1, -1);
157 "as key %K", de->de_ih, key);
163 * key. sets de->de_entry_num of de
165 retval = bin_search_in_dir_item(de, cpu_key_k_offset(key));
166 path->pos_in_item = de->de_entry_num;
172 set_de_name_and_namelen(de);
173 set_de_object_key(de);
209 static int reiserfs_match(struct reiserfs_dir_entry *de,
214 if ((namelen == de->de_namelen) &&
215 !memcmp(de->de_name, name, de->de_namelen))
217 (de_visible(de->de_deh + de->de_entry_num) ? NAME_FOUND :
223 /* de's de_bh, de_ih, de_deh, de_item_num, de_entry_num are set already */
228 struct reiserfs_dir_entry *de,
231 struct reiserfs_de_head *deh = de->de_deh;
235 i = de->de_entry_num;
237 if (i == ih_entry_count(de->de_ih) ||
243 RFALSE(de->de_deh != B_I_DEH(de->de_bh, de->de_ih),
256 if (de->de_gen_number_bit_string)
258 de->de_gen_number_bit_string);
261 de->de_entry_num = i;
262 set_de_name_and_namelen(de);
265 * de's de_name, de_namelen, de_recordlen are set.
269 reiserfs_match(de, name, namelen)) != NAME_NOT_FOUND) {
272 set_de_object_key(de);
274 store_de_entry_key(de);
281 if (GET_GENERATION_NUMBER(le_ih_k_offset(de->de_ih)) == 0)
295 RFALSE(de->de_item_num,
307 struct reiserfs_dir_entry *de)
323 path_to_entry, de);
331 linear_search_in_dir_item(&key_to_search, de, name,
338 path_to_entry->pos_in_item = de->de_entry_num;
347 le_ih_k_offset(de->de_ih) - 1);
358 struct reiserfs_dir_entry de;
366 de.de_gen_number_bit_string = NULL;
369 &path_to_entry, &de);
373 (struct cpu_key *)&de.de_dir_id);
403 struct reiserfs_dir_entry de;
410 de.de_gen_number_bit_string = NULL;
413 retval = reiserfs_find_entry(dir, "..", 2, &path_to_entry, &de);
419 inode = reiserfs_iget(dir->i_sb, (struct cpu_key *)&de.de_dir_id);
438 struct reiserfs_dir_entry de;
480 /* put key (ino analog) to de */
501 de.de_gen_number_bit_string = bit_string;
502 retval = reiserfs_find_entry(dir, name, namelen, &path, &de);
543 if (search_by_entry_key(dir->i_sb, &entry_key, &path, &de) !=
900 struct reiserfs_dir_entry de;
921 de.de_gen_number_bit_string = NULL;
924 &path, &de)) == NAME_NOT_FOUND) {
937 if (de.de_objectid != inode->i_ino) {
950 retval = reiserfs_cut_from_item(&th, &path, &de.de_entry_key,
967 dir->i_size -= (DEH_SIZE + de.de_entrylen);
995 struct reiserfs_dir_entry de;
1023 de.de_gen_number_bit_string = NULL;
1026 &path, &de)) == NAME_NOT_FOUND) {
1037 if (de.de_objectid != inode->i_ino) {
1061 reiserfs_cut_from_item(&th, &path, &de.de_entry_key, dir, NULL,
1070 dir->i_size -= (de.de_entrylen + DEH_SIZE);
1257 /* de contains information pointing to an entry which */
1259 struct reiserfs_dir_entry *de)
1261 struct reiserfs_dir_entry tmp = *de;
1266 if (tmp.de_namelen != len || memcmp(name, de->de_name, len))
1272 struct reiserfs_dir_entry *de,
1275 if (!de_still_valid(name, len, de))
1279 if (!de_visible(de->de_deh + de->de_entry_num))
1282 return (de->de_objectid == inode->i_ino) ? 1 : 0;
1286 if (de_visible(de->de_deh + de->de_entry_num))
1293 static void set_ino_in_dir_entry(struct reiserfs_dir_entry *de,
1297 de->de_deh[de->de_entry_num].deh_dir_id = key->k_dir_id;
1298 de->de_deh[de->de_entry_num].deh_objectid = key->k_objectid;