Lines Matching refs:de

208  * len <= NILFS_NAME_LEN and de != NULL are guaranteed by caller.
211 nilfs_match(int len, const unsigned char *name, struct nilfs_dir_entry *de)
213 if (len != de->name_len)
215 if (!de->inode)
217 return !memcmp(name, de->name, len);
253 static void nilfs_set_de_type(struct nilfs_dir_entry *de, struct inode *inode)
257 de->file_type = nilfs_type_by_mode[(mode & S_IFMT)>>S_SHIFT];
274 struct nilfs_dir_entry *de;
283 de = (struct nilfs_dir_entry *)(kaddr + offset);
286 for ( ; (char *)de <= limit; de = nilfs_next_entry(de)) {
287 if (de->rec_len == 0) {
292 if (de->inode) {
295 if (de->file_type < NILFS_FT_MAX)
296 t = nilfs_filetype_table[de->file_type];
300 if (!dir_emit(ctx, de->name, de->name_len,
301 le64_to_cpu(de->inode), t)) {
306 ctx->pos += nilfs_rec_len_from_disk(de->rec_len);
332 struct nilfs_dir_entry *de;
345 de = (struct nilfs_dir_entry *)kaddr;
347 while ((char *) de <= kaddr) {
348 if (de->rec_len == 0) {
354 if (nilfs_match(namelen, name, de))
356 de = nilfs_next_entry(de);
376 return de;
381 struct nilfs_dir_entry *de = nilfs_get_folio(dir, 0, foliop);
383 if (IS_ERR(de))
385 return nilfs_next_entry(de);
391 struct nilfs_dir_entry *de;
394 de = nilfs_find_entry(dir, qstr, &folio);
395 if (de) {
396 res = le64_to_cpu(de->inode);
397 folio_release_kmap(folio, de);
402 void nilfs_set_link(struct inode *dir, struct nilfs_dir_entry *de,
405 size_t from = offset_in_folio(folio, de);
406 size_t to = from + nilfs_rec_len_from_disk(de->rec_len);
413 de->inode = cpu_to_le64(inode->i_ino);
414 nilfs_set_de_type(de, inode);
431 struct nilfs_dir_entry *de;
450 de = (struct nilfs_dir_entry *)kaddr;
452 while ((char *)de <= kaddr) {
453 if ((char *)de == dir_end) {
457 de->rec_len = nilfs_rec_len_to_disk(chunk_size);
458 de->inode = 0;
461 if (de->rec_len == 0) {
468 if (nilfs_match(namelen, name, de))
470 name_len = NILFS_DIR_REC_LEN(de->name_len);
471 rec_len = nilfs_rec_len_from_disk(de->rec_len);
472 if (!de->inode && rec_len >= reclen)
476 de = (struct nilfs_dir_entry *)((char *)de + rec_len);
485 from = offset_in_folio(folio, de);
490 if (de->inode) {
493 de1 = (struct nilfs_dir_entry *)((char *)de + name_len);
495 de->rec_len = nilfs_rec_len_to_disk(name_len);
496 de = de1;
498 de->name_len = namelen;
499 memcpy(de->name, name, namelen);
500 de->inode = cpu_to_le64(inode->i_ino);
501 nilfs_set_de_type(de, inode);
507 folio_release_kmap(folio, de);
524 struct nilfs_dir_entry *de, *pde = NULL;
529 de = (struct nilfs_dir_entry *)(kaddr + from);
531 while ((char *)de < (char *)dir) {
532 if (de->rec_len == 0) {
538 pde = de;
539 de = nilfs_next_entry(de);
563 struct nilfs_dir_entry *de;
577 de = (struct nilfs_dir_entry *)kaddr;
578 de->name_len = 1;
579 de->rec_len = nilfs_rec_len_to_disk(NILFS_DIR_REC_LEN(1));
580 memcpy(de->name, ".\0\0", 4);
581 de->inode = cpu_to_le64(inode->i_ino);
582 nilfs_set_de_type(de, inode);
584 de = (struct nilfs_dir_entry *)(kaddr + NILFS_DIR_REC_LEN(1));
585 de->name_len = 2;
586 de->rec_len = nilfs_rec_len_to_disk(chunk_size - NILFS_DIR_REC_LEN(1));
587 de->inode = cpu_to_le64(parent->i_ino);
588 memcpy(de->name, "..\0", 4);
589 nilfs_set_de_type(de, inode);
607 struct nilfs_dir_entry *de;
613 de = (struct nilfs_dir_entry *)kaddr;
616 while ((char *)de <= kaddr) {
617 if (de->rec_len == 0) {
619 "zero-length directory entry (kaddr=%p, de=%p)",
620 kaddr, de);
623 if (de->inode != 0) {
625 if (de->name[0] != '.')
627 if (de->name_len > 2)
629 if (de->name_len < 2) {
630 if (de->inode !=
633 } else if (de->name[1] != '.')
636 de = nilfs_next_entry(de);