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)
148 set_de_item_location(de, path);
151 if (!is_direntry_le_ih(de->de_ih) ||
152 COMP_SHORT_KEYS(&de->de_ih->ih_key, key)) {
153 print_block(de->de_bh, 0, -1, -1);
156 "as key %K", de->de_ih, key);
162 * key. sets de->de_entry_num of de
164 retval = bin_search_in_dir_item(de, cpu_key_k_offset(key));
165 path->pos_in_item = de->de_entry_num;
171 set_de_name_and_namelen(de);
172 set_de_object_key(de);
208 static int reiserfs_match(struct reiserfs_dir_entry *de,
213 if ((namelen == de->de_namelen) &&
214 !memcmp(de->de_name, name, de->de_namelen))
216 (de_visible(de->de_deh + de->de_entry_num) ? NAME_FOUND :
222 /* de's de_bh, de_ih, de_deh, de_item_num, de_entry_num are set already */
227 struct reiserfs_dir_entry *de,
230 struct reiserfs_de_head *deh = de->de_deh;
234 i = de->de_entry_num;
236 if (i == ih_entry_count(de->de_ih) ||
242 RFALSE(de->de_deh != B_I_DEH(de->de_bh, de->de_ih),
255 if (de->de_gen_number_bit_string)
257 de->de_gen_number_bit_string);
260 de->de_entry_num = i;
261 set_de_name_and_namelen(de);
264 * de's de_name, de_namelen, de_recordlen are set.
268 reiserfs_match(de, name, namelen)) != NAME_NOT_FOUND) {
271 set_de_object_key(de);
273 store_de_entry_key(de);
280 if (GET_GENERATION_NUMBER(le_ih_k_offset(de->de_ih)) == 0)
294 RFALSE(de->de_item_num,
306 struct reiserfs_dir_entry *de)
322 path_to_entry, de);
330 linear_search_in_dir_item(&key_to_search, de, name,
337 path_to_entry->pos_in_item = de->de_entry_num;
346 le_ih_k_offset(de->de_ih) - 1);
357 struct reiserfs_dir_entry de;
365 de.de_gen_number_bit_string = NULL;
368 &path_to_entry, &de);
372 (struct cpu_key *)&de.de_dir_id);
404 struct reiserfs_dir_entry de;
411 de.de_gen_number_bit_string = NULL;
414 retval = reiserfs_find_entry(dir, "..", 2, &path_to_entry, &de);
420 inode = reiserfs_iget(dir->i_sb, (struct cpu_key *)&de.de_dir_id);
439 struct reiserfs_dir_entry de;
488 /* put key (ino analog) to de */
509 de.de_gen_number_bit_string = bit_string;
510 retval = reiserfs_find_entry(dir, name, namelen, &path, &de);
551 if (search_by_entry_key(dir->i_sb, &entry_key, &path, &de) !=
907 struct reiserfs_dir_entry de;
928 de.de_gen_number_bit_string = NULL;
931 &path, &de)) == NAME_NOT_FOUND) {
944 if (de.de_objectid != inode->i_ino) {
957 retval = reiserfs_cut_from_item(&th, &path, &de.de_entry_key,
973 dir->i_size -= (DEH_SIZE + de.de_entrylen);
1001 struct reiserfs_dir_entry de;
1029 de.de_gen_number_bit_string = NULL;
1032 &path, &de)) == NAME_NOT_FOUND) {
1043 if (de.de_objectid != inode->i_ino) {
1067 reiserfs_cut_from_item(&th, &path, &de.de_entry_key, dir, NULL,
1076 dir->i_size -= (de.de_entrylen + DEH_SIZE);
1262 /* de contains information pointing to an entry which */
1264 struct reiserfs_dir_entry *de)
1266 struct reiserfs_dir_entry tmp = *de;
1271 if (tmp.de_namelen != len || memcmp(name, de->de_name, len))
1277 struct reiserfs_dir_entry *de,
1280 if (!de_still_valid(name, len, de))
1284 if (!de_visible(de->de_deh + de->de_entry_num))
1287 return (de->de_objectid == inode->i_ino) ? 1 : 0;
1291 if (de_visible(de->de_deh + de->de_entry_num))
1298 static void set_ino_in_dir_entry(struct reiserfs_dir_entry *de,
1302 de->de_deh[de->de_entry_num].deh_dir_id = key->k_dir_id;
1303 de->de_deh[de->de_entry_num].deh_objectid = key->k_objectid;