u16 file_name_utf8_len;
u8 is_extracted : 1;
+ u8 visited : 1;
+ u8 canonical : 1;
/* Byte 40 */
u8 verified : 1;
/* temporary flag */
- u8 found : 1;
+ u8 visited : 1;
/* Number of alternate data streams associated with this inode */
u16 num_ads;
/* List of dentries that reference this inode (there should be
* link_count of them) */
struct list_head dentry_list;
+
struct hlist_node hlist;
+
+ struct list_head lte_inode_list;
+
char *extracted_file;
/* Root of a red-black tree storing the children of this inode (if
list_add(&(dentry)->inode_dentry_list, &(inode)->dentry_list); \
})
-static inline bool dentry_is_extracted(const struct dentry *dentry)
-{
- return dentry->is_extracted;
-}
-
static inline bool dentry_is_first_in_inode(const struct dentry *dentry)
{
return container_of(dentry->d_inode->dentry_list.next,
extern u64 dentry_correct_total_length(const struct dentry *dentry);
-extern int inode_to_stbuf(const struct inode *inode,
- struct lookup_table_entry *lte, struct stat *stbuf);
-
extern int for_dentry_in_tree(struct dentry *root,
int (*visitor)(struct dentry*, void*),
void *args);
extern bool dentry_add_child(struct dentry * restrict parent,
struct dentry * restrict child);
-extern int verify_dentry(struct dentry *dentry, void *wim);
-
-
extern struct ads_entry *inode_get_ads_entry(struct inode *inode,
const char *stream_name,
u16 *idx_ret);
inode->reparse_tag == WIM_IO_REPARSE_TAG_MOUNT_POINT);
}
-static inline bool dentry_is_symlink(const struct dentry *dentry)
-{
- return inode_is_symlink(dentry->d_inode);
-}
-
static inline bool inode_is_regular_file(const struct inode *inode)
{
return !inode_is_directory(inode) && !inode_is_symlink(inode);