- struct lookup_table *table = __table;
- struct lookup_table_entry *lte;
-
- if (dentry->resolved)
- return 0;
-
- /* Resolve the default file stream */
- lte = __lookup_resource(table, dentry->hash);
- if (lte)
- list_add(&dentry->lte_group_list.list, <e->lte_group_list);
- else
- INIT_LIST_HEAD(&dentry->lte_group_list.list);
- dentry->lte = lte;
- dentry->lte_group_list.type = STREAM_TYPE_NORMAL;
- dentry->resolved = true;
-
- /* Resolve the alternate data streams */
- if (dentry->ads_entries_status != ADS_ENTRIES_USER) {
- for (u16 i = 0; i < dentry->num_ads; i++) {
- struct ads_entry *cur_entry = &dentry->ads_entries[i];
-
- lte = __lookup_resource(table, cur_entry->hash);
- if (lte)
- list_add(&cur_entry->lte_group_list.list,
- <e->lte_group_list);
- else
- INIT_LIST_HEAD(&cur_entry->lte_group_list.list);
- cur_entry->lte = lte;
- cur_entry->lte_group_list.type = STREAM_TYPE_ADS;
- }
- }
+ if (!dentry->inode->resolved)
+ inode_resolve_ltes(dentry->inode, table);