Lines Matching refs:de
205 nilfs_match(int len, const unsigned char *name, struct nilfs_dir_entry *de) in nilfs_match() argument
207 if (len != de->name_len) in nilfs_match()
209 if (!de->inode) in nilfs_match()
211 return !memcmp(name, de->name, len); in nilfs_match()
247 static void nilfs_set_de_type(struct nilfs_dir_entry *de, struct inode *inode) in nilfs_set_de_type() argument
251 de->file_type = nilfs_type_by_mode[(mode & S_IFMT)>>S_SHIFT]; in nilfs_set_de_type()
269 struct nilfs_dir_entry *de; in nilfs_readdir() local
279 de = (struct nilfs_dir_entry *)(kaddr + offset); in nilfs_readdir()
282 for ( ; (char *)de <= limit; de = nilfs_next_entry(de)) { in nilfs_readdir()
283 if (de->rec_len == 0) { in nilfs_readdir()
289 if (de->inode) { in nilfs_readdir()
292 if (de->file_type < NILFS_FT_MAX) in nilfs_readdir()
293 t = nilfs_filetype_table[de->file_type]; in nilfs_readdir()
297 if (!dir_emit(ctx, de->name, de->name_len, in nilfs_readdir()
298 le64_to_cpu(de->inode), t)) { in nilfs_readdir()
303 ctx->pos += nilfs_rec_len_from_disk(de->rec_len); in nilfs_readdir()
329 struct nilfs_dir_entry *de; in nilfs_find_entry() local
346 de = (struct nilfs_dir_entry *)kaddr; in nilfs_find_entry()
348 while ((char *) de <= kaddr) { in nilfs_find_entry()
349 if (de->rec_len == 0) { in nilfs_find_entry()
355 if (nilfs_match(namelen, name, de)) in nilfs_find_entry()
357 de = nilfs_next_entry(de); in nilfs_find_entry()
378 return de; in nilfs_find_entry()
384 struct nilfs_dir_entry *de = NULL; in nilfs_dotdot() local
387 de = nilfs_next_entry( in nilfs_dotdot()
391 return de; in nilfs_dotdot()
397 struct nilfs_dir_entry *de; in nilfs_inode_by_name() local
400 de = nilfs_find_entry(dir, qstr, &page); in nilfs_inode_by_name()
401 if (de) { in nilfs_inode_by_name()
402 res = le64_to_cpu(de->inode); in nilfs_inode_by_name()
410 void nilfs_set_link(struct inode *dir, struct nilfs_dir_entry *de, in nilfs_set_link() argument
413 unsigned from = (char *) de - (char *) page_address(page); in nilfs_set_link()
414 unsigned to = from + nilfs_rec_len_from_disk(de->rec_len); in nilfs_set_link()
421 de->inode = cpu_to_le64(inode->i_ino); in nilfs_set_link()
422 nilfs_set_de_type(de, inode); in nilfs_set_link()
440 struct nilfs_dir_entry *de; in nilfs_add_link() local
462 de = (struct nilfs_dir_entry *)kaddr; in nilfs_add_link()
464 while ((char *)de <= kaddr) { in nilfs_add_link()
465 if ((char *)de == dir_end) { in nilfs_add_link()
469 de->rec_len = nilfs_rec_len_to_disk(chunk_size); in nilfs_add_link()
470 de->inode = 0; in nilfs_add_link()
473 if (de->rec_len == 0) { in nilfs_add_link()
480 if (nilfs_match(namelen, name, de)) in nilfs_add_link()
482 name_len = NILFS_DIR_REC_LEN(de->name_len); in nilfs_add_link()
483 rec_len = nilfs_rec_len_from_disk(de->rec_len); in nilfs_add_link()
484 if (!de->inode && rec_len >= reclen) in nilfs_add_link()
488 de = (struct nilfs_dir_entry *)((char *)de + rec_len); in nilfs_add_link()
497 from = (char *)de - (char *)page_address(page); in nilfs_add_link()
502 if (de->inode) { in nilfs_add_link()
505 de1 = (struct nilfs_dir_entry *)((char *)de + name_len); in nilfs_add_link()
507 de->rec_len = nilfs_rec_len_to_disk(name_len); in nilfs_add_link()
508 de = de1; in nilfs_add_link()
510 de->name_len = namelen; in nilfs_add_link()
511 memcpy(de->name, name, namelen); in nilfs_add_link()
512 de->inode = cpu_to_le64(inode->i_ino); in nilfs_add_link()
513 nilfs_set_de_type(de, inode); in nilfs_add_link()
540 struct nilfs_dir_entry *de = (struct nilfs_dir_entry *)(kaddr + from); in nilfs_delete_entry() local
543 while ((char *)de < (char *)dir) { in nilfs_delete_entry()
544 if (de->rec_len == 0) { in nilfs_delete_entry()
550 pde = de; in nilfs_delete_entry()
551 de = nilfs_next_entry(de); in nilfs_delete_entry()
576 struct nilfs_dir_entry *de; in nilfs_make_empty() local
590 de = (struct nilfs_dir_entry *)kaddr; in nilfs_make_empty()
591 de->name_len = 1; in nilfs_make_empty()
592 de->rec_len = nilfs_rec_len_to_disk(NILFS_DIR_REC_LEN(1)); in nilfs_make_empty()
593 memcpy(de->name, ".\0\0", 4); in nilfs_make_empty()
594 de->inode = cpu_to_le64(inode->i_ino); in nilfs_make_empty()
595 nilfs_set_de_type(de, inode); in nilfs_make_empty()
597 de = (struct nilfs_dir_entry *)(kaddr + NILFS_DIR_REC_LEN(1)); in nilfs_make_empty()
598 de->name_len = 2; in nilfs_make_empty()
599 de->rec_len = nilfs_rec_len_to_disk(chunk_size - NILFS_DIR_REC_LEN(1)); in nilfs_make_empty()
600 de->inode = cpu_to_le64(parent->i_ino); in nilfs_make_empty()
601 memcpy(de->name, "..\0", 4); in nilfs_make_empty()
602 nilfs_set_de_type(de, inode); in nilfs_make_empty()
620 struct nilfs_dir_entry *de; in nilfs_empty_dir() local
627 de = (struct nilfs_dir_entry *)kaddr; in nilfs_empty_dir()
630 while ((char *)de <= kaddr) { in nilfs_empty_dir()
631 if (de->rec_len == 0) { in nilfs_empty_dir()
634 "(kaddr=%p, de=%p)\n", kaddr, de); in nilfs_empty_dir()
637 if (de->inode != 0) { in nilfs_empty_dir()
639 if (de->name[0] != '.') in nilfs_empty_dir()
641 if (de->name_len > 2) in nilfs_empty_dir()
643 if (de->name_len < 2) { in nilfs_empty_dir()
644 if (de->inode != in nilfs_empty_dir()
647 } else if (de->name[1] != '.') in nilfs_empty_dir()
650 de = nilfs_next_entry(de); in nilfs_empty_dir()