Lines Matching refs:de
177 struct exofs_dir_entry *de) in exofs_match() argument
179 if (len != de->name_len) in exofs_match()
181 if (!de->inode_no) in exofs_match()
183 return !memcmp(name, de->name, len); in exofs_match()
195 struct exofs_dir_entry *de = (struct exofs_dir_entry *)(base + offset); in exofs_validate_entry() local
198 while ((char *)p < (char *)de) { in exofs_validate_entry()
229 void exofs_set_de_type(struct exofs_dir_entry *de, struct inode *inode) in exofs_set_de_type() argument
232 de->file_type = exofs_type_by_mode[(mode & S_IFMT) >> S_SHIFT]; in exofs_set_de_type()
251 struct exofs_dir_entry *de; in exofs_readdir() local
270 de = (struct exofs_dir_entry *)(kaddr + offset); in exofs_readdir()
273 for (; (char *)de <= limit; de = exofs_next_entry(de)) { in exofs_readdir()
274 if (de->rec_len == 0) { in exofs_readdir()
281 if (de->inode_no) { in exofs_readdir()
284 if (de->file_type < EXOFS_FT_MAX) in exofs_readdir()
285 t = exofs_filetype_table[de->file_type]; in exofs_readdir()
289 if (!dir_emit(ctx, de->name, de->name_len, in exofs_readdir()
290 le64_to_cpu(de->inode_no), in exofs_readdir()
296 ctx->pos += le16_to_cpu(de->rec_len); in exofs_readdir()
313 struct exofs_dir_entry *de; in exofs_find_entry() local
329 de = (struct exofs_dir_entry *) kaddr; in exofs_find_entry()
331 while ((char *) de <= kaddr) { in exofs_find_entry()
332 if (de->rec_len == 0) { in exofs_find_entry()
339 if (exofs_match(namelen, name, de)) in exofs_find_entry()
341 de = exofs_next_entry(de); in exofs_find_entry()
354 return de; in exofs_find_entry()
360 struct exofs_dir_entry *de = NULL; in exofs_dotdot() local
363 de = exofs_next_entry( in exofs_dotdot()
367 return de; in exofs_dotdot()
373 struct exofs_dir_entry *de; in exofs_parent_ino() local
376 de = exofs_dotdot(d_inode(child), &page); in exofs_parent_ino()
377 if (!de) in exofs_parent_ino()
380 ino = le64_to_cpu(de->inode_no); in exofs_parent_ino()
388 struct exofs_dir_entry *de; in exofs_inode_by_name() local
391 de = exofs_find_entry(dir, dentry, &page); in exofs_inode_by_name()
392 if (de) { in exofs_inode_by_name()
393 res = le64_to_cpu(de->inode_no); in exofs_inode_by_name()
399 int exofs_set_link(struct inode *dir, struct exofs_dir_entry *de, in exofs_set_link() argument
403 (char *) de - (char *) page_address(page); in exofs_set_link()
404 unsigned len = le16_to_cpu(de->rec_len); in exofs_set_link()
414 de->inode_no = cpu_to_le64(inode->i_ino); in exofs_set_link()
415 exofs_set_de_type(de, inode); in exofs_set_link()
434 struct exofs_dir_entry *de; in exofs_add_link() local
451 de = (struct exofs_dir_entry *)kaddr; in exofs_add_link()
453 while ((char *)de <= kaddr) { in exofs_add_link()
454 if ((char *)de == dir_end) { in exofs_add_link()
457 de->rec_len = cpu_to_le16(chunk_size); in exofs_add_link()
458 de->inode_no = 0; in exofs_add_link()
461 if (de->rec_len == 0) { in exofs_add_link()
469 if (exofs_match(namelen, name, de)) in exofs_add_link()
471 name_len = EXOFS_DIR_REC_LEN(de->name_len); in exofs_add_link()
472 rec_len = le16_to_cpu(de->rec_len); in exofs_add_link()
473 if (!de->inode_no && rec_len >= reclen) in exofs_add_link()
477 de = (struct exofs_dir_entry *) ((char *) de + rec_len); in exofs_add_link()
489 (char *)de - (char *)page_address(page); in exofs_add_link()
494 if (de->inode_no) { in exofs_add_link()
496 (struct exofs_dir_entry *)((char *)de + name_len); in exofs_add_link()
498 de->rec_len = cpu_to_le16(name_len); in exofs_add_link()
499 de = de1; in exofs_add_link()
501 de->name_len = namelen; in exofs_add_link()
502 memcpy(de->name, name, namelen); in exofs_add_link()
503 de->inode_no = cpu_to_le64(inode->i_ino); in exofs_add_link()
504 exofs_set_de_type(de, inode); in exofs_add_link()
529 struct exofs_dir_entry *de = (struct exofs_dir_entry *) (kaddr + from); in exofs_delete_entry() local
532 while (de < dir) { in exofs_delete_entry()
533 if (de->rec_len == 0) { in exofs_delete_entry()
540 pde = de; in exofs_delete_entry()
541 de = exofs_next_entry(de); in exofs_delete_entry()
574 struct exofs_dir_entry *de; in exofs_make_empty() local
589 de = (struct exofs_dir_entry *)kaddr; in exofs_make_empty()
590 de->name_len = 1; in exofs_make_empty()
591 de->rec_len = cpu_to_le16(EXOFS_DIR_REC_LEN(1)); in exofs_make_empty()
592 memcpy(de->name, THIS_DIR, sizeof(THIS_DIR)); in exofs_make_empty()
593 de->inode_no = cpu_to_le64(inode->i_ino); in exofs_make_empty()
594 exofs_set_de_type(de, inode); in exofs_make_empty()
596 de = (struct exofs_dir_entry *)(kaddr + EXOFS_DIR_REC_LEN(1)); in exofs_make_empty()
597 de->name_len = 2; in exofs_make_empty()
598 de->rec_len = cpu_to_le16(chunk_size - EXOFS_DIR_REC_LEN(1)); in exofs_make_empty()
599 de->inode_no = cpu_to_le64(parent->i_ino); in exofs_make_empty()
600 memcpy(de->name, PARENT_DIR, sizeof(PARENT_DIR)); in exofs_make_empty()
601 exofs_set_de_type(de, inode); in exofs_make_empty()
616 struct exofs_dir_entry *de; in exofs_empty_dir() local
623 de = (struct exofs_dir_entry *)kaddr; in exofs_empty_dir()
626 while ((char *)de <= kaddr) { in exofs_empty_dir()
627 if (de->rec_len == 0) { in exofs_empty_dir()
630 "kaddr=%p, de=%p\n", kaddr, de); in exofs_empty_dir()
633 if (de->inode_no != 0) { in exofs_empty_dir()
635 if (de->name[0] != '.') in exofs_empty_dir()
637 if (de->name_len > 2) in exofs_empty_dir()
639 if (de->name_len < 2) { in exofs_empty_dir()
640 if (le64_to_cpu(de->inode_no) != in exofs_empty_dir()
643 } else if (de->name[1] != '.') in exofs_empty_dir()
646 de = exofs_next_entry(de); in exofs_empty_dir()