Lines Matching defs:iter
90 #define repair_file_ask(iter, inode, code, fmt, ...) \
94 (iter)->parent, inode); \
97 (iter)->parent); \
102 exfat_de_iter_device_offset(iter)); \
568 static uint16_t file_calc_checksum(struct exfat_de_iter *iter)
575 exfat_de_iter_get(iter, 0, &file_de);
579 exfat_de_iter_get(iter, i, &de);
589 static int check_inode(struct exfat_de_iter *iter, struct exfat_inode *node)
591 struct exfat *exfat = iter->exfat;
597 ret = check_clus_chain(iter, node);
603 fsck_err(iter->parent, node,
610 if (repair_file_ask(iter, node, ER_FILE_ZERO_NOFAT,
612 exfat_de_iter_get_dirty(iter, 1, &dentry);
621 fsck_err(iter->parent, node,
627 checksum = file_calc_checksum(iter);
628 exfat_de_iter_get(iter, 0, &dentry);
630 exfat_de_iter_get_dirty(iter, 0, &dentry);
638 static int check_name_dentry_set(struct exfat_de_iter *iter,
645 exfat_de_iter_get(iter, 1, &stream_de);
649 if (repair_file_ask(iter, NULL, ER_DE_NAME_LEN,
651 exfat_de_iter_get_dirty(iter, 1, &stream_de);
658 hash = exfat_calc_name_hash(iter->exfat, inode->name, (int)name_len);
660 if (repair_file_ask(iter, NULL, ER_DE_NAME_HASH,
662 exfat_de_iter_get_dirty(iter, 1, &stream_de);
678 static char *get_rename_from_user(struct exfat_de_iter *iter)
703 exfat_de_iter_flush(iter);
704 err = exfat_lookup_file(iter->exfat, iter->parent, rename, &filter);
714 static char *generate_rename(struct exfat_de_iter *iter)
718 if (iter->dot_name_num > DOT_NAME_NUM_MAX)
730 iter->dot_name_num++);
731 err = exfat_lookup_file(iter->exfat, iter->parent, rename,
744 static int handle_dot_dotdot_filename(struct exfat_de_iter *iter,
776 rename = get_rename_from_user(iter);
779 rename = generate_rename(iter);
793 exfat_de_iter_get_dirty(iter, 2, &dentry);
803 hash = exfat_calc_name_hash(iter->exfat, utf16_name, ret);
804 exfat_de_iter_get_dirty(iter, 1, &stream_de);
812 static int read_file_dentry_set(struct exfat_de_iter *iter,
821 ret = exfat_de_iter_get(iter, 0, &file_de);
827 checksum = file_calc_checksum(iter);
829 if (repair_file_ask(iter, NULL, ER_DE_CHECKSUM,
837 if (repair_file_ask(iter, NULL, ER_DE_SECONDARY_COUNT,
845 ret = exfat_de_iter_get(iter, 1, &stream_de);
847 if (repair_file_ask(iter, NULL, ER_DE_STREAM,
860 ret = exfat_de_iter_get(iter, i, &dentry);
862 if (i > 2 && repair_file_ask(iter, NULL, ER_DE_NAME,
864 exfat_de_iter_get_dirty(iter, 0, &file_de);
877 ret = check_name_dentry_set(iter, node);
884 ret = handle_dot_dotdot_filename(iter, dentry,
899 if (repair_file_ask(iter, node, ER_FILE_VALID_SIZE,
903 exfat_de_iter_get_dirty(iter, 1, &stream_de);
917 exfat_de_iter_get_dirty(iter, 0, &dentry);
921 exfat_de_iter_get(iter, i, &dentry);
925 exfat_de_iter_get_dirty(iter, i, &dentry);