H A D | readinode.c | 219 struct jffs2_readinode_info *rii, jffs2_add_tn_to_tree() 232 if (rii->mdata_tn) { jffs2_add_tn_to_tree() 233 if (rii->mdata_tn->version < tn->version) { jffs2_add_tn_to_tree() 235 dbg_readinode("kill old mdata with ver %d\n", rii->mdata_tn->version); jffs2_add_tn_to_tree() 236 jffs2_kill_tn(c, rii->mdata_tn); jffs2_add_tn_to_tree() 239 tn->version, rii->mdata_tn->version); jffs2_add_tn_to_tree() 244 rii->mdata_tn = tn; jffs2_add_tn_to_tree() 250 this = jffs2_lookup_tn(&rii->tn_root, tn->fn->ofs); jffs2_add_tn_to_tree() 286 rb_replace_node(&this->rb, &tn->rb, &rii->tn_root); jffs2_add_tn_to_tree() 305 tn_erase(this, &rii->tn_root); jffs2_add_tn_to_tree() 327 tn_erase(this, &rii->tn_root); jffs2_add_tn_to_tree() 339 struct rb_node **link = &rii->tn_root.rb_node; jffs2_add_tn_to_tree() 354 rb_insert_color(&tn->rb, &rii->tn_root); jffs2_add_tn_to_tree() 453 struct jffs2_readinode_info *rii) jffs2_build_inode_fragtree() 459 if (rii->mdata_tn) { jffs2_build_inode_fragtree() 460 dbg_readinode("potential mdata is ver %d at %p\n", rii->mdata_tn->version, rii->mdata_tn); jffs2_build_inode_fragtree() 461 high_ver = rii->mdata_tn->version; jffs2_build_inode_fragtree() 462 rii->latest_ref = rii->mdata_tn->fn->raw; jffs2_build_inode_fragtree() 465 this = tn_last(&rii->tn_root); jffs2_build_inode_fragtree() 472 pen = tn_last(&rii->tn_root); jffs2_build_inode_fragtree() 476 eat_last(&rii->tn_root, &last->rb); jffs2_build_inode_fragtree() 512 rii->latest_ref = this->fn->raw; jffs2_build_inode_fragtree() 588 struct jffs2_readinode_info *rii) read_direntry() 638 if (fd->version > rii->highest_version) read_direntry() 639 rii->highest_version = fd->version; read_direntry() 642 if(fd->version > rii->mctime_ver && je32_to_cpu(rd->mctime)) { read_direntry() 643 rii->mctime_ver = fd->version; read_direntry() 644 rii->latest_mctime = je32_to_cpu(rd->mctime); read_direntry() 685 jffs2_add_fd_to_list(c, fd, &rii->fds); read_direntry() 699 struct jffs2_readinode_info *rii) read_dnode() 830 if (tn->version > rii->highest_version) read_dnode() 831 rii->highest_version = tn->version; read_dnode() 844 ret = jffs2_add_tn_to_tree(c, rii, tn); read_dnode() 854 tn = tn_first(&rii->tn_root); read_dnode() 966 struct jffs2_readinode_info *rii) jffs2_get_inode_nodes() 974 rii->mctime_ver = 0; jffs2_get_inode_nodes() 1073 err = read_direntry(c, ref, &node->d, retlen, rii); jffs2_get_inode_nodes() 1088 err = read_dnode(c, ref, &node->i, len, rii); jffs2_get_inode_nodes() 1114 f->highest_version = rii->highest_version; jffs2_get_inode_nodes() 1117 f->inocache->ino, rii->highest_version, rii->latest_mctime, jffs2_get_inode_nodes() 1118 rii->mctime_ver); jffs2_get_inode_nodes() 1122 jffs2_free_tmp_dnode_info_list(&rii->tn_root); jffs2_get_inode_nodes() 1123 jffs2_free_full_dirent_list(rii->fds); jffs2_get_inode_nodes() 1124 rii->fds = NULL; jffs2_get_inode_nodes() 1133 struct jffs2_readinode_info rii; jffs2_do_read_inode_internal() local 1141 memset(&rii, 0, sizeof(rii)); jffs2_do_read_inode_internal() 1144 ret = jffs2_get_inode_nodes(c, f, &rii); jffs2_do_read_inode_internal() 1153 ret = jffs2_build_inode_fragtree(c, f, &rii); jffs2_do_read_inode_internal() 1159 jffs2_free_tmp_dnode_info_list(&rii.tn_root); jffs2_do_read_inode_internal() 1161 if (rii.mdata_tn) { jffs2_do_read_inode_internal() 1162 jffs2_free_full_dnode(rii.mdata_tn->fn); jffs2_do_read_inode_internal() 1163 jffs2_free_tmp_dnode_info(rii.mdata_tn); jffs2_do_read_inode_internal() 1164 rii.mdata_tn = NULL; jffs2_do_read_inode_internal() 1169 if (rii.mdata_tn) { jffs2_do_read_inode_internal() 1170 if (rii.mdata_tn->fn->raw == rii.latest_ref) { jffs2_do_read_inode_internal() 1171 f->metadata = rii.mdata_tn->fn; jffs2_do_read_inode_internal() 1172 jffs2_free_tmp_dnode_info(rii.mdata_tn); jffs2_do_read_inode_internal() 1174 jffs2_kill_tn(c, rii.mdata_tn); jffs2_do_read_inode_internal() 1176 rii.mdata_tn = NULL; jffs2_do_read_inode_internal() 1179 f->dents = rii.fds; jffs2_do_read_inode_internal() 1183 if (unlikely(!rii.latest_ref)) { jffs2_do_read_inode_internal() 1187 if (!rii.fds) { jffs2_do_read_inode_internal() 1205 ret = jffs2_flash_read(c, ref_offset(rii.latest_ref), sizeof(*latest_node), &retlen, (void *)latest_node); jffs2_do_read_inode_internal() 1216 f->inocache->ino, ref_offset(rii.latest_ref)); jffs2_do_read_inode_internal() 1222 if (rii.mctime_ver > je32_to_cpu(latest_node->version)) { jffs2_do_read_inode_internal() 1225 latest_node->ctime = latest_node->mtime = cpu_to_je32(rii.latest_mctime); jffs2_do_read_inode_internal() 1261 ret = jffs2_flash_read(c, ref_offset(rii.latest_ref) + sizeof(*latest_node), jffs2_do_read_inode_internal() 218 jffs2_add_tn_to_tree(struct jffs2_sb_info *c, struct jffs2_readinode_info *rii, struct jffs2_tmp_dnode_info *tn) jffs2_add_tn_to_tree() argument 451 jffs2_build_inode_fragtree(struct jffs2_sb_info *c, struct jffs2_inode_info *f, struct jffs2_readinode_info *rii) jffs2_build_inode_fragtree() argument 586 read_direntry(struct jffs2_sb_info *c, struct jffs2_raw_node_ref *ref, struct jffs2_raw_dirent *rd, size_t read, struct jffs2_readinode_info *rii) read_direntry() argument 697 read_dnode(struct jffs2_sb_info *c, struct jffs2_raw_node_ref *ref, struct jffs2_raw_inode *rd, int rdlen, struct jffs2_readinode_info *rii) read_dnode() argument 965 jffs2_get_inode_nodes(struct jffs2_sb_info *c, struct jffs2_inode_info *f, struct jffs2_readinode_info *rii) jffs2_get_inode_nodes() argument
|