Lines Matching full:de

215  * len <= EXT2_NAME_LEN and de != NULL are guaranteed by caller.
218 struct ext2_dir_entry_2 * de) in ext2_match() argument
220 if (len != de->name_len) in ext2_match()
222 if (!de->inode) in ext2_match()
224 return !memcmp(name, de->name, len); in ext2_match()
239 ext2_dirent *de = (ext2_dirent*)(base + offset); in ext2_validate_entry() local
241 while ((char*)p < (char*)de) { in ext2_validate_entry()
249 static inline void ext2_set_de_type(ext2_dirent *de, struct inode *inode) in ext2_set_de_type() argument
252 de->file_type = fs_umode_to_ftype(inode->i_mode); in ext2_set_de_type()
254 de->file_type = 0; in ext2_set_de_type()
277 ext2_dirent *de; in ext2_readdir() local
297 de = (ext2_dirent *)(kaddr+offset); in ext2_readdir()
299 for ( ;(char*)de <= limit; de = ext2_next_entry(de)) { in ext2_readdir()
300 if (de->rec_len == 0) { in ext2_readdir()
303 folio_release_kmap(folio, de); in ext2_readdir()
306 if (de->inode) { in ext2_readdir()
310 d_type = fs_ftype_to_dtype(de->file_type); in ext2_readdir()
312 if (!dir_emit(ctx, de->name, de->name_len, in ext2_readdir()
313 le32_to_cpu(de->inode), in ext2_readdir()
315 folio_release_kmap(folio, de); in ext2_readdir()
319 ctx->pos += ext2_rec_len_from_disk(de->rec_len); in ext2_readdir()
352 ext2_dirent * de; in ext2_find_entry() local
366 de = (ext2_dirent *) kaddr; in ext2_find_entry()
368 while ((char *) de <= kaddr) { in ext2_find_entry()
369 if (de->rec_len == 0) { in ext2_find_entry()
372 folio_release_kmap(*foliop, de); in ext2_find_entry()
375 if (ext2_match(namelen, name, de)) in ext2_find_entry()
377 de = ext2_next_entry(de); in ext2_find_entry()
397 return de; in ext2_find_entry()
415 ext2_dirent *de = ext2_get_folio(dir, 0, 0, foliop); in ext2_dotdot() local
417 if (!IS_ERR(de)) in ext2_dotdot()
418 return ext2_next_entry(de); in ext2_dotdot()
424 struct ext2_dir_entry_2 *de; in ext2_inode_by_name() local
427 de = ext2_find_entry(dir, child, &folio); in ext2_inode_by_name()
428 if (IS_ERR(de)) in ext2_inode_by_name()
429 return PTR_ERR(de); in ext2_inode_by_name()
431 *ino = le32_to_cpu(de->inode); in ext2_inode_by_name()
432 folio_release_kmap(folio, de); in ext2_inode_by_name()
451 int ext2_set_link(struct inode *dir, struct ext2_dir_entry_2 *de, in ext2_set_link() argument
454 loff_t pos = folio_pos(folio) + offset_in_folio(folio, de); in ext2_set_link()
455 unsigned len = ext2_rec_len_from_disk(de->rec_len); in ext2_set_link()
464 de->inode = cpu_to_le32(inode->i_ino); in ext2_set_link()
465 ext2_set_de_type(de, inode); in ext2_set_link()
486 ext2_dirent * de; in ext2_add_link() local
505 de = (ext2_dirent *)kaddr; in ext2_add_link()
507 while ((char *)de <= kaddr) { in ext2_add_link()
508 if ((char *)de == dir_end) { in ext2_add_link()
512 de->rec_len = ext2_rec_len_to_disk(chunk_size); in ext2_add_link()
513 de->inode = 0; in ext2_add_link()
516 if (de->rec_len == 0) { in ext2_add_link()
523 if (ext2_match (namelen, name, de)) in ext2_add_link()
525 name_len = EXT2_DIR_REC_LEN(de->name_len); in ext2_add_link()
526 rec_len = ext2_rec_len_from_disk(de->rec_len); in ext2_add_link()
527 if (!de->inode && rec_len >= reclen) in ext2_add_link()
531 de = (ext2_dirent *) ((char *) de + rec_len); in ext2_add_link()
540 pos = folio_pos(folio) + offset_in_folio(folio, de); in ext2_add_link()
544 if (de->inode) { in ext2_add_link()
545 ext2_dirent *de1 = (ext2_dirent *) ((char *) de + name_len); in ext2_add_link()
547 de->rec_len = ext2_rec_len_to_disk(name_len); in ext2_add_link()
548 de = de1; in ext2_add_link()
550 de->name_len = namelen; in ext2_add_link()
551 memcpy(de->name, name, namelen); in ext2_add_link()
552 de->inode = cpu_to_le32(inode->i_ino); in ext2_add_link()
553 ext2_set_de_type (de, inode); in ext2_add_link()
561 folio_release_kmap(folio, de); in ext2_add_link()
578 ext2_dirent *de, *pde = NULL; in ext2_delete_entry() local
585 de = (ext2_dirent *)(kaddr + from); in ext2_delete_entry()
587 while ((char*)de < (char*)dir) { in ext2_delete_entry()
588 if (de->rec_len == 0) { in ext2_delete_entry()
593 pde = de; in ext2_delete_entry()
594 de = ext2_next_entry(de); in ext2_delete_entry()
622 struct ext2_dir_entry_2 * de; in ext2_make_empty() local
636 de = (struct ext2_dir_entry_2 *)kaddr; in ext2_make_empty()
637 de->name_len = 1; in ext2_make_empty()
638 de->rec_len = ext2_rec_len_to_disk(EXT2_DIR_REC_LEN(1)); in ext2_make_empty()
639 memcpy (de->name, ".\0\0", 4); in ext2_make_empty()
640 de->inode = cpu_to_le32(inode->i_ino); in ext2_make_empty()
641 ext2_set_de_type (de, inode); in ext2_make_empty()
643 de = (struct ext2_dir_entry_2 *)(kaddr + EXT2_DIR_REC_LEN(1)); in ext2_make_empty()
644 de->name_len = 2; in ext2_make_empty()
645 de->rec_len = ext2_rec_len_to_disk(chunk_size - EXT2_DIR_REC_LEN(1)); in ext2_make_empty()
646 de->inode = cpu_to_le32(parent->i_ino); in ext2_make_empty()
647 memcpy (de->name, "..\0", 4); in ext2_make_empty()
648 ext2_set_de_type (de, inode); in ext2_make_empty()
667 ext2_dirent *de; in ext2_empty_dir() local
673 de = (ext2_dirent *)kaddr; in ext2_empty_dir()
676 while ((char *)de <= kaddr) { in ext2_empty_dir()
677 if (de->rec_len == 0) { in ext2_empty_dir()
680 printk("kaddr=%p, de=%p\n", kaddr, de); in ext2_empty_dir()
683 if (de->inode != 0) { in ext2_empty_dir()
685 if (de->name[0] != '.') in ext2_empty_dir()
687 if (de->name_len > 2) in ext2_empty_dir()
689 if (de->name_len < 2) { in ext2_empty_dir()
690 if (de->inode != in ext2_empty_dir()
693 } else if (de->name[1] != '.') in ext2_empty_dir()
696 de = ext2_next_entry(de); in ext2_empty_dir()