Lines Matching refs:de

211  * len <= NILFS_NAME_LEN and de != NULL are guaranteed by caller.
214 nilfs_match(int len, const unsigned char *name, struct nilfs_dir_entry *de)
216 if (len != de->name_len)
218 if (!de->inode)
220 return !memcmp(name, de->name, len);
256 static void nilfs_set_de_type(struct nilfs_dir_entry *de, struct inode *inode)
260 de->file_type = nilfs_type_by_mode[(mode & S_IFMT)>>S_SHIFT];
277 struct nilfs_dir_entry *de;
286 de = (struct nilfs_dir_entry *)(kaddr + offset);
289 for ( ; (char *)de <= limit; de = nilfs_next_entry(de)) {
290 if (de->rec_len == 0) {
295 if (de->inode) {
298 if (de->file_type < NILFS_FT_MAX)
299 t = nilfs_filetype_table[de->file_type];
303 if (!dir_emit(ctx, de->name, de->name_len,
304 le64_to_cpu(de->inode), t)) {
309 ctx->pos += nilfs_rec_len_from_disk(de->rec_len);
335 struct nilfs_dir_entry *de;
353 de = (struct nilfs_dir_entry *)kaddr;
355 while ((char *) de <= kaddr) {
356 if (de->rec_len == 0) {
362 if (nilfs_match(namelen, name, de))
364 de = nilfs_next_entry(de);
385 return de;
391 struct nilfs_dir_entry *de = NULL;
394 de = nilfs_next_entry(
398 return de;
404 struct nilfs_dir_entry *de;
407 de = nilfs_find_entry(dir, qstr, &page);
408 if (de) {
409 res = le64_to_cpu(de->inode);
417 void nilfs_set_link(struct inode *dir, struct nilfs_dir_entry *de,
420 unsigned int from = (char *)de - (char *)page_address(page);
421 unsigned int to = from + nilfs_rec_len_from_disk(de->rec_len);
428 de->inode = cpu_to_le64(inode->i_ino);
429 nilfs_set_de_type(de, inode);
447 struct nilfs_dir_entry *de;
469 de = (struct nilfs_dir_entry *)kaddr;
471 while ((char *)de <= kaddr) {
472 if ((char *)de == dir_end) {
476 de->rec_len = nilfs_rec_len_to_disk(chunk_size);
477 de->inode = 0;
480 if (de->rec_len == 0) {
487 if (nilfs_match(namelen, name, de))
489 name_len = NILFS_DIR_REC_LEN(de->name_len);
490 rec_len = nilfs_rec_len_from_disk(de->rec_len);
491 if (!de->inode && rec_len >= reclen)
495 de = (struct nilfs_dir_entry *)((char *)de + rec_len);
504 from = (char *)de - (char *)page_address(page);
509 if (de->inode) {
512 de1 = (struct nilfs_dir_entry *)((char *)de + name_len);
514 de->rec_len = nilfs_rec_len_to_disk(name_len);
515 de = de1;
517 de->name_len = namelen;
518 memcpy(de->name, name, namelen);
519 de->inode = cpu_to_le64(inode->i_ino);
520 nilfs_set_de_type(de, inode);
544 struct nilfs_dir_entry *de, *pde = NULL;
549 de = (struct nilfs_dir_entry *)(kaddr + from);
551 while ((char *)de < (char *)dir) {
552 if (de->rec_len == 0) {
558 pde = de;
559 de = nilfs_next_entry(de);
584 struct nilfs_dir_entry *de;
598 de = (struct nilfs_dir_entry *)kaddr;
599 de->name_len = 1;
600 de->rec_len = nilfs_rec_len_to_disk(NILFS_DIR_REC_LEN(1));
601 memcpy(de->name, ".\0\0", 4);
602 de->inode = cpu_to_le64(inode->i_ino);
603 nilfs_set_de_type(de, inode);
605 de = (struct nilfs_dir_entry *)(kaddr + NILFS_DIR_REC_LEN(1));
606 de->name_len = 2;
607 de->rec_len = nilfs_rec_len_to_disk(chunk_size - NILFS_DIR_REC_LEN(1));
608 de->inode = cpu_to_le64(parent->i_ino);
609 memcpy(de->name, "..\0", 4);
610 nilfs_set_de_type(de, inode);
628 struct nilfs_dir_entry *de;
635 de = (struct nilfs_dir_entry *)kaddr;
638 while ((char *)de <= kaddr) {
639 if (de->rec_len == 0) {
641 "zero-length directory entry (kaddr=%p, de=%p)",
642 kaddr, de);
645 if (de->inode != 0) {
647 if (de->name[0] != '.')
649 if (de->name_len > 2)
651 if (de->name_len < 2) {
652 if (de->inode !=
655 } else if (de->name[1] != '.')
658 de = nilfs_next_entry(de);