Lines Matching full:de
214 * len <= EXT2_NAME_LEN and de != NULL are guaranteed by caller.
217 struct ext2_dir_entry_2 * de) in ext2_match() argument
219 if (len != de->name_len) in ext2_match()
221 if (!de->inode) in ext2_match()
223 return !memcmp(name, de->name, len); in ext2_match()
238 ext2_dirent *de = (ext2_dirent*)(base + offset); in ext2_validate_entry() local
240 while ((char*)p < (char*)de) { in ext2_validate_entry()
248 static inline void ext2_set_de_type(ext2_dirent *de, struct inode *inode) in ext2_set_de_type() argument
251 de->file_type = fs_umode_to_ftype(inode->i_mode); in ext2_set_de_type()
253 de->file_type = 0; in ext2_set_de_type()
276 ext2_dirent *de; in ext2_readdir() local
296 de = (ext2_dirent *)(kaddr+offset); in ext2_readdir()
298 for ( ;(char*)de <= limit; de = ext2_next_entry(de)) { in ext2_readdir()
299 if (de->rec_len == 0) { in ext2_readdir()
302 folio_release_kmap(folio, de); in ext2_readdir()
305 if (de->inode) { in ext2_readdir()
309 d_type = fs_ftype_to_dtype(de->file_type); in ext2_readdir()
311 if (!dir_emit(ctx, de->name, de->name_len, in ext2_readdir()
312 le32_to_cpu(de->inode), in ext2_readdir()
314 folio_release_kmap(folio, de); in ext2_readdir()
318 ctx->pos += ext2_rec_len_from_disk(de->rec_len); in ext2_readdir()
351 ext2_dirent * de; in ext2_find_entry() local
365 de = (ext2_dirent *) kaddr; in ext2_find_entry()
367 while ((char *) de <= kaddr) { in ext2_find_entry()
368 if (de->rec_len == 0) { in ext2_find_entry()
371 folio_release_kmap(*foliop, de); in ext2_find_entry()
374 if (ext2_match(namelen, name, de)) in ext2_find_entry()
376 de = ext2_next_entry(de); in ext2_find_entry()
396 return de; in ext2_find_entry()
414 ext2_dirent *de = ext2_get_folio(dir, 0, 0, foliop); in ext2_dotdot() local
416 if (!IS_ERR(de)) in ext2_dotdot()
417 return ext2_next_entry(de); in ext2_dotdot()
423 struct ext2_dir_entry_2 *de; in ext2_inode_by_name() local
426 de = ext2_find_entry(dir, child, &folio); in ext2_inode_by_name()
427 if (IS_ERR(de)) in ext2_inode_by_name()
428 return PTR_ERR(de); in ext2_inode_by_name()
430 *ino = le32_to_cpu(de->inode); in ext2_inode_by_name()
431 folio_release_kmap(folio, de); in ext2_inode_by_name()
450 int ext2_set_link(struct inode *dir, struct ext2_dir_entry_2 *de, in ext2_set_link() argument
453 loff_t pos = folio_pos(folio) + offset_in_folio(folio, de); in ext2_set_link()
454 unsigned len = ext2_rec_len_from_disk(de->rec_len); in ext2_set_link()
463 de->inode = cpu_to_le32(inode->i_ino); in ext2_set_link()
464 ext2_set_de_type(de, inode); in ext2_set_link()
485 ext2_dirent * de; in ext2_add_link() local
504 de = (ext2_dirent *)kaddr; in ext2_add_link()
506 while ((char *)de <= kaddr) { in ext2_add_link()
507 if ((char *)de == dir_end) { in ext2_add_link()
511 de->rec_len = ext2_rec_len_to_disk(chunk_size); in ext2_add_link()
512 de->inode = 0; in ext2_add_link()
515 if (de->rec_len == 0) { in ext2_add_link()
522 if (ext2_match (namelen, name, de)) in ext2_add_link()
524 name_len = EXT2_DIR_REC_LEN(de->name_len); in ext2_add_link()
525 rec_len = ext2_rec_len_from_disk(de->rec_len); in ext2_add_link()
526 if (!de->inode && rec_len >= reclen) in ext2_add_link()
530 de = (ext2_dirent *) ((char *) de + rec_len); in ext2_add_link()
539 pos = folio_pos(folio) + offset_in_folio(folio, de); in ext2_add_link()
543 if (de->inode) { in ext2_add_link()
544 ext2_dirent *de1 = (ext2_dirent *) ((char *) de + name_len); in ext2_add_link()
546 de->rec_len = ext2_rec_len_to_disk(name_len); in ext2_add_link()
547 de = de1; in ext2_add_link()
549 de->name_len = namelen; in ext2_add_link()
550 memcpy(de->name, name, namelen); in ext2_add_link()
551 de->inode = cpu_to_le32(inode->i_ino); in ext2_add_link()
552 ext2_set_de_type (de, inode); in ext2_add_link()
560 folio_release_kmap(folio, de); in ext2_add_link()
577 ext2_dirent *de, *pde = NULL; in ext2_delete_entry() local
584 de = (ext2_dirent *)(kaddr + from); in ext2_delete_entry()
586 while ((char*)de < (char*)dir) { in ext2_delete_entry()
587 if (de->rec_len == 0) { in ext2_delete_entry()
592 pde = de; in ext2_delete_entry()
593 de = ext2_next_entry(de); in ext2_delete_entry()
621 struct ext2_dir_entry_2 * de; in ext2_make_empty() local
635 de = (struct ext2_dir_entry_2 *)kaddr; in ext2_make_empty()
636 de->name_len = 1; in ext2_make_empty()
637 de->rec_len = ext2_rec_len_to_disk(EXT2_DIR_REC_LEN(1)); in ext2_make_empty()
638 memcpy (de->name, ".\0\0", 4); in ext2_make_empty()
639 de->inode = cpu_to_le32(inode->i_ino); in ext2_make_empty()
640 ext2_set_de_type (de, inode); in ext2_make_empty()
642 de = (struct ext2_dir_entry_2 *)(kaddr + EXT2_DIR_REC_LEN(1)); in ext2_make_empty()
643 de->name_len = 2; in ext2_make_empty()
644 de->rec_len = ext2_rec_len_to_disk(chunk_size - EXT2_DIR_REC_LEN(1)); in ext2_make_empty()
645 de->inode = cpu_to_le32(parent->i_ino); in ext2_make_empty()
646 memcpy (de->name, "..\0", 4); in ext2_make_empty()
647 ext2_set_de_type (de, inode); in ext2_make_empty()
666 ext2_dirent *de; in ext2_empty_dir() local
672 de = (ext2_dirent *)kaddr; in ext2_empty_dir()
675 while ((char *)de <= kaddr) { in ext2_empty_dir()
676 if (de->rec_len == 0) { in ext2_empty_dir()
679 printk("kaddr=%p, de=%p\n", kaddr, de); in ext2_empty_dir()
682 if (de->inode != 0) { in ext2_empty_dir()
684 if (de->name[0] != '.') in ext2_empty_dir()
686 if (de->name_len > 2) in ext2_empty_dir()
688 if (de->name_len < 2) { in ext2_empty_dir()
689 if (de->inode != in ext2_empty_dir()
692 } else if (de->name[1] != '.') in ext2_empty_dir()
695 de = ext2_next_entry(de); in ext2_empty_dir()