Lines Matching refs:de
223 nilfs_match(int len, const unsigned char *name, struct nilfs_dir_entry *de) in nilfs_match() argument
225 if (len != de->name_len) in nilfs_match()
227 if (!de->inode) in nilfs_match()
229 return !memcmp(name, de->name, len); in nilfs_match()
265 static void nilfs_set_de_type(struct nilfs_dir_entry *de, struct inode *inode) in nilfs_set_de_type() argument
269 de->file_type = nilfs_type_by_mode[(mode & S_IFMT)>>S_SHIFT]; in nilfs_set_de_type()
286 struct nilfs_dir_entry *de; in nilfs_readdir() local
295 de = (struct nilfs_dir_entry *)(kaddr + offset); in nilfs_readdir()
298 for ( ; (char *)de <= limit; de = nilfs_next_entry(de)) { in nilfs_readdir()
299 if (de->rec_len == 0) { in nilfs_readdir()
304 if (de->inode) { in nilfs_readdir()
307 if (de->file_type < NILFS_FT_MAX) in nilfs_readdir()
308 t = nilfs_filetype_table[de->file_type]; in nilfs_readdir()
312 if (!dir_emit(ctx, de->name, de->name_len, in nilfs_readdir()
313 le64_to_cpu(de->inode), t)) { in nilfs_readdir()
318 ctx->pos += nilfs_rec_len_from_disk(de->rec_len); in nilfs_readdir()
344 struct nilfs_dir_entry *de; in nilfs_find_entry() local
362 de = (struct nilfs_dir_entry *)kaddr; in nilfs_find_entry()
364 while ((char *) de <= kaddr) { in nilfs_find_entry()
365 if (de->rec_len == 0) { in nilfs_find_entry()
371 if (nilfs_match(namelen, name, de)) in nilfs_find_entry()
373 de = nilfs_next_entry(de); in nilfs_find_entry()
394 return de; in nilfs_find_entry()
400 struct nilfs_dir_entry *de = NULL; in nilfs_dotdot() local
403 de = nilfs_next_entry( in nilfs_dotdot()
407 return de; in nilfs_dotdot()
413 struct nilfs_dir_entry *de; in nilfs_inode_by_name() local
416 de = nilfs_find_entry(dir, qstr, &page); in nilfs_inode_by_name()
417 if (de) { in nilfs_inode_by_name()
418 res = le64_to_cpu(de->inode); in nilfs_inode_by_name()
426 void nilfs_set_link(struct inode *dir, struct nilfs_dir_entry *de, in nilfs_set_link() argument
429 unsigned int from = (char *)de - (char *)page_address(page); in nilfs_set_link()
430 unsigned int to = from + nilfs_rec_len_from_disk(de->rec_len); in nilfs_set_link()
437 de->inode = cpu_to_le64(inode->i_ino); in nilfs_set_link()
438 nilfs_set_de_type(de, inode); in nilfs_set_link()
456 struct nilfs_dir_entry *de; in nilfs_add_link() local
478 de = (struct nilfs_dir_entry *)kaddr; in nilfs_add_link()
480 while ((char *)de <= kaddr) { in nilfs_add_link()
481 if ((char *)de == dir_end) { in nilfs_add_link()
485 de->rec_len = nilfs_rec_len_to_disk(chunk_size); in nilfs_add_link()
486 de->inode = 0; in nilfs_add_link()
489 if (de->rec_len == 0) { in nilfs_add_link()
496 if (nilfs_match(namelen, name, de)) in nilfs_add_link()
498 name_len = NILFS_DIR_REC_LEN(de->name_len); in nilfs_add_link()
499 rec_len = nilfs_rec_len_from_disk(de->rec_len); in nilfs_add_link()
500 if (!de->inode && rec_len >= reclen) in nilfs_add_link()
504 de = (struct nilfs_dir_entry *)((char *)de + rec_len); in nilfs_add_link()
513 from = (char *)de - (char *)page_address(page); in nilfs_add_link()
518 if (de->inode) { in nilfs_add_link()
521 de1 = (struct nilfs_dir_entry *)((char *)de + name_len); in nilfs_add_link()
523 de->rec_len = nilfs_rec_len_to_disk(name_len); in nilfs_add_link()
524 de = de1; in nilfs_add_link()
526 de->name_len = namelen; in nilfs_add_link()
527 memcpy(de->name, name, namelen); in nilfs_add_link()
528 de->inode = cpu_to_le64(inode->i_ino); in nilfs_add_link()
529 nilfs_set_de_type(de, inode); in nilfs_add_link()
553 struct nilfs_dir_entry *de, *pde = NULL; in nilfs_delete_entry() local
558 de = (struct nilfs_dir_entry *)(kaddr + from); in nilfs_delete_entry()
560 while ((char *)de < (char *)dir) { in nilfs_delete_entry()
561 if (de->rec_len == 0) { in nilfs_delete_entry()
567 pde = de; in nilfs_delete_entry()
568 de = nilfs_next_entry(de); in nilfs_delete_entry()
593 struct nilfs_dir_entry *de; in nilfs_make_empty() local
607 de = (struct nilfs_dir_entry *)kaddr; in nilfs_make_empty()
608 de->name_len = 1; in nilfs_make_empty()
609 de->rec_len = nilfs_rec_len_to_disk(NILFS_DIR_REC_LEN(1)); in nilfs_make_empty()
610 memcpy(de->name, ".\0\0", 4); in nilfs_make_empty()
611 de->inode = cpu_to_le64(inode->i_ino); in nilfs_make_empty()
612 nilfs_set_de_type(de, inode); in nilfs_make_empty()
614 de = (struct nilfs_dir_entry *)(kaddr + NILFS_DIR_REC_LEN(1)); in nilfs_make_empty()
615 de->name_len = 2; in nilfs_make_empty()
616 de->rec_len = nilfs_rec_len_to_disk(chunk_size - NILFS_DIR_REC_LEN(1)); in nilfs_make_empty()
617 de->inode = cpu_to_le64(parent->i_ino); in nilfs_make_empty()
618 memcpy(de->name, "..\0", 4); in nilfs_make_empty()
619 nilfs_set_de_type(de, inode); in nilfs_make_empty()
637 struct nilfs_dir_entry *de; in nilfs_empty_dir() local
644 de = (struct nilfs_dir_entry *)kaddr; in nilfs_empty_dir()
647 while ((char *)de <= kaddr) { in nilfs_empty_dir()
648 if (de->rec_len == 0) { in nilfs_empty_dir()
651 kaddr, de); in nilfs_empty_dir()
654 if (de->inode != 0) { in nilfs_empty_dir()
656 if (de->name[0] != '.') in nilfs_empty_dir()
658 if (de->name_len > 2) in nilfs_empty_dir()
660 if (de->name_len < 2) { in nilfs_empty_dir()
661 if (de->inode != in nilfs_empty_dir()
664 } else if (de->name[1] != '.') in nilfs_empty_dir()
667 de = nilfs_next_entry(de); in nilfs_empty_dir()