Lines Matching refs:de
219 nilfs_match(int len, const unsigned char *name, struct nilfs_dir_entry *de) in nilfs_match() argument
221 if (len != de->name_len) in nilfs_match()
223 if (!de->inode) in nilfs_match()
225 return !memcmp(name, de->name, len); in nilfs_match()
261 static void nilfs_set_de_type(struct nilfs_dir_entry *de, struct inode *inode) in nilfs_set_de_type() argument
265 de->file_type = nilfs_type_by_mode[(mode & S_IFMT)>>S_SHIFT]; in nilfs_set_de_type()
282 struct nilfs_dir_entry *de; in nilfs_readdir() local
291 de = (struct nilfs_dir_entry *)(kaddr + offset); in nilfs_readdir()
294 for ( ; (char *)de <= limit; de = nilfs_next_entry(de)) { in nilfs_readdir()
295 if (de->rec_len == 0) { in nilfs_readdir()
300 if (de->inode) { in nilfs_readdir()
303 if (de->file_type < NILFS_FT_MAX) in nilfs_readdir()
304 t = nilfs_filetype_table[de->file_type]; in nilfs_readdir()
308 if (!dir_emit(ctx, de->name, de->name_len, in nilfs_readdir()
309 le64_to_cpu(de->inode), t)) { in nilfs_readdir()
314 ctx->pos += nilfs_rec_len_from_disk(de->rec_len); in nilfs_readdir()
342 struct nilfs_dir_entry *de; in nilfs_find_entry() local
360 de = (struct nilfs_dir_entry *)kaddr; in nilfs_find_entry()
362 while ((char *)de <= kaddr) { in nilfs_find_entry()
363 if (de->rec_len == 0) { in nilfs_find_entry()
369 if (nilfs_match(namelen, name, de)) in nilfs_find_entry()
371 de = nilfs_next_entry(de); in nilfs_find_entry()
392 return de; in nilfs_find_entry()
398 struct nilfs_dir_entry *de, *next_de; in nilfs_dotdot() local
402 de = nilfs_get_page(dir, 0, &page); in nilfs_dotdot()
403 if (IS_ERR(de)) in nilfs_dotdot()
407 if (unlikely(!limit || le64_to_cpu(de->inode) != dir->i_ino || in nilfs_dotdot()
408 !nilfs_match(1, ".", de))) { in nilfs_dotdot()
413 next_de = nilfs_next_entry(de); in nilfs_dotdot()
418 if (unlikely((char *)next_de == (char *)de + nilfs_chunk_size(dir) || in nilfs_dotdot()
434 struct nilfs_dir_entry *de; in nilfs_inode_by_name() local
437 de = nilfs_find_entry(dir, qstr, &page); in nilfs_inode_by_name()
438 if (IS_ERR(de)) in nilfs_inode_by_name()
439 return PTR_ERR(de); in nilfs_inode_by_name()
441 *ino = le64_to_cpu(de->inode); in nilfs_inode_by_name()
447 int nilfs_set_link(struct inode *dir, struct nilfs_dir_entry *de, in nilfs_set_link() argument
450 unsigned int from = (char *)de - (char *)page_address(page); in nilfs_set_link()
451 unsigned int to = from + nilfs_rec_len_from_disk(de->rec_len); in nilfs_set_link()
461 de->inode = cpu_to_le64(inode->i_ino); in nilfs_set_link()
462 nilfs_set_de_type(de, inode); in nilfs_set_link()
480 struct nilfs_dir_entry *de; in nilfs_add_link() local
501 de = (struct nilfs_dir_entry *)kaddr; in nilfs_add_link()
503 while ((char *)de <= kaddr) { in nilfs_add_link()
504 if ((char *)de == dir_end) { in nilfs_add_link()
508 de->rec_len = nilfs_rec_len_to_disk(chunk_size); in nilfs_add_link()
509 de->inode = 0; in nilfs_add_link()
512 if (de->rec_len == 0) { in nilfs_add_link()
519 if (nilfs_match(namelen, name, de)) in nilfs_add_link()
521 name_len = NILFS_DIR_REC_LEN(de->name_len); in nilfs_add_link()
522 rec_len = nilfs_rec_len_from_disk(de->rec_len); in nilfs_add_link()
523 if (!de->inode && rec_len >= reclen) in nilfs_add_link()
527 de = (struct nilfs_dir_entry *)((char *)de + rec_len); in nilfs_add_link()
536 from = (char *)de - (char *)page_address(page); in nilfs_add_link()
541 if (de->inode) { in nilfs_add_link()
544 de1 = (struct nilfs_dir_entry *)((char *)de + name_len); in nilfs_add_link()
546 de->rec_len = nilfs_rec_len_to_disk(name_len); in nilfs_add_link()
547 de = de1; in nilfs_add_link()
549 de->name_len = namelen; in nilfs_add_link()
550 memcpy(de->name, name, namelen); in nilfs_add_link()
551 de->inode = cpu_to_le64(inode->i_ino); in nilfs_add_link()
552 nilfs_set_de_type(de, inode); in nilfs_add_link()
576 struct nilfs_dir_entry *de, *pde = NULL; in nilfs_delete_entry() local
581 de = (struct nilfs_dir_entry *)(kaddr + from); in nilfs_delete_entry()
583 while ((char *)de < (char *)dir) { in nilfs_delete_entry()
584 if (de->rec_len == 0) { in nilfs_delete_entry()
590 pde = de; in nilfs_delete_entry()
591 de = nilfs_next_entry(de); in nilfs_delete_entry()
618 struct nilfs_dir_entry *de; in nilfs_make_empty() local
632 de = (struct nilfs_dir_entry *)kaddr; in nilfs_make_empty()
633 de->name_len = 1; in nilfs_make_empty()
634 de->rec_len = nilfs_rec_len_to_disk(NILFS_DIR_REC_LEN(1)); in nilfs_make_empty()
635 memcpy(de->name, ".\0\0", 4); in nilfs_make_empty()
636 de->inode = cpu_to_le64(inode->i_ino); in nilfs_make_empty()
637 nilfs_set_de_type(de, inode); in nilfs_make_empty()
639 de = (struct nilfs_dir_entry *)(kaddr + NILFS_DIR_REC_LEN(1)); in nilfs_make_empty()
640 de->name_len = 2; in nilfs_make_empty()
641 de->rec_len = nilfs_rec_len_to_disk(chunk_size - NILFS_DIR_REC_LEN(1)); in nilfs_make_empty()
642 de->inode = cpu_to_le64(parent->i_ino); in nilfs_make_empty()
643 memcpy(de->name, "..\0", 4); in nilfs_make_empty()
644 nilfs_set_de_type(de, inode); in nilfs_make_empty()
662 struct nilfs_dir_entry *de; in nilfs_empty_dir() local
668 de = (struct nilfs_dir_entry *)kaddr; in nilfs_empty_dir()
671 while ((char *)de <= kaddr) { in nilfs_empty_dir()
672 if (de->rec_len == 0) { in nilfs_empty_dir()
675 kaddr, de); in nilfs_empty_dir()
678 if (de->inode != 0) { in nilfs_empty_dir()
680 if (de->name[0] != '.') in nilfs_empty_dir()
682 if (de->name_len > 2) in nilfs_empty_dir()
684 if (de->name_len < 2) { in nilfs_empty_dir()
685 if (de->inode != in nilfs_empty_dir()
688 } else if (de->name[1] != '.') in nilfs_empty_dir()
691 de = nilfs_next_entry(de); in nilfs_empty_dir()