Lines Matching refs:de
210 nilfs_match(int len, const unsigned char *name, struct nilfs_dir_entry *de) in nilfs_match() argument
212 if (len != de->name_len) in nilfs_match()
214 if (!de->inode) in nilfs_match()
216 return !memcmp(name, de->name, len); in nilfs_match()
252 static void nilfs_set_de_type(struct nilfs_dir_entry *de, struct inode *inode) in nilfs_set_de_type() argument
256 de->file_type = nilfs_type_by_mode[(mode & S_IFMT)>>S_SHIFT]; in nilfs_set_de_type()
274 struct nilfs_dir_entry *de; in nilfs_readdir() local
284 de = (struct nilfs_dir_entry *)(kaddr + offset); in nilfs_readdir()
287 for ( ; (char *)de <= limit; de = nilfs_next_entry(de)) { in nilfs_readdir()
288 if (de->rec_len == 0) { in nilfs_readdir()
294 if (de->inode) { in nilfs_readdir()
297 if (de->file_type < NILFS_FT_MAX) in nilfs_readdir()
298 t = nilfs_filetype_table[de->file_type]; in nilfs_readdir()
302 if (!dir_emit(ctx, de->name, de->name_len, in nilfs_readdir()
303 le64_to_cpu(de->inode), t)) { in nilfs_readdir()
308 ctx->pos += nilfs_rec_len_from_disk(de->rec_len); in nilfs_readdir()
334 struct nilfs_dir_entry *de; in nilfs_find_entry() local
351 de = (struct nilfs_dir_entry *)kaddr; in nilfs_find_entry()
353 while ((char *) de <= kaddr) { in nilfs_find_entry()
354 if (de->rec_len == 0) { in nilfs_find_entry()
360 if (nilfs_match(namelen, name, de)) in nilfs_find_entry()
362 de = nilfs_next_entry(de); in nilfs_find_entry()
383 return de; in nilfs_find_entry()
389 struct nilfs_dir_entry *de = NULL; in nilfs_dotdot() local
392 de = nilfs_next_entry( in nilfs_dotdot()
396 return de; in nilfs_dotdot()
402 struct nilfs_dir_entry *de; in nilfs_inode_by_name() local
405 de = nilfs_find_entry(dir, qstr, &page); in nilfs_inode_by_name()
406 if (de) { in nilfs_inode_by_name()
407 res = le64_to_cpu(de->inode); in nilfs_inode_by_name()
415 void nilfs_set_link(struct inode *dir, struct nilfs_dir_entry *de, in nilfs_set_link() argument
418 unsigned from = (char *) de - (char *) page_address(page); in nilfs_set_link()
419 unsigned to = from + nilfs_rec_len_from_disk(de->rec_len); in nilfs_set_link()
426 de->inode = cpu_to_le64(inode->i_ino); in nilfs_set_link()
427 nilfs_set_de_type(de, inode); in nilfs_set_link()
445 struct nilfs_dir_entry *de; in nilfs_add_link() local
467 de = (struct nilfs_dir_entry *)kaddr; in nilfs_add_link()
469 while ((char *)de <= kaddr) { in nilfs_add_link()
470 if ((char *)de == dir_end) { in nilfs_add_link()
474 de->rec_len = nilfs_rec_len_to_disk(chunk_size); in nilfs_add_link()
475 de->inode = 0; in nilfs_add_link()
478 if (de->rec_len == 0) { in nilfs_add_link()
485 if (nilfs_match(namelen, name, de)) in nilfs_add_link()
487 name_len = NILFS_DIR_REC_LEN(de->name_len); in nilfs_add_link()
488 rec_len = nilfs_rec_len_from_disk(de->rec_len); in nilfs_add_link()
489 if (!de->inode && rec_len >= reclen) in nilfs_add_link()
493 de = (struct nilfs_dir_entry *)((char *)de + rec_len); in nilfs_add_link()
502 from = (char *)de - (char *)page_address(page); in nilfs_add_link()
507 if (de->inode) { in nilfs_add_link()
510 de1 = (struct nilfs_dir_entry *)((char *)de + name_len); in nilfs_add_link()
512 de->rec_len = nilfs_rec_len_to_disk(name_len); in nilfs_add_link()
513 de = de1; in nilfs_add_link()
515 de->name_len = namelen; in nilfs_add_link()
516 memcpy(de->name, name, namelen); in nilfs_add_link()
517 de->inode = cpu_to_le64(inode->i_ino); in nilfs_add_link()
518 nilfs_set_de_type(de, inode); in nilfs_add_link()
545 struct nilfs_dir_entry *de = (struct nilfs_dir_entry *)(kaddr + from); in nilfs_delete_entry() local
548 while ((char *)de < (char *)dir) { in nilfs_delete_entry()
549 if (de->rec_len == 0) { in nilfs_delete_entry()
555 pde = de; in nilfs_delete_entry()
556 de = nilfs_next_entry(de); in nilfs_delete_entry()
581 struct nilfs_dir_entry *de; in nilfs_make_empty() local
595 de = (struct nilfs_dir_entry *)kaddr; in nilfs_make_empty()
596 de->name_len = 1; in nilfs_make_empty()
597 de->rec_len = nilfs_rec_len_to_disk(NILFS_DIR_REC_LEN(1)); in nilfs_make_empty()
598 memcpy(de->name, ".\0\0", 4); in nilfs_make_empty()
599 de->inode = cpu_to_le64(inode->i_ino); in nilfs_make_empty()
600 nilfs_set_de_type(de, inode); in nilfs_make_empty()
602 de = (struct nilfs_dir_entry *)(kaddr + NILFS_DIR_REC_LEN(1)); in nilfs_make_empty()
603 de->name_len = 2; in nilfs_make_empty()
604 de->rec_len = nilfs_rec_len_to_disk(chunk_size - NILFS_DIR_REC_LEN(1)); in nilfs_make_empty()
605 de->inode = cpu_to_le64(parent->i_ino); in nilfs_make_empty()
606 memcpy(de->name, "..\0", 4); in nilfs_make_empty()
607 nilfs_set_de_type(de, inode); in nilfs_make_empty()
625 struct nilfs_dir_entry *de; in nilfs_empty_dir() local
632 de = (struct nilfs_dir_entry *)kaddr; in nilfs_empty_dir()
635 while ((char *)de <= kaddr) { in nilfs_empty_dir()
636 if (de->rec_len == 0) { in nilfs_empty_dir()
639 "(kaddr=%p, de=%p)\n", kaddr, de); in nilfs_empty_dir()
642 if (de->inode != 0) { in nilfs_empty_dir()
644 if (de->name[0] != '.') in nilfs_empty_dir()
646 if (de->name_len > 2) in nilfs_empty_dir()
648 if (de->name_len < 2) { in nilfs_empty_dir()
649 if (de->inode != in nilfs_empty_dir()
652 } else if (de->name[1] != '.') in nilfs_empty_dir()
655 de = nilfs_next_entry(de); in nilfs_empty_dir()