Lines Matching full:de

14  * on code by Martin von Loewis <martin@mira.isdn.cs.tu-berlin.de>.
33 * len <= UFS_MAXNAMLEN and de != NULL are guaranteed by caller.
36 const unsigned char *name, struct ufs_dir_entry *de) in ufs_match() argument
38 if (len != ufs_get_de_namlen(sb, de)) in ufs_match()
40 if (!de->d_ino) in ufs_match()
42 return !memcmp(name, de->d_name, len); in ufs_match()
72 struct ufs_dir_entry *de; in ufs_inode_by_name() local
75 de = ufs_find_entry(dir, qstr, &folio); in ufs_inode_by_name()
76 if (de) { in ufs_inode_by_name()
77 res = fs32_to_cpu(dir->i_sb, de->d_ino); in ufs_inode_by_name()
78 folio_release_kmap(folio, de); in ufs_inode_by_name()
84 int ufs_set_link(struct inode *dir, struct ufs_dir_entry *de, in ufs_set_link() argument
88 loff_t pos = folio_pos(folio) + offset_in_folio(folio, de); in ufs_set_link()
89 unsigned len = fs16_to_cpu(dir->i_sb, de->d_reclen); in ufs_set_link()
99 de->d_ino = cpu_to_fs32(dir->i_sb, inode->i_ino); in ufs_set_link()
100 ufs_set_de_type(dir->i_sb, de, inode->i_mode); in ufs_set_link()
232 struct ufs_dir_entry *de = ufs_get_folio(dir, 0, foliop); in ufs_dotdot() local
234 if (!IS_ERR(de)) in ufs_dotdot()
235 return ufs_next_entry(dir->i_sb, de); in ufs_dotdot()
258 struct ufs_dir_entry *de; in ufs_find_entry() local
274 de = (struct ufs_dir_entry *)kaddr; in ufs_find_entry()
276 while ((char *) de <= kaddr) { in ufs_find_entry()
277 if (ufs_match(sb, namelen, name, de)) in ufs_find_entry()
279 de = ufs_next_entry(sb, de); in ufs_find_entry()
291 return de; in ufs_find_entry()
307 struct ufs_dir_entry *de; in ufs_add_link() local
328 de = (struct ufs_dir_entry *)kaddr; in ufs_add_link()
330 while ((char *)de <= kaddr) { in ufs_add_link()
331 if ((char *)de == dir_end) { in ufs_add_link()
335 de->d_reclen = cpu_to_fs16(sb, chunk_size); in ufs_add_link()
336 de->d_ino = 0; in ufs_add_link()
339 if (de->d_reclen == 0) { in ufs_add_link()
346 if (ufs_match(sb, namelen, name, de)) in ufs_add_link()
348 name_len = UFS_DIR_REC_LEN(ufs_get_de_namlen(sb, de)); in ufs_add_link()
349 rec_len = fs16_to_cpu(sb, de->d_reclen); in ufs_add_link()
350 if (!de->d_ino && rec_len >= reclen) in ufs_add_link()
354 de = (struct ufs_dir_entry *) ((char *) de + rec_len); in ufs_add_link()
363 pos = folio_pos(folio) + offset_in_folio(folio, de); in ufs_add_link()
367 if (de->d_ino) { in ufs_add_link()
369 (struct ufs_dir_entry *) ((char *) de + name_len); in ufs_add_link()
371 de->d_reclen = cpu_to_fs16(sb, name_len); in ufs_add_link()
373 de = de1; in ufs_add_link()
376 ufs_set_de_namlen(sb, de, namelen); in ufs_add_link()
377 memcpy(de->d_name, name, namelen + 1); in ufs_add_link()
378 de->d_ino = cpu_to_fs32(sb, inode->i_ino); in ufs_add_link()
379 ufs_set_de_type(sb, de, inode->i_mode); in ufs_add_link()
388 folio_release_kmap(folio, de); in ufs_add_link()
399 struct ufs_dir_entry *de = (struct ufs_dir_entry*)(base + offset); in ufs_validate_entry() local
401 while ((char*)p < (char*)de) in ufs_validate_entry()
429 struct ufs_dir_entry *de; in ufs_readdir() local
449 de = (struct ufs_dir_entry *)(kaddr+offset); in ufs_readdir()
451 for ( ;(char*)de <= limit; de = ufs_next_entry(sb, de)) { in ufs_readdir()
452 if (de->d_ino) { in ufs_readdir()
455 UFSD("filldir(%s,%u)\n", de->d_name, in ufs_readdir()
456 fs32_to_cpu(sb, de->d_ino)); in ufs_readdir()
457 UFSD("namlen %u\n", ufs_get_de_namlen(sb, de)); in ufs_readdir()
460 d_type = de->d_u.d_44.d_type; in ufs_readdir()
462 if (!dir_emit(ctx, de->d_name, in ufs_readdir()
463 ufs_get_de_namlen(sb, de), in ufs_readdir()
464 fs32_to_cpu(sb, de->d_ino), in ufs_readdir()
466 folio_release_kmap(folio, de); in ufs_readdir()
470 ctx->pos += fs16_to_cpu(sb, de->d_reclen); in ufs_readdir()
489 struct ufs_dir_entry *de, *pde = NULL; in ufs_delete_entry() local
498 de = (struct ufs_dir_entry *) (kaddr + from); in ufs_delete_entry()
501 fs32_to_cpu(sb, de->d_ino), in ufs_delete_entry()
502 fs16_to_cpu(sb, de->d_reclen), in ufs_delete_entry()
503 ufs_get_de_namlen(sb, de), de->d_name); in ufs_delete_entry()
505 while ((char*)de < (char*)dir) { in ufs_delete_entry()
506 if (de->d_reclen == 0) { in ufs_delete_entry()
511 pde = de; in ufs_delete_entry()
512 de = ufs_next_entry(sb, de); in ufs_delete_entry()
538 struct ufs_dir_entry * de; in ufs_make_empty() local
554 de = (struct ufs_dir_entry *)kaddr; in ufs_make_empty()
556 de->d_ino = cpu_to_fs32(sb, inode->i_ino); in ufs_make_empty()
557 ufs_set_de_type(sb, de, inode->i_mode); in ufs_make_empty()
558 ufs_set_de_namlen(sb, de, 1); in ufs_make_empty()
559 de->d_reclen = cpu_to_fs16(sb, UFS_DIR_REC_LEN(1)); in ufs_make_empty()
560 strcpy (de->d_name, "."); in ufs_make_empty()
561 de = (struct ufs_dir_entry *) in ufs_make_empty()
562 ((char *)de + fs16_to_cpu(sb, de->d_reclen)); in ufs_make_empty()
563 de->d_ino = cpu_to_fs32(sb, dir->i_ino); in ufs_make_empty()
564 ufs_set_de_type(sb, de, dir->i_mode); in ufs_make_empty()
565 de->d_reclen = cpu_to_fs16(sb, chunk_size - UFS_DIR_REC_LEN(1)); in ufs_make_empty()
566 ufs_set_de_namlen(sb, de, 2); in ufs_make_empty()
567 strcpy (de->d_name, ".."); in ufs_make_empty()
588 struct ufs_dir_entry *de; in ufs_empty_dir() local
594 de = (struct ufs_dir_entry *)kaddr; in ufs_empty_dir()
597 while ((char *)de <= kaddr) { in ufs_empty_dir()
598 if (de->d_reclen == 0) { in ufs_empty_dir()
601 "kaddr=%p, de=%p\n", kaddr, de); in ufs_empty_dir()
604 if (de->d_ino) { in ufs_empty_dir()
605 u16 namelen=ufs_get_de_namlen(sb, de); in ufs_empty_dir()
607 if (de->d_name[0] != '.') in ufs_empty_dir()
613 fs32_to_cpu(sb, de->d_ino)) in ufs_empty_dir()
615 } else if (de->d_name[1] != '.') in ufs_empty_dir()
618 de = ufs_next_entry(sb, de); in ufs_empty_dir()